Browse Source

Merge branch 'dev0.2' into dev

# Conflicts:
#	epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
dev_shibei_match
wxz 5 years ago
parent
commit
72da451218
  1. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java
  2. 30
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ResiGroupMemberInfoRedisResultDTO.java
  3. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  4. 7
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java
  5. 14
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  6. 46
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/redis/ResiGroupMemberRedis.java
  7. 41
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  8. 134
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  9. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
  10. 4
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserResiInfoListFormDTO.java
  11. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

4
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java

@ -98,4 +98,8 @@ public class ResiGroupMemberDTO implements Serializable {
*/
private String updatedBy;
/**
* 客户Id
* */
private String customerId;
}

30
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ResiGroupMemberInfoRedisResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.resi.group.dto.member.result;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
/**
* @Description
* @ClassName ResiGroupMemberInfoRedisResultDTO
* @Author wangc
* @date 2020.04.14 00:21
*/
@Data
public class ResiGroupMemberInfoRedisResultDTO implements Serializable {
private static final long serialVersionUID = -1L;
/**
* 该组内所有成员的key
*
* */
private Set<String> memberKeys;
/**
* 该组内所有成员的信息
* */
private Map<String,ResiGroupMemberInfoRedisDTO> memberMap;
}

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java

@ -21,7 +21,7 @@ import java.util.List;
* @Author yinzuomei
* @Date 2020/3/16 14:48
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class,url="http://localhost:8087")
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class)
public interface EpmetUserFeignClient {
/**

7
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java

@ -51,7 +51,12 @@ public class ResiGroupRedis {
}
}
public String get(String id){
public ResiGroupInfoRedisDTO get(String groupId){
if(StringUtils.isNotBlank(groupId)){
ResiGroupInfoRedisDTO groupCache = (ResiGroupInfoRedisDTO)
redisUtils.get(RedisKeys.getResiGroupInfoKey(groupId));
return groupCache;
}
return null;
}

14
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -474,7 +474,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
userRoleFormDTO.setApp("resi");
userRoleFormDTO.setCustomerId(resiGroupDTO.getCustomerId());
userRoleFormDTO.setUserId(agreeApplyGroupFormDTO.getUserId());
//userRoleFormDTO.setGridId()
//userRoleFormDTO.setGridId
//epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO);
}
@ -569,16 +569,16 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
ConvertUtils.sourceToTarget(statisticalDTO,ResiGroupStatisticalInfoRedisDTO.class);
statisticalObjct.setTotalEarnestMembers(statisticalDTO.getTotalEarnestMemebers());
statisticalObjct.setTotalNormalMembers(statisticalDTO.getTotalNormalMemebers());
ResiGroupInfoRedisDTO sorceObject =
ResiGroupInfoRedisDTO targetObject =
ConvertUtils.sourceToTarget(groupDTO,ResiGroupInfoRedisDTO.class);
sorceObject.setGroupId(groupDTO.getId());
sorceObject.setGroupState(groupDTO.getState());
targetObject.setGroupId(groupDTO.getId());
targetObject.setGroupState(groupDTO.getState());
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN);
if(null!=groupDTO.getLatestTopicPublishDate()){
sorceObject.setLatestTopicPublishDate(format.format(groupDTO.getLatestTopicPublishDate()));
targetObject.setLatestTopicPublishDate(format.format(groupDTO.getLatestTopicPublishDate()));
}
sorceObject.setGroupStatisticalInfo(statisticalObjct);
return sorceObject;
targetObject.setGroupStatisticalInfo(statisticalObjct);
return targetObject;
}
}

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

@ -17,13 +17,20 @@
package com.epmet.modules.member.redis;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import com.epmet.resi.group.dto.member.result.ResiGroupMemberInfoRedisResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
/**
* 群组成员关系表
*
@ -54,8 +61,45 @@ public class ResiGroupMemberRedis {
}
}
public String get(String id){
/**
* @Description 得到一个指定组内成员信息,如果redis中没有则返回null
* @Param groupId
* @Param userId
* @return ResiGroupMemberInfoRedisDTO.class
* @Author wangc
* @Date 2020.04.13 23:36
**/
public ResiGroupMemberInfoRedisDTO get(String groupId ,String userId){
Map<String, Object> map = redisUtils.hGetAll(RedisKeys.getResiGroupMemberInfoKey(groupId,userId));
if (MapUtil.isEmpty(map)) {
return null;
}
//map to bean
ResiGroupMemberInfoRedisDTO member = BeanUtil.mapToBean(map, ResiGroupMemberInfoRedisDTO.class, true);
return member;
}
/**
* @Description 得到一个组中所有成员的信息
* @Param groupId
* @return
* @Author wangc
* @Date 2020.04.14 00:13
**/
public ResiGroupMemberInfoRedisResultDTO getKeys(String groupId){
Set<String> groupMemberKeys =
redisUtils.keys(RedisKeys.getResiGroupMemberInfoKey(groupId,"*"));
Map<String,ResiGroupMemberInfoRedisDTO> memberMap = new HashMap<>(NumConstant.ONE_HUNDRED);
for(String key : groupMemberKeys){
ResiGroupMemberInfoRedisDTO member = (ResiGroupMemberInfoRedisDTO)redisUtils.get(key);
if(null != member){
memberMap.put(member.getUserId(),member);
}
}
ResiGroupMemberInfoRedisResultDTO result = new ResiGroupMemberInfoRedisResultDTO();
result.setMemberKeys(groupMemberKeys);
result.setMemberMap(memberMap);
return result;
}
}

