String operateType = ""; if (null == userEdu.getId() || "".equals(userEdu.getId())) { if(StringUtil.isEmpty(userId) || CURRENT_USER_TAG.equals(userId)){ userId = loginFacade.getCurrentUser().getUserName(); } userEdu.setId(IdGen.getId()); userEdu.setCreateTime(new Date()); userEdu.setUserId(userId); userEduMapper.insert(userEdu); operateType = OPERATE_TYPE_INSERT_LOG; } else { userEdu.setUpdateTime(new Date()); userEduMapper.updateById(userEdu); operateType = OPERATE_TYPE_UPDATE_LOG; 怎么优化这段代码 }
时间: 2024-01-31 21:02:21 浏览: 126
androidSocket实现简单聊天小程序归类.pdf
这段代码可以进行如下优化:
1. 将重复的代码块提取成方法,避免重复代码。
2. 在进行 if 判断时,可以使用 StringUtils.isEmpty() 方法代替 null == ... || "".equals(...)。
3. 将 userId 的获取逻辑也提取成方法,避免重复代码。
4. 将操作类型 operateType 的赋值语句提取出来,避免重复代码。
优化后的代码如下所示:
```java
public void saveUserEdu(UserEdu userEdu, String userId) {
if (StringUtils.isEmpty(userEdu.getId())) {
userEdu.setId(IdGen.getId());
userEdu.setCreateTime(new Date());
userEdu.setUserId(getUserId(userId));
userEduMapper.insert(userEdu);
logOperate(OPERATE_TYPE_INSERT_LOG);
} else {
userEdu.setUpdateTime(new Date());
userEduMapper.updateById(userEdu);
logOperate(OPERATE_TYPE_UPDATE_LOG);
}
}
private String getUserId(String userId) {
if (StringUtils.isEmpty(userId) || CURRENT_USER_TAG.equals(userId)) {
return loginFacade.getCurrentUser().getUserName();
}
return userId;
}
private void logOperate(String operateType) {
// 记录操作日志
}
```
阅读全文