Browse Source

积分消费 添加详细日志

feature/syp_points
songyunpeng 6 years ago
parent
commit
8d667b8d1b
  1. 26
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java

26
esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java

@ -83,8 +83,8 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
String charset = "UTF-8"; String charset = "UTF-8";
String body = new String(messageExt.getBody(), charset); String body = new String(messageExt.getBody(), charset);
BehaviorDto dto = JSONObject.parseObject(body, BehaviorDto.class); BehaviorDto dto = JSONObject.parseObject(body, BehaviorDto.class);
this.handlePoints(dto); String info = this.handlePoints(dto);
log.info("EPDC-POINTS-SERVER消费消息END:{topic:{}, msgId:{}, body:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId(), body); log.info("EPDC-POINTS-SERVER消费消息END:{topic:{}, msgId:{}, body:{}, info:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId(), body,info);
} catch (Exception e) { } catch (Exception e) {
log.info("EPDC-POINTS-SERVER消费消息失败:msgId:{}", messageExt.getMsgId()); log.info("EPDC-POINTS-SERVER消费消息失败:msgId:{}", messageExt.getMsgId());
e.printStackTrace(); e.printStackTrace();
@ -98,10 +98,10 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
* 根据动作编码获取积分规则信息 * 根据动作编码获取积分规则信息
* 根据动作编码和用户ID获取此动作在一定时限内的总分然后根据上线统计指标判断是否到达上限值未到达加分或减分达到则不进行操作 * 根据动作编码和用户ID获取此动作在一定时限内的总分然后根据上线统计指标判断是否到达上限值未到达加分或减分达到则不进行操作
*/ */
private void handlePoints(BehaviorDto dto) { private String 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; return "mq参数传递出错:业务ID,用户ID或者行为为空";
} }
//计算是否超过该动作的积分上限 -- 开始 //计算是否超过该动作的积分上限 -- 开始
//1.根据行为编码获取积分规则 //1.根据行为编码获取积分规则
@ -110,8 +110,11 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
pointsLogsFormDTO.setUserId(dto.getUserId()); pointsLogsFormDTO.setUserId(dto.getUserId());
pointsLogsFormDTO.setReferenceId(dto.getReferenceId()); pointsLogsFormDTO.setReferenceId(dto.getReferenceId());
PointsRuleResultDTO pointsRuleResultDTO = pointsRuleService.getPointsRuleByBehaviorCode(dto.getBehavior()); PointsRuleResultDTO pointsRuleResultDTO = pointsRuleService.getPointsRuleByBehaviorCode(dto.getBehavior());
if (pointsRuleResultDTO == null || pointsRuleResultDTO.getUpperLimitVal() == 0) { if (pointsRuleResultDTO == null) {
return; return "获取积分负责失败";
}
if(pointsRuleResultDTO.getUpperLimitVal() == 0){
return "积分限值为0,无法加分";
} }
pointsLogsFormDTO.setRuleCode(pointsRuleResultDTO.getRuleCode()); pointsLogsFormDTO.setRuleCode(pointsRuleResultDTO.getRuleCode());
//1.1如果规则里动作次数上限不为0则需要判断该动作是否超过次数上限 //1.1如果规则里动作次数上限不为0则需要判断该动作是否超过次数上限
@ -121,7 +124,7 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
List<PointsLogsResultDTO> pointsLogsResultDTs = pointsLogsService.getLogsByBehaviorCodeAndUserIdAndReferenceId(pointsLogsFormDTO); List<PointsLogsResultDTO> pointsLogsResultDTs = pointsLogsService.getLogsByBehaviorCodeAndUserIdAndReferenceId(pointsLogsFormDTO);
//如果大于或者等于上限 代表不能再进行操作 //如果大于或者等于上限 代表不能再进行操作
if (pointsLogsResultDTs != null && pointsLogsResultDTs.size() >= Integer.parseInt(pointsRuleResultDTO.getLimitNum())) { if (pointsLogsResultDTs != null && pointsLogsResultDTs.size() >= Integer.parseInt(pointsRuleResultDTO.getLimitNum())) {
return; return "同一项目积分已达到上限值,无法继续加分";
} }
} }
//2.赋值积分规则的上限期限(小时,年。。。。) //2.赋值积分规则的上限期限(小时,年。。。。)
@ -131,7 +134,7 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
//判断总分是否超过上限 //判断总分是否超过上限
if (total != null) { if (total != null) {
if (Math.abs(total + pointsRuleResultDTO.getPoints()) > Math.abs(pointsRuleResultDTO.getUpperLimitVal())) { if (Math.abs(total + pointsRuleResultDTO.getPoints()) > Math.abs(pointsRuleResultDTO.getUpperLimitVal())) {
return; return "该动作积分已达到上限值,无法继续加分";
} }
} }
//计算是否超过该动作的积分上限 -- 结束 //计算是否超过该动作的积分上限 -- 结束
@ -139,11 +142,11 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
//1.获取用户信息 //1.获取用户信息
Result<UserDTO> userById = usersFeignClient.getUserById(dto.getUserId()); Result<UserDTO> userById = usersFeignClient.getUserById(dto.getUserId());
if (!SUCCESS_CODE.equals(userById.getMsg())) { if (!SUCCESS_CODE.equals(userById.getMsg())) {
return; return "通过Feign获取用户信息失败";
} }
UserDTO userDTO = userById.getData(); UserDTO userDTO = userById.getData();
if (userDTO == null) { if (userDTO == null) {
return; return "无法获取到用户信息";
} }
//判断用户是否完善信息 //判断用户是否完善信息
Long gridId = 0L; Long gridId = 0L;
@ -151,7 +154,7 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
//获取网格人员关系表 //获取网格人员关系表
Result<UserGridRelationDTO> userLastSwitchGird = usersFeignClient.getUserLastSwitchGird(userDTO.getId()); Result<UserGridRelationDTO> userLastSwitchGird = usersFeignClient.getUserLastSwitchGird(userDTO.getId());
if(!userLastSwitchGird.success() || userLastSwitchGird.getData()==null){ if(!userLastSwitchGird.success() || userLastSwitchGird.getData()==null){
return; return "无法获取到网格人员关系信息";
} }
gridId = userLastSwitchGird.getData().getGridId(); gridId = userLastSwitchGird.getData().getGridId();
}else{ }else{
@ -176,6 +179,7 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
//添加操作日志 -- 开始 //添加操作日志 -- 开始
addRuleLog(pointsRuleResultDTO, dto, userDTO); addRuleLog(pointsRuleResultDTO, dto, userDTO);
//添加操作日志 -- 结束 //添加操作日志 -- 结束
return "积分操作成功!动作描述:"+pointsRuleResultDTO.getBehaviorDesc() +" 积分描述:"+pointsRuleResultDTO.getRuleDesc() +" 分数统计:" +pointsRuleResultDTO.getPoints();
} }
private void addRuleLog(PointsRuleResultDTO pointsRuleResultDTO, BehaviorDto dto, UserDTO userDTO) { private void addRuleLog(PointsRuleResultDTO pointsRuleResultDTO, BehaviorDto dto, UserDTO userDTO) {

Loading…
Cancel
Save