From c05f11ac41ad23306b9a15c7fd9bf17aaf8f9d5b Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 13 Apr 2020 21:28:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E4=BF=A1=E6=81=AF=E5=AD=98=E5=85=A5?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisKeys.java | 21 +++++++ .../dto/group/ResiGroupInfoRedisDTO.java | 26 +++++++- .../ResiGroupStatisticalInfoRedisDTO.java | 15 +++++ .../member/ResiGroupMemberInfoRedisDTO.java | 20 ++++++ .../modules/group/redis/ResiGroupRedis.java | 17 ++++- .../service/impl/ResiGroupServiceImpl.java | 62 ++++++++++++++++--- .../member/redis/ResiGroupMemberRedis.java | 18 +++++- 7 files changed, 163 insertions(+), 16 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index b0deec2e02..4b57bb3530 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -174,4 +174,25 @@ public class RedisKeys { return rootPrefix.concat("resiregister:confirm:").concat(userId).concat("-").concat(mobile).concat("-*"); } + /** + * @Description 小组缓存信息key + * @Param 组Id + * @return epmet:resi:group:groupId + * @Author wangc + * @Date 2020.04.13 11:27 + **/ + public static String getResiGroupInfoKey(String groupId){ + return rootPrefix.concat("resi:group:").concat(groupId); + } + + /** + * @Description 组成员信息缓存key + * @Param 组Id 用户Id + * @return epmet:resi:group:member:groupId:userId + * @Author wangc + * @Date 2020.04.13 13:40 + **/ + public static String getResiGroupMemberInfoKey(String groupId, String userId){ + return rootPrefix.concat("resi:group:member:").concat(groupId).concat(":").concat(userId); + } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java index 89cbcaeeea..f2c52f6804 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java @@ -9,6 +9,7 @@ import java.io.Serializable; * @ClassName ResiGroupInfoRedisDTO * @Author wangc * @date 2020.04.11 09:51 + * @Mark RedisKey为:epmet:resi:group:groupId */ @Data public class ResiGroupInfoRedisDTO implements Serializable{ @@ -60,6 +61,29 @@ public class ResiGroupInfoRedisDTO implements Serializable{ * */ private ResiGroupStatisticalInfoRedisDTO groupStatisticalInfo; - + /** + * Json事例 + * + * { + "groupId": "62a8f9c690a60ff35dfbde96ac5f2267", + "groupHeadPhoto": "https://epdc-shibei.elinkservice.cn/epdcFile/M00/00/00/CgUipV3wgl6Afm4cAAAa8QfEb00266_big.png", + "groupName": "产品研发群", + "groupIntroduction": "亿联科技城市治理事业部产品研发群", + "customerId": "f76def116c9c2dc0269cc17867af122c", + "gridId": "d28be766680811eab9c900163e08c0f9", + "groupState": "approved", + "latestTopicPublishDate": "2020-04-02 10:21:54", + "groupStatisticalInfo": { + "id": "7f38c68ae49257e415effd76372e2aed", + "totalMembers": 4, + "totalTopics": 11, + "totalIssues": 0, + "totalPartyMembers": 0, + "totalEarnestMembers": 1, + "totalNormalMembers": 4 + } + } + * + * */ } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java index d2a0db916d..18ac208d25 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java @@ -49,4 +49,19 @@ public class ResiGroupStatisticalInfoRedisDTO implements Serializable { * 注册居民总数 * */ private Integer totalNormalMembers; + + /** + * Json事例 + * + { + "id": "7f38c68ae49257e415effd76372e2aed", + "totalMembers": 4, + "totalTopics": 11, + "totalIssues": 0, + "totalPartyMembers": 0, + "totalEarnestMembers": 1, + "totalNormalMembers": 4 + } + * + * */ } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java index 3e5282fb3d..529fa1f9b8 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java @@ -9,6 +9,7 @@ import java.io.Serializable; * @ClassName ResiGroupMemberInfoRedisDTO * @Author wangc * @date 2020.04.11 09:52 + * @Mark RedisKey为:epmet:resi:group:member:groupId:userId */ @Data public class ResiGroupMemberInfoRedisDTO implements Serializable { @@ -45,4 +46,23 @@ public class ResiGroupMemberInfoRedisDTO implements Serializable { * */ private String memberStatus; + /** + * 组Id,不存在redis的value中,存在redis的key中 + * */ + private String groupId; + + /** + * Json事例 + * + * { + "userId": "sfjsdjfjkdsfiemrlwejrlknsdlfjsd", + "userHeadPhoto": "https://epdc-shibei.elinkservice.cn/epdcFile/M00/00/00/CgUipV3wgl6Afm4cAAAa8QfEb00266_big.png", + "userShowName": "山东路-尹女士", + "groupLeaderFlag": "leader", + "enterGroupType": "created", + "memberStatus": "approved" + } + * + * + * */ } 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 4ce9b643f2..a04d51a70d 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 @@ -17,7 +17,10 @@ package com.epmet.modules.group.redis; +import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.resi.group.dto.group.ResiGroupInfoRedisDTO; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -35,9 +38,17 @@ public class ResiGroupRedis { public void delete(Object[] ids) { } - - public void set(){ - + /** + * @Description 新增/更新群组缓存信息 + * @Param + * @return + * @Author wangc + * @Date 2020.04.13 09:58 + **/ + public void set(ResiGroupInfoRedisDTO groupInfoRedis){ + if(null != groupInfoRedis && StringUtils.isNotBlank(groupInfoRedis.getGroupId())){ + redisUtils.set(RedisKeys.getResiGroupInfoKey(groupInfoRedis.getGroupId()), groupInfoRedis); + } } public String get(String id){ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index ee936b3911..9672703220 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -19,7 +19,6 @@ package com.epmet.modules.group.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.api.R; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; import com.epmet.commons.tools.constant.FieldConstant; @@ -27,8 +26,8 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.UserRoleFormDTO; import com.epmet.dto.result.UserResiInfoResultDTO; @@ -37,9 +36,9 @@ import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.dao.ResiGroupOperationDao; import com.epmet.modules.group.entity.ResiGroupEntity; +import com.epmet.modules.group.redis.ResiGroupRedis; import com.epmet.modules.group.service.ResiGroupOperationService; import com.epmet.modules.group.service.ResiGroupService; - import com.epmet.modules.group.service.ResiGroupStatisticalService; import com.epmet.modules.member.dao.GroupMemeberOperationDao; import com.epmet.modules.member.dao.ResiGroupMemberDao; @@ -51,10 +50,7 @@ import com.epmet.resi.group.constant.GroupStateConstant; import com.epmet.resi.group.constant.LeaderFlagConstant; import com.epmet.resi.group.constant.MemberStateConstant; import com.epmet.resi.group.dto.UserRoleDTO; -import com.epmet.resi.group.dto.group.ResiGroupDTO; -import com.epmet.resi.group.dto.group.ResiGroupOperationDTO; - -import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO; +import com.epmet.resi.group.dto.group.*; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.CreatedResultDTO; import com.epmet.resi.group.dto.group.result.GroupSummarizeResultDTO; @@ -69,9 +65,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 群组信息表 @@ -107,6 +102,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -451,6 +450,24 @@ public class ResiGroupServiceImpl extends BaseServiceImpl param = new HashMap<>(); + param.put("resiGroupId",resiGroupDTO.getId()); + List statisticalList = resiGroupStatisticalService.list(param); + if(null != statisticalList && statisticalList.size() > 0){ + ResiGroupInfoRedisDTO groupRedis = transferToGroupInfoRedis(resiGroupDTO,statisticalList.get(0)); + resiGroupRedis.set(groupRedis); + }else{ + //当没有查询到组统计信息时 + UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO(); + userRoleFormDTO.setApp("resi"); + userRoleFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); + userRoleFormDTO.setUserId(agreeApplyGroupFormDTO.getUserId()); + //userRoleFormDTO.setGridId() + //epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + } + + return new Result(); } @@ -524,4 +541,29 @@ public class ResiGroupServiceImpl extends BaseServiceImpl