41
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -29,8 +29,8 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.UserMessageDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.MessageFeignClient;
@ -39,10 +39,12 @@ import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.exception.ModuleErrorCode;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.group.redis.ResiGroupRedis;
import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.modules.group.service.ResiGroupStatisticalService;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.member.redis.ResiGroupMemberRedis;
import com.epmet.modules.member.service.GroupMemeberOperationService;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.service.ResiTopicService;
@ -54,6 +56,7 @@ import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
@ -99,6 +102,12 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
@Autowired
private ResiTopicService resiTopicService;
@Autowired
private ResiGroupMemberRedis resiGroupMemberRedis;
@Autowired
private ResiGroupRedis resiGroupRedis;
@Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
IPage<ResiGroupMemberEntity> page = baseDao.selectPage(
@ -334,6 +343,12 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
baseDao.updateResiGroupStatistical(groupMemeberOperationDTO.getGroupId(), userRoleDTO);
//6、给用户发送消息
this.sendUserApprovedMessage(resiGroupMemberDTO);
//7、增加成员缓存信息
resiGroupDTO.setCustomerId(resiGroupDTO.getCustomerId());
ResiGroupMemberInfoRedisDTO memberRedis = transferToMemberInfoRedis(resiGroupMemberDTO);
resiGroupMemberRedis.set(memberRedis);
//8、修改群组缓存信息
return new Result();
}
@ -515,4 +530,28 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
return result;
}
/**
* @Description 将ResiGroupMemberDTO转换成ResiGroupMemberInfoRedisDTO
* @Param
* @return
* @Author wangc
* @Date 2020.04.13 21:48
**/
private ResiGroupMemberInfoRedisDTO transferToMemberInfoRedis(ResiGroupMemberDTO memberDTO){
ResiGroupMemberInfoRedisDTO targetObject =
ConvertUtils.sourceToTarget(memberDTO,ResiGroupMemberInfoRedisDTO.class);
targetObject.setMemberStatus(memberDTO.getStatus());
targetObject.setUserId(memberDTO.getId());
UserResiInfoFormDTO resiInfoParam = new UserResiInfoFormDTO();
resiInfoParam.setCustomerId(memberDTO.getCustomerId());
resiInfoParam.setUserId(memberDTO.getCustomerUserId());
Result<UserResiInfoResultDTO> result = epmetUserFeignClient.getUserResiInfoDTO(resiInfoParam);
if(result.success() && null != result.getData()){
targetObject.setUserHeadPhoto(result.getData().getHeadPhoto());
targetObject.setUserShowName(result.getData().getShowName());
}
return targetObject;
}
}

