diff --git a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/entity/PointsLogsEntity.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/entity/PointsLogsEntity.java index 8f501f2..cc304d0 100644 --- a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/entity/PointsLogsEntity.java +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/entity/PointsLogsEntity.java @@ -104,4 +104,33 @@ public class PointsLogsEntity extends BaseEpdcEntity { */ private String volunteerId; -} \ No newline at end of file + /** + * 网格 + */ + private String grid; + + /** + * 网格ID + */ + private Long gridId; + + /** + * 父所有部门ID + */ + private String parentDeptIds; + + /** + * 父所有部门 + */ + private String parentDeptNames; + + /** + * 所有部门ID + */ + private String allDeptIds; + + /** + * 所有部门 + */ + private String allDeptNames; +} diff --git a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java new file mode 100644 index 0000000..f8a65ba --- /dev/null +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -0,0 +1,40 @@ +package com.elink.esua.epdc.feign; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +/** + * @author zhangyong + * @date 18:40 2020-05-19 + */ +@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class) +public interface AdminFeignClient { + + + /** + * 根据部门ID获取所有上级机构名称和ID拼接 + * + * @param deptId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author lipengfei + * @date 2019/11/27 09:31 + */ + @GetMapping("sys/dept/getParentAndAllDept/{deptId}") + Result getParentAndAllDept(@PathVariable("deptId") Long deptId); + + /** + * 根据部门id,获取所有上级部门id,英文逗号隔开拼接字符串 + * + * @param deptId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/11/27 15:07 + */ + @GetMapping("sys/dept/getParentDeptIds/{deptId}") + Result getParentDeptIds(@PathVariable("deptId") Long deptId); +} diff --git a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java index 1fd09f9..35c2710 100644 --- a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/UsersFeignClient.java @@ -57,5 +57,15 @@ public interface UsersFeignClient { **/ @GetMapping(value = "app-user/usergrid/getUserLastSwitchGird/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE) Result getUserLastSwitchGird(@PathVariable("userId") String userId); + + /** + * @Description 获取用户第一次扫码网格的信息 + * @Author zy + * @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/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java new file mode 100644 index 0000000..52c11cf --- /dev/null +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -0,0 +1,26 @@ +package com.elink.esua.epdc.feign.fallback; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.feign.AdminFeignClient; +import org.springframework.stereotype.Component; + +/** + * @author zhangyong + * @date 18:40 2020-05-19 + */ +@Component +public class AdminFeignClientFallback implements AdminFeignClient { + + @Override + public Result getParentAndAllDept(Long deptId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getParentAndAllDept", deptId); + } + + @Override + public Result getParentDeptIds(Long deptId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getParentDeptIds", deptId); + } +} diff --git a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java index 49c34ca..dcfd9da 100644 --- a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/feign/fallback/UsersFeignClientFallback.java @@ -35,4 +35,9 @@ public class UsersFeignClientFallback implements UsersFeignClient { public Result getUserLastSwitchGird(String userId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserLastSwitchGird", userId); } + + @Override + public Result getUserFirstScanGird(String userId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserFirstScanGird", userId); + } } diff --git a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java index 11c1715..23028b3 100644 --- a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java @@ -6,6 +6,7 @@ import com.elink.esua.epdc.common.token.util.CpUserDetailRedis; import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.form.PointsLogsAddFormDTO; @@ -13,6 +14,7 @@ import com.elink.esua.epdc.dto.form.PointsLogsFormDTO; import com.elink.esua.epdc.dto.result.PointsLogsResultDTO; import com.elink.esua.epdc.dto.result.PointsRuleResultDTO; import com.elink.esua.epdc.entity.PointsLogsEntity; +import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.UsersFeignClient; import com.elink.esua.epdc.jwt.JwtTokenProperties; import com.elink.esua.epdc.mq.dto.BehaviorDto; @@ -52,6 +54,8 @@ public class PointsModifyConsumer implements RocketMQListener { @Autowired private JwtTokenProperties jwtTokenProperties; + @Autowired + private AdminFeignClient adminFeignClient; /** * 操作类型 加分 @@ -190,6 +194,34 @@ public class PointsModifyConsumer implements RocketMQListener { pointsLogsAddFormDTO.setOperationDesc(pointsRuleResultDTO.getRuleDesc()); pointsLogsAddFormDTO.setOperationTime(dto.getOperationTime()); pointsLogsAddFormDTO.setOperationMode("user"); + + 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()); + } + } + } + pointsLogsAddFormDTO.setLavePoints(userDTO.getPoints()); PointsLogsEntity pointsLogsEntity = ConvertUtils.sourceToTarget(pointsLogsAddFormDTO, PointsLogsEntity.class); pointsLogsService.insert(pointsLogsEntity); diff --git a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/dto/BehaviorDto.java b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/dto/BehaviorDto.java index 7f17636..4f00833 100644 --- a/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/dto/BehaviorDto.java +++ b/epdc-cloud-points/src/main/java/com/elink/esua/epdc/mq/dto/BehaviorDto.java @@ -37,6 +37,11 @@ public class BehaviorDto implements Serializable { */ private String userId; + /** + * 网格ID + */ + private Long gridId; + /** * 其他标识 */