diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java index 63ffc6a3c0..ac882ae2e2 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java @@ -2,12 +2,15 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.BizPointTotalDetailDTO; import com.epmet.dto.InitPointRuleResultDTO; import com.epmet.dto.form.CommonUserFormDTO; +import com.epmet.dto.form.GroupPointFormDTO; import com.epmet.dto.result.ResiPointDetailResultDTO; import com.epmet.feign.fallback.EpmetPointOpenFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -34,4 +37,15 @@ public interface EpmetPointOpenFeignClient { **/ @PostMapping("/point/opback/initpointrule") Result initPointRule(); + + /** + * 获取小组积分 + * @author zhaoqifeng + * @date 2021/6/24 12:24 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("/point/group/point/pointdetail") + Result getGroupPoint(@RequestBody GroupPointFormDTO formDTO); + } diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java index ab0688e134..a54f0b5eab 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java @@ -3,8 +3,10 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.BizPointTotalDetailDTO; import com.epmet.dto.InitPointRuleResultDTO; import com.epmet.dto.form.CommonUserFormDTO; +import com.epmet.dto.form.GroupPointFormDTO; import com.epmet.dto.result.ResiPointDetailResultDTO; import com.epmet.feign.EpmetPointOpenFeignClient; import org.springframework.stereotype.Component; @@ -26,4 +28,17 @@ public class EpmetPointOpenFeignClientFallback implements EpmetPointOpenFeignCli public Result initPointRule() { return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "initPointRule"); } + + /** + * 获取小组积分 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2021/6/24 12:24 + */ + @Override + public Result getGroupPoint(GroupPointFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "formDTO"); + } } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java index eed49d25d6..6c2d36a7a3 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.BizPointTotalDetailDTO; import com.epmet.dto.form.GroupPointFormDTO; import com.epmet.dto.result.GroupPointRankingResultDTO; import com.epmet.dto.result.GroupPointRuleResultDTO; @@ -97,4 +98,19 @@ public class GroupPointController { result.setGroupSummary(ModuleConstant.GROUP_RULE_SUMMARY); return new Result().ok(result); } + + /** + * 获取小组积分 + * @author zhaoqifeng + * @date 2021/6/24 12:17 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("pointdetail") + public Result getGroupPoint(@RequestBody GroupPointFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, GroupPointFormDTO.GroupPoint.class); + BizPointTotalDetailDTO result = bizPointTotalDetailService.getGroupPoint(formDTO); + return new Result().ok(result); + } + } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java index f72e49ba39..8a81ff5ffb 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java @@ -126,4 +126,13 @@ public interface BizPointTotalDetailService extends BaseService groupPointRanking(GroupPointFormDTO formDTO); + + /** + * 获取小组积分 + * @author zhaoqifeng + * @date 2021/6/24 12:17 + * @param formDTO + * @return com.epmet.dto.BizPointTotalDetailDTO + */ + BizPointTotalDetailDTO getGroupPoint(GroupPointFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java index d2398b4b00..c1a7dbe14b 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -220,4 +221,22 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BizPointTotalDetailEntity :: getBizType, "group") + .eq(BizPointTotalDetailEntity ::getObjectId, formDTO.getGroupId()) + .eq(BizPointTotalDetailEntity ::getDelFlag, NumConstant.ZERO_STR); + BizPointTotalDetailEntity entity = baseDao.selectOne(wrapper); + return ConvertUtils.sourceToTarget(entity, BizPointTotalDetailDTO.class); + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 2db52e0d76..a5e3eb06fe 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -197,7 +197,7 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien * @date 2021/4/21 16:30 */ @Override - public Result groupPointDetail(@RequestBody GroupPointDetailFormDTO formDTO) { + public Result groupPointDetail(GroupPointDetailFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", formDTO); } diff --git a/epmet-module/resi-group/resi-group-server/pom.xml b/epmet-module/resi-group/resi-group-server/pom.xml index 018f200219..856b79afc0 100644 --- a/epmet-module/resi-group/resi-group-server/pom.xml +++ b/epmet-module/resi-group/resi-group-server/pom.xml @@ -124,6 +124,12 @@ 2.0.0 compile + + com.epmet + epmet-point-client + 2.0.0 + compile + diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java index 9d52a420b1..5cb1b48027 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java @@ -19,15 +19,20 @@ package com.epmet.modules.group.redis; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.BizPointTotalDetailDTO; +import com.epmet.dto.form.GroupPointFormDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; +import com.epmet.feign.EpmetPointOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.constant.ResiGroupRedisKeys; import com.epmet.modules.group.service.ResiGroupService; import com.epmet.modules.group.service.ResiGroupStatisticalService; +import com.epmet.modules.support.GroupLevelUtils; import com.epmet.modules.utils.ModuleConstant; import com.epmet.resi.group.constant.TopicConstant; import com.epmet.resi.group.dto.group.ResiGroupDTO; @@ -64,6 +69,8 @@ public class ResiGroupRedis { @Autowired private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private EpmetPointOpenFeignClient epmetPointOpenFeignClient; public void delete(Object[] ids) { @@ -92,16 +99,37 @@ public class ResiGroupRedis { public ResiGroupInfoRedisDTO get(String groupId){ if(StringUtils.isNotBlank(groupId)){ + GroupPointFormDTO groupPointFormDTO = new GroupPointFormDTO(); + groupPointFormDTO.setGroupId(groupId); + Result bizPointTotalDetailResult = epmetPointOpenFeignClient.getGroupPoint(groupPointFormDTO); + if (!bizPointTotalDetailResult.success()) { + throw new RenException(bizPointTotalDetailResult.getCode(), bizPointTotalDetailResult.getMsg()); + } + Integer level = 1; + if (null != bizPointTotalDetailResult.getData()) { + level = GroupLevelUtils.getLevel(bizPointTotalDetailResult.getData().getTotalPoint()); + if (null == level) { + level = 1; + } + } + ResiGroupDTO groupMySql = groupService.get(groupId); + + if (!level.equals(groupMySql.getLevel())) { + ResiGroupDTO dto = new ResiGroupDTO(); + dto.setId(groupMySql.getId()); + dto.setLevel(level); + groupService.update(dto); + } + ResiGroupInfoRedisDTO groupCache = (ResiGroupInfoRedisDTO) redisUtils.get(ResiGroupRedisKeys.getResiGroupInfoKey(groupId)); if(null == groupCache || StringUtils.isBlank(groupCache.getGroupId()) || null == groupCache.getGroupStatisticalInfo()){ //如果缓存中没有该组信息,从数据库中查询并放入缓存 - ResiGroupDTO groupMySql = groupService.get(groupId); - if(null != groupMySql && StringUtils.isNotBlank(groupMySql.getId())){ + if(StringUtils.isNotBlank(groupMySql.getId())){ ResiGroupInfoRedisDTO groupRedis = ConvertUtils.sourceToTarget(groupMySql,ResiGroupInfoRedisDTO.class); groupRedis.setGroupId(groupMySql.getId()); groupRedis.setGroupState(groupMySql.getState()); - groupRedis.setLevel("LV" + groupMySql.getLevel()); + groupRedis.setLevel("LV" + level); Map param = new HashMap<>(); param.put(TopicConstant.RESI_GROUP_ID,groupId); param.put(FieldConstant.DEL_FLAG, NumConstant.ZERO_STR); @@ -127,6 +155,9 @@ public class ResiGroupRedis { //返回数据 return groupRedis; } + } else { + groupCache.setLevel("LV" + level); + set(groupCache); } return groupCache; }