|
|
|
@ -53,7 +53,6 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> { |
|
|
|
private JwtTokenProperties jwtTokenProperties; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 操作类型 加分 |
|
|
|
*/ |
|
|
|
@ -100,7 +99,7 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> { |
|
|
|
*/ |
|
|
|
private void handlePoints(BehaviorDto dto) { |
|
|
|
//解析参数
|
|
|
|
if(StringUtils.isBlank(dto.getReferenceId()) || StringUtils.isBlank(dto.getUserId()) || StringUtils.isBlank(dto.getBehavior())){ |
|
|
|
if (StringUtils.isBlank(dto.getReferenceId()) || StringUtils.isBlank(dto.getUserId()) || StringUtils.isBlank(dto.getBehavior())) { |
|
|
|
return; |
|
|
|
} |
|
|
|
//计算是否超过该动作的积分上限 -- 开始
|
|
|
|
@ -129,7 +128,7 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> { |
|
|
|
Integer total = pointsLogsService.getPointsSumByBehaviorCodeAndUserId(pointsLogsFormDTO); |
|
|
|
//判断总分是否超过上限
|
|
|
|
if (total != null) { |
|
|
|
if (Math.abs(total+ pointsRuleResultDTO.getPoints()) > Math.abs(pointsRuleResultDTO.getUpperLimitVal())) { |
|
|
|
if (Math.abs(total + pointsRuleResultDTO.getPoints()) > Math.abs(pointsRuleResultDTO.getUpperLimitVal())) { |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -165,16 +164,6 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> { |
|
|
|
//添加操作日志 -- 结束
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 时间计算逻辑:# |
|
|
|
* 返回的总数为 离当前时间最早的一个剩余分数为界限值之后一分钟内的分数的总和 -- 作用是与界限值做判断 |
|
|
|
* 返回的时间为 离当前时间最早的一个剩余分数为界限值的操作时间 -- 作用是判断是否超过时间界限 |
|
|
|
* <p> |
|
|
|
* 总结为:若是超过积分总数界限且返回的时间+1min大于当前时间(代表在时间界限内,用户还在操作,此时不给加分) |
|
|
|
* 若是超过积分总数界限且返回的时间+1min小于当前时间(代表不在时间界限内,用户在操作,取界限值为剩余分) |
|
|
|
* 若是没有超过积分总数界限且返回的时间+1min小于当前时间(代表不在时间界限内,用户在操作,取界限值为剩余分) |
|
|
|
* 若是没有超过积分总数界限且返回的时间+1min大于当前时间(代表在时间界限内,用户在操作,剩余积分正常加减) |
|
|
|
*/ |
|
|
|
private void addRuleLog(PointsRuleResultDTO pointsRuleResultDTO, BehaviorDto dto, UserDTO userDTO) { |
|
|
|
PointsLogsAddFormDTO pointsLogsAddFormDTO = new PointsLogsAddFormDTO(); |
|
|
|
pointsLogsAddFormDTO.setUserId(dto.getUserId()); |
|
|
|
|