|
|
@ -27,6 +27,7 @@ import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.constant.StrConstant; |
|
|
|
import com.epmet.commons.tools.enums.CommonOperateTypeEnum; |
|
|
|
import com.epmet.commons.tools.enums.EventEnum; |
|
|
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
|
import com.epmet.commons.tools.exception.ExceptionUtils; |
|
|
|
import com.epmet.commons.tools.exception.RenException; |
|
|
|
import com.epmet.commons.tools.security.dto.TokenDto; |
|
|
@ -146,15 +147,31 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul |
|
|
|
return resultDTO; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 积分规则修改 |
|
|
|
* @Param tokenDTO |
|
|
|
* @Param formDTO |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void update(TokenDto tokenDTO, PointRuleFormDTO formDTO) { |
|
|
|
// 积分规则开启状态参数校验
|
|
|
|
validateEnableFlag(formDTO); |
|
|
|
PointRuleEntity entityDB = baseDao.selectById(formDTO.getRuleId()); |
|
|
|
//数据库不存在或者客户Id不相等 则抛出异常
|
|
|
|
if (entityDB == null || !entityDB.getCustomerId().equals(formDTO.getCustomerId())) { |
|
|
|
throw new RenException(SysResponseEnum.POINT_RULE_IS_NOT_EXIST.getCode(), SysResponseEnum.POINT_RULE_IS_NOT_EXIST.getMsg()); |
|
|
|
} |
|
|
|
// 校验规则是否有重复名字
|
|
|
|
Integer sameCount = baseDao.checkSameName(formDTO.getRuleName(), formDTO.getCustomerId(), formDTO.getRuleId()); |
|
|
|
if (sameCount > NumConstant.ZERO){ |
|
|
|
throw new RenException(EpmetErrorCode.SAME_RULE_NAME.getCode()); |
|
|
|
} |
|
|
|
// 检验积分上限是不是单位积分的整数倍
|
|
|
|
Integer remainder = formDTO.getUpLimit() % formDTO.getPoint(); |
|
|
|
if (remainder > NumConstant.ZERO){ |
|
|
|
throw new RenException(EpmetErrorCode.UP_LIMIT_POINT.getCode()); |
|
|
|
} |
|
|
|
PointRuleEntity entityNew = ConvertUtils.sourceToTarget(formDTO, PointRuleEntity.class); |
|
|
|
entityNew.setId(formDTO.getRuleId()); |
|
|
|
entityNew.setEnabledFlag(StrConstant.TRUE.equals(formDTO.getEnabledFlag()) ? "1" : "0"); |
|
|
@ -164,6 +181,41 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul |
|
|
|
} |
|
|
|
baseDao.updateByCustomerId(entityNew); |
|
|
|
insertOperateRecord(tokenDTO, entityNew, entityDB, CommonOperateTypeEnum.EDIT.getCode()); |
|
|
|
// 系统日志记录
|
|
|
|
List<String> messages = disposeLog(formDTO, entityDB); |
|
|
|
// TODO add
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 变更处理 |
|
|
|
* @Param f |
|
|
|
* @Param e |
|
|
|
* @author zxc |
|
|
|
* @date 2021/6/18 3:14 下午 |
|
|
|
*/ |
|
|
|
private List<String> disposeLog(PointRuleFormDTO f,PointRuleEntity e){ |
|
|
|
List<String> result = new ArrayList<>(); |
|
|
|
// 单位积分
|
|
|
|
if (!e.getPoint().equals(f.getPoint())){ |
|
|
|
String s = String.format(StrConstant.POINT_CHANGE, e.getRuleName(), e.getPoint(), f.getPoint()); |
|
|
|
result.add(s); |
|
|
|
} |
|
|
|
// 积分上限
|
|
|
|
if (!e.getUpLimit().equals(f.getUpLimit())){ |
|
|
|
String s = String.format(StrConstant.POINT_CHANGE, e.getRuleName(), e.getUpLimit(), f.getUpLimit()); |
|
|
|
result.add(s); |
|
|
|
} |
|
|
|
// 积分事件
|
|
|
|
if (!e.getRuleName().equals(f.getRuleName())){ |
|
|
|
String s = String.format(StrConstant.POINT_CHANGE, e.getRuleName(), e.getRuleName(), f.getRuleName()); |
|
|
|
result.add(s); |
|
|
|
} |
|
|
|
// 积分说明
|
|
|
|
if (!e.getRuleDesc().equals(f.getRuleDesc())){ |
|
|
|
String s = String.format(StrConstant.POINT_CHANGE, e.getRuleName(), e.getRuleDesc(), f.getRuleDesc()); |
|
|
|
result.add(s); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
private void validateEnableFlag(PointRuleFormDTO formDTO) { |
|
|
|