From 684ea9fed4c66c3666a6b91c6cdded15de5253bd Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Fri, 5 Feb 2021 09:58:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/aop/UserBehaviorAop.java | 7 ++- .../esua/epdc/feign/UsersFeignClient.java | 10 +++++ .../fallback/UsersFeignClientFallback.java | 5 +++ .../esua/epdc/mq/PointsModifyConsumer.java | 45 ++++++++++++------- 4 files changed, 50 insertions(+), 17 deletions(-) diff --git a/esua-epdc/epdc-commons/epdc-commons-points-tools/src/main/java/com/elink/esua/epdc/pointcommons/tools/aop/UserBehaviorAop.java b/esua-epdc/epdc-commons/epdc-commons-points-tools/src/main/java/com/elink/esua/epdc/pointcommons/tools/aop/UserBehaviorAop.java index 6bb2d401..de5763f4 100644 --- a/esua-epdc/epdc-commons/epdc-commons-points-tools/src/main/java/com/elink/esua/epdc/pointcommons/tools/aop/UserBehaviorAop.java +++ b/esua-epdc/epdc-commons/epdc-commons-points-tools/src/main/java/com/elink/esua/epdc/pointcommons/tools/aop/UserBehaviorAop.java @@ -165,7 +165,12 @@ public class UserBehaviorAop { behaviorDto.setBehavior(behaviorCode); behaviorDto.setReferenceId(referenceId); behaviorDto.setUserId(userId); - behaviorDto.setGridId(Long.parseLong(gridId)); + try { + behaviorDto.setGridId(Long.parseLong(gridId)); + }catch (Exception e){ + //如果网格ID获取失败 赋值为0L + behaviorDto.setGridId(0L); + } behaviorDto.setOperationTime(new Date()); log.info("动作发送信息:动作编码:"+behaviorCode+" 用户ID:"+userId+",业务ID:"+referenceId+",网格ID:"+gridId+",操作时间:"+behaviorDto.getOperationTime()); //发送mq diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java index a1c8f1a5..47d41623 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java @@ -66,5 +66,15 @@ public interface UsersFeignClient { **/ @GetMapping(value = "app-user/epdc-app/user/getUserGridIdByUserId/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE) Result getUserGridIdByUserId(@PathVariable String userId); + + /** + * @Description 获取用户第一次扫码网格的信息 + * @Author songyunpeng + * @Date 2020/6/2 + * @Param [userId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @GetMapping(value = "app-user/usergrid/getUserFirstScanGird/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE) + Result getUserFirstScanGird(@PathVariable("userId") String userId); } diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java index dc258cb6..ef21e6da 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java @@ -41,4 +41,9 @@ public class UsersFeignClientFallback implements UsersFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserGridIdByUserId", userId); } + @Override + public Result getUserFirstScanGird(String userId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserFirstScanGird", userId); + } + } diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java index e0a339da..0296e9b0 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java @@ -2,11 +2,11 @@ package com.elink.esua.epdc.mq; import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; -import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.security.content.dto.form.ParentAndAllDeptDTO; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO; import com.elink.esua.epdc.dto.form.PointsLogsAddFormDTO; import com.elink.esua.epdc.dto.form.PointsLogsFormDTO; @@ -85,7 +85,7 @@ public class PointsModifyConsumer implements RocketMQListener { String body = new String(messageExt.getBody(), charset); BehaviorDto dto = JSONObject.parseObject(body, BehaviorDto.class); String info = this.handlePoints(dto); - log.info("EPDC-POINTS-SERVER消费消息END:{topic:{}, msgId:{}, body:{}, info:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId(), body,info); + 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(); @@ -114,7 +114,7 @@ public class PointsModifyConsumer implements RocketMQListener { if (pointsRuleResultDTO == null) { return "获取积分规则失败"; } - if(pointsRuleResultDTO.getUpperLimitVal() == 0){ + if (pointsRuleResultDTO.getUpperLimitVal() == 0) { return "积分限值为0,无法加分"; } pointsLogsFormDTO.setRuleCode(pointsRuleResultDTO.getRuleCode()); @@ -179,7 +179,7 @@ public class PointsModifyConsumer implements RocketMQListener { //添加操作日志 -- 开始 addRuleLog(pointsRuleResultDTO, dto, userDTO); //添加操作日志 -- 结束 - return "积分操作成功!动作描述:"+pointsRuleResultDTO.getBehaviorDesc() +" 积分描述:"+pointsRuleResultDTO.getRuleDesc() +" 分数统计:" +pointsRuleResultDTO.getPoints(); + return "积分操作成功!动作描述:" + pointsRuleResultDTO.getBehaviorDesc() + " 积分描述:" + pointsRuleResultDTO.getRuleDesc() + " 分数统计:" + pointsRuleResultDTO.getPoints(); } private void addRuleLog(PointsRuleResultDTO pointsRuleResultDTO, BehaviorDto dto, UserDTO userDTO) { @@ -195,20 +195,33 @@ public class PointsModifyConsumer implements RocketMQListener { pointsLogsAddFormDTO.setOperationDesc(pointsRuleResultDTO.getRuleDesc()); pointsLogsAddFormDTO.setOperationTime(dto.getOperationTime()); pointsLogsAddFormDTO.setOperationMode("user"); - if(dto.getGridId()!=null){ - pointsLogsAddFormDTO.setGridId(dto.getGridId()); - Result parentAndAllDept = adminFeignClient.getParentAndAllDept(dto.getGridId()); - if(parentAndAllDept==null || parentAndAllDept.getData()==null){ - throw new RenException("获取所属部门信息失败!"); + if (dto.getGridId() != null) { + if (0L == dto.getGridId()) { + //用户网格ID为空,获取第一次扫码网格 + Result userFirstScanGird = usersFeignClient.getUserFirstScanGird(dto.getUserId()); + if (userFirstScanGird != null && userFirstScanGird.getData() != null) { + UserGridRelationDTO userGridRelationDTO = new UserGridRelationDTO(); + pointsLogsAddFormDTO.setGridId(userGridRelationDTO.getGridId()); + pointsLogsAddFormDTO.setGrid(userGridRelationDTO.getGrid()); + pointsLogsAddFormDTO.setAllDeptIds(userGridRelationDTO.getAllDeptIds()); + pointsLogsAddFormDTO.setAllDeptNames(userGridRelationDTO.getAllDeptNames()); + pointsLogsAddFormDTO.setParentDeptIds(userGridRelationDTO.getParentDeptIds()); + pointsLogsAddFormDTO.setParentDeptNames(userGridRelationDTO.getParentDeptNames()); + } + } else { + Result parentAndAllDept = adminFeignClient.getParentAndAllDept(dto.getGridId()); + if (parentAndAllDept != null || parentAndAllDept.getData() != null) { + ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDept.getData(); + pointsLogsAddFormDTO.setGridId(parentAndAllDeptDTO.getGridId()); + pointsLogsAddFormDTO.setGrid(parentAndAllDeptDTO.getGrid()); + pointsLogsAddFormDTO.setAllDeptIds(parentAndAllDeptDTO.getAllDeptIds()); + pointsLogsAddFormDTO.setAllDeptNames(parentAndAllDeptDTO.getAllDeptNames()); + pointsLogsAddFormDTO.setParentDeptIds(parentAndAllDeptDTO.getParentDeptIds()); + pointsLogsAddFormDTO.setParentDeptNames(parentAndAllDeptDTO.getParentDeptNames()); + } } - ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDept.getData(); - pointsLogsAddFormDTO.setGrid(parentAndAllDeptDTO.getGrid()); - pointsLogsAddFormDTO.setAllDeptIds(parentAndAllDeptDTO.getAllDeptIds()); - pointsLogsAddFormDTO.setAllDeptNames(parentAndAllDeptDTO.getAllDeptNames()); - pointsLogsAddFormDTO.setParentDeptIds(parentAndAllDeptDTO.getParentDeptIds()); - pointsLogsAddFormDTO.setParentDeptNames(parentAndAllDeptDTO.getParentDeptNames()); } - pointsLogsAddFormDTO.setLavePoints(userDTO.getPoints()+pointsRuleResultDTO.getPoints()); + pointsLogsAddFormDTO.setLavePoints(userDTO.getPoints() + pointsRuleResultDTO.getPoints()); PointsLogsEntity pointsLogsEntity = ConvertUtils.sourceToTarget(pointsLogsAddFormDTO, PointsLogsEntity.class); pointsLogsService.insert(pointsLogsEntity); }