134
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -25,7 +25,7 @@ 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.page.PageData;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
@ -40,9 +40,9 @@ import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.group.entity.ResiGroupStatisticalEntity;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.member.redis.ResiGroupMemberRedis;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.dao.ResiTopicAttachmentDao;
import com.epmet.modules.topic.dao.ResiTopicCommentDao;
import com.epmet.modules.topic.dao.ResiTopicDao;
import com.epmet.modules.topic.dao.ResiTopicOperationDao;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
@ -54,7 +54,9 @@ import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import com.epmet.resi.group.dto.member.result.ResiGroupMemberInfoRedisResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
@ -70,6 +72,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 话题信息表
@ -89,9 +92,6 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
private ResiTopicOperationDao resiTopicOperationDao;
@Autowired
private ResiTopicCommentDao resiTopicCommentDao;
@Autowired
EpmetUserFeignClient epmetUserFeignClient;
@ -105,7 +105,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
ResiGroupStatisticalDao resiGroupStatisticalDao;
@Autowired
RedisUtils redisUtil;
private ResiGroupMemberRedis resiGroupMemberRedis;
@Autowired
private ResiTopicOperationService resiTopicOperationService;
@ -281,8 +281,8 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
if(null != lastestTenTopics && lastestTenTopics.size() > 0) {
//2.遍历存储用户信息
List<String> userIdList = new ArrayList<>();
//2.遍历存储用户信息 从数据库中查找
/*List<String> userIdList = new ArrayList<>();
for (ResiTopicInfoResultDTO topic : lastestTenTopics) {
userIdList.add(topic.getUserId());
}
@ -290,6 +290,10 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
formDTO.setUserIdList(userIdList);
Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult = epmetUserFeignClient.getUserResiInfoList(formDTO);
setUserInfo(userResiInfoDTOListResult, lastestTenTopics);
*/
//2.2从缓存中查找用户信息
setCacheUserInfo(groupId,lastestTenTopics);
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(lastestTenTopics);
}
@ -321,6 +325,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
if (null != pastTopics && pastTopics.size() > 0) {
/*
//2.遍历用户信息
List<String> userIdList = new ArrayList<>();
for (ResiTopicInfoResultDTO topic : pastTopics) {
@ -330,6 +335,11 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
formDTO.setUserIdList(userIdList);
Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult = epmetUserFeignClient.getUserResiInfoList(formDTO);
setUserInfo(userResiInfoDTOListResult, pastTopics);
*/
//2.2 在缓存中拉取用户信息
setCacheUserInfo(topicPageFormDTO.getGroupId(), pastTopics);
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(pastTopics);
}
@ -513,8 +523,18 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
resultDTO.setTopicImgs(attachmentUrls);
//3.拿取用户信息
ResiTopicDTO topic = get(topicId);
ResiGroupEntity group = resiGroupDao.selectById(topic.getGroupId());
ResiGroupMemberInfoRedisDTO memberRedis =
resiGroupMemberRedis.get(group.getId(),topic.getCreatedBy());
if(null != memberRedis && StringUtils.isNotBlank(memberRedis.getUserId())){
resultDTO.setReleaseUserName(memberRedis.getUserShowName());
resultDTO.setReleaseUserHeadPhoto(memberRedis.getUserHeadPhoto());
}else{
logger.warn(ModuleConstant.GROUP_MEMBER_NOT_EXISTS_IN_CACHE);
UserResiInfoFormDTO userParam = new UserResiInfoFormDTO();
userParam.setUserId(topic.getCreatedBy());
userParam.setCustomerId(group.getCustomerId());
@ -523,11 +543,30 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
if(null != userInfo.getData()){
resultDTO.setReleaseUserName(userInfo.getData().getShowName());
resultDTO.setReleaseUserHeadPhoto(userInfo.getData().getHeadPhoto());
ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO();
ResiGroupMemberDTO memberMySql = resiGroupMemberDao.selectGroupMemberInfo(group.getId(), userInfo.getData().getUserId());
memberRedisDTO.setUserId(userInfo.getData().getUserId());
memberRedisDTO.setUserHeadPhoto(userInfo.getData().getHeadPhoto());
memberRedisDTO.setUserShowName(userInfo.getData().getShowName());
memberRedisDTO.setEnterGroupType(memberMySql.getEnterGroupType());
memberRedisDTO.setGroupLeaderFlag(memberMySql.getGroupLeaderFlag());
memberRedisDTO.setMemberStatus(memberMySql.getStatus());
memberRedisDTO.setGroupId(group.getId());
resiGroupMemberRedis.set(memberRedisDTO);
}
}else{
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
}
}
@ -556,14 +595,16 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
//2.遍历用户信息
if (null != hiddenTopics && hiddenTopics.size() > 0) {
List<String> userIdList = new ArrayList<>();
/*List<String> userIdList = new ArrayList<>();
for (ResiTopicInfoResultDTO topic : hiddenTopics) {
userIdList.add(topic.getUserId());
}
UserResiInfoListFormDTO formDTO = new UserResiInfoListFormDTO();
formDTO.setUserIdList(userIdList);
Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult = epmetUserFeignClient.getUserResiInfoList(formDTO);
setUserInfo(userResiInfoDTOListResult, hiddenTopics);
setUserInfo(userResiInfoDTOListResult, hiddenTopics);*/
setCacheUserInfo(topicPageFormDTO.getGroupId(), hiddenTopics);
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(hiddenTopics);
@ -636,7 +677,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
* @Author wangc
* @Date 2020.04.10 17:47
**/
public void setUserInfo(Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult,List<ResiTopicInfoResultDTO> topics){
private void setUserInfo(Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult,List<ResiTopicInfoResultDTO> topics){
if(userResiInfoDTOListResult.success() && null != userResiInfoDTOListResult.getData()){
if(userResiInfoDTOListResult.getData().size() > 0){
for(UserResiInfoResultDTO resiUser : userResiInfoDTOListResult.getData()){
@ -691,4 +732,75 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
resiTopicOperationService.insertBatch(topicOperationList);
return result;
}
/**
* @Description 将缓存中的用户信息存放到话题列表当中
* @Param groupId
* @Param List<ResiTopicInfoResultDTO>
* @return void
* @Author wangc
* @Date 2020.04.14 10:32
**/
private void setCacheUserInfo(String groupId ,List<ResiTopicInfoResultDTO> topics) {
//1.初始化存储缺失缓存信息的组员Id的容器,默认去重
Set<String> usersNotInCache = new HashSet<>();
//2.读取用户缓存信息
ResiGroupMemberInfoRedisResultDTO memberRedis = resiGroupMemberRedis.getKeys(groupId);
if (null != memberRedis && null != memberRedis.getMemberKeys() && null != memberRedis.getMemberMap()) {
String keyPrefix = RedisKeys.getResiGroupMemberInfoKey(groupId, "");
for (ResiTopicInfoResultDTO topic : topics) {
//缓存中有该用户的key
if (memberRedis.getMemberKeys().contains(keyPrefix.concat(topic.getUserId()))) {
ResiGroupMemberInfoRedisDTO memberInfoCache = memberRedis.getMemberMap().get(topic.getUserId());
if (null != memberInfoCache) {
//缓存中有该用户信息
topic.setReleaseUserName(memberInfoCache.getUserShowName());
topic.setReleaseUserHeadPhoto(memberInfoCache.getUserHeadPhoto());
} else {
//缓存中没有该用户信息
usersNotInCache.add(topic.getUserId());
}
} else {
//缓存中没有该用户的key
usersNotInCache.add(topic.getUserId());
}
}
}
//3.如果存在缺失缓存的组员,去数据库中查找,并存入缓存
if (usersNotInCache.size() > 0) {
Map<String, List<ResiTopicInfoResultDTO>> topicMap
= topics.stream().collect(Collectors.groupingBy(ResiTopicInfoResultDTO::getUserId));
List<String> userIds = new ArrayList<>(usersNotInCache);
Result<List<UserResiInfoResultDTO>> result =
epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(userIds));
if (result.success() && null != result.getData() && result.getData().size() > 0) {
for (UserResiInfoResultDTO user : result.getData()) {
ResiTopicInfoResultDTO topic =
topicMap.get(user.getUserId()).get(0);
topic.setReleaseUserHeadPhoto(user.getHeadPhoto());
topic.setReleaseUserName(user.getShowName());
//存入缓存
ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO();
ResiGroupMemberDTO memberMySql = resiGroupMemberDao.selectGroupMemberInfo(groupId, user.getUserId());
memberRedisDTO.setMemberStatus(memberMySql.getStatus());
memberRedisDTO.setUserId(user.getUserId());
memberRedisDTO.setUserShowName(user.getShowName());
memberRedisDTO.setEnterGroupType(memberMySql.getEnterGroupType());
memberRedisDTO.setGroupLeaderFlag(memberMySql.getGroupLeaderFlag());
memberRedisDTO.setUserHeadPhoto(user.getHeadPhoto());
memberRedisDTO.setGroupId(groupId);
resiGroupMemberRedis.set(memberRedisDTO);
}
} else {
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
}
}
}
}

5
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -158,4 +158,9 @@ public interface ModuleConstant extends Constant {
String DELETE_FAILED = "组成员删除失败";
String SLIENT_FAILED = "组成员禁言失败";
/**
* 缺失组成员缓存信息
* */
String GROUP_MEMBER_NOT_EXISTS_IN_CACHE = "缺失组成员缓存信息";
}

4
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserResiInfoListFormDTO.java

@ -1,6 +1,8 @@
package com.epmet.dto.form;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@ -11,6 +13,8 @@ import java.util.List;
* @Date 2020/4/7 18:20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserResiInfoListFormDTO implements Serializable {
private static final long serialVersionUID = -4454561042197166135L;

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

@ -19,17 +19,14 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.FieldConstant;
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.Result;
import com.epmet.constant.UserConstant;
import com.epmet.constant.UserResiRegisterConstant;
import com.epmet.constant.UserRoleConstant;
import com.epmet.dao.UserResiInfoDao;
import com.epmet.dto.UserResiInfoDTO;
@ -39,7 +36,6 @@ import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.entity.UserResiInfoEntity;
import com.epmet.entity.UserRoleEntity;
import com.epmet.feign.MessageFeignClient;
import com.epmet.redis.UserResiInfoRedis;
import com.epmet.service.RegisterRelationService;

Loading…
Cancel
Save