Browse Source

组信息存入缓存

dev_shibei_match
wangchao 5 years ago
parent
commit
c05f11ac41
  1. 21
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 26
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java
  3. 15
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java
  4. 20
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java
  5. 17
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java
  6. 62
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  7. 18
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/redis/ResiGroupMemberRedis.java

21
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);
}
}

26
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
}
}
*
* */
}

15
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
}
*
* */
}

20
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"
}
*
*
* */
}

17
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){

62
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<ResiGroupDao, ResiGrou
@Autowired
private GroupMemeberOperationDao groupMemeberOperationDao;
@Autowired
private ResiGroupRedis resiGroupRedis;
@Override
public PageData<ResiGroupDTO> page(Map<String, Object> params) {
IPage<ResiGroupEntity> page = baseDao.selectPage(
@ -451,6 +450,24 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
groupMemeberOperationDTO.setOperateUserId(agreeApplyGroupFormDTO.getUserId());
groupMemeberOperationService.update(groupMemeberOperationDTO);
//5、给用户发送消息???待定
//6、新增小组缓存信息
Map<String,Object> param = new HashMap<>();
param.put("resiGroupId",resiGroupDTO.getId());
List<ResiGroupStatisticalDTO> 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<ResiGroupDao, ResiGrou
}
return userRoleDTO;
}
/**
* @Description 将ResiGroupDTO与ResiGroupStatisticalDTO转换成ResiGroupInfoRedisDTO
* @Param ResiGroupDTO
* @Param ResiGroupStatisticalDTO
* @return ResiGroupInfoRedisDTO
* @Author wangc
* @Date 2020.04.13 16:36
**/
private ResiGroupInfoRedisDTO transferToGroupInfoRedis(ResiGroupDTO groupDTO,ResiGroupStatisticalDTO statisticalDTO){
ResiGroupStatisticalInfoRedisDTO statisticalObjct =
ConvertUtils.sourceToTarget(statisticalDTO,ResiGroupStatisticalInfoRedisDTO.class);
statisticalObjct.setTotalEarnestMembers(statisticalDTO.getTotalEarnestMemebers());
statisticalObjct.setTotalNormalMembers(statisticalDTO.getTotalNormalMemebers());
ResiGroupInfoRedisDTO sorceObject =
ConvertUtils.sourceToTarget(groupDTO,ResiGroupInfoRedisDTO.class);
sorceObject.setGroupId(groupDTO.getId());
sorceObject.setGroupState(groupDTO.getState());
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN);
sorceObject.setLatestTopicPublishDate(format.format(groupDTO.getLatestTopicPublishDate()));
sorceObject.setGroupStatisticalInfo(statisticalObjct);
return sorceObject;
}
}

18
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/redis/ResiGroupMemberRedis.java

@ -17,7 +17,10 @@
package com.epmet.modules.member.redis;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -36,8 +39,19 @@ public class ResiGroupMemberRedis {
}
public void set(){
/**
* @Description 新增/更新组成员缓存信息
* @Param ResiGroupMemberInfoRedisDTO
* @return
* @Author wangc
* @Date 2020.04.13 13:54
**/
public void set(ResiGroupMemberInfoRedisDTO memberInfoRedis){
if(null != memberInfoRedis
&& StringUtils.isNotBlank(memberInfoRedis.getUserId())
&& StringUtils.isNotBlank(memberInfoRedis.getGroupId())){
redisUtils.set(RedisKeys.getResiGroupMemberInfoKey(memberInfoRedis.getGroupId(),memberInfoRedis.getUserId()),memberInfoRedis);
}
}
public String get(String id){

Loading…
Cancel
Save