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

Loading…
Cancel
Save