Browse Source

推荐小组-获取组长信息接口优化 直接从缓存取用户数据

dev_shibei_match
jianjun 4 years ago
parent
commit
e209a6b90d
  1. 30
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 6
      epmet-module/resi-group/resi-group-server/pom.xml
  3. 43
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  4. 9
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
  5. 38
      epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserRedisKeys.java
  6. 1
      epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java
  7. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java

30
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -9,6 +9,7 @@
package com.epmet.commons.tools.redis; package com.epmet.commons.tools.redis;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import org.apache.commons.lang3.StringUtils;
/** /**
* @author Mark sunlightcs@gmail.com * @author Mark sunlightcs@gmail.com
@ -355,19 +356,34 @@ public class RedisKeys {
} }
/** /**
* @return
* @Description 客户的ApiService
* @author wxz
* @date 2021.01.20 16:56
*/
public static String getCustomerApiServiceKey(String customerId) {
return rootPrefix.concat("customer:thirdplat:apiservice:").concat(customerId);
}
/**
* @return epmet:resi:user:userId
* @Description 用户缓存Key * @Description 用户缓存Key
* @Param 用户Id
* @Author wangc
* @Date 2020.04.13 11:27
**/ **/
public static String getResiUserKey(String userId){ public static String getResiUserKey(String userId) {
return rootPrefix.concat("resi:user:").concat(userId); return rootPrefix.concat("resi:user:").concat(userId);
} }
/** /**
* @Description 客户的ApiService * @param userId
* @return * @return epmet:badge:user:[customerId]:[userId]
* @author wxz * @Description 用户勋章缓存 epmet:badge:user:[customerId]:[userId]
* @date 2021.01.20 16:56 * @author wangc
* @date 2020.11.05 13:34
*/ */
public static String getCustomerApiServiceKey(String customerId) { public static String getResiUserBadgeKey(String customerId, String userId) {
return rootPrefix.concat("customer:thirdplat:apiservice:").concat(customerId); return rootPrefix.concat("badge:user:").concat(customerId).concat(":").concat(StringUtils.isBlank(userId) ? "*" : userId);
} }
} }

6
epmet-module/resi-group/resi-group-server/pom.xml

@ -106,6 +106,12 @@
<version>2.0.0</version> <version>2.0.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-user-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

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

@ -17,6 +17,7 @@
package com.epmet.modules.group.service.impl; package com.epmet.modules.group.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -25,6 +26,8 @@ import com.epmet.commons.tools.constant.*;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.scan.param.ImgScanParamDTO; import com.epmet.commons.tools.scan.param.ImgScanParamDTO;
import com.epmet.commons.tools.scan.param.ImgTaskDTO; import com.epmet.commons.tools.scan.param.ImgTaskDTO;
import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextScanParamDTO;
@ -34,6 +37,7 @@ import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.utils.*;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetMessageOpenFeignClient;
@ -156,6 +160,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
@Autowired @Autowired
private ResiGroupCodeService resiGroupCodeService; private ResiGroupCodeService resiGroupCodeService;
@Autowired
private RedisUtils redisUtils;
@Override @Override
public PageData<ResiGroupDTO> page(Map<String, Object> params) { public PageData<ResiGroupDTO> page(Map<String, Object> params) {
@ -1000,11 +1006,40 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
//显示当前网格内所有当前用户还未加入的组,以组的人数由高到低排序;如果人数相同,以话题数由多到少排序 //显示当前网格内所有当前用户还未加入的组,以组的人数由高到低排序;如果人数相同,以话题数由多到少排序
List<RecommendedListResultDTO> recommendGroupList = baseDao.selectListRecommendList(formDTO); List<RecommendedListResultDTO> recommendGroupList = baseDao.selectListRecommendList(formDTO);
recommendGroupList.forEach(dto -> { recommendGroupList.forEach(dto -> {
Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(dto.getGroupId()); ResiGroupMemberDTO groupMemberDTO = baseDao.selectGroupLeader(dto.getGroupId());
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { if (groupMemberDTO == null) {
dto.setLeaderName(groupLeaderUserInfo.getData().getShowName()); logger.error("recommendedList 组长信息不存在,groupId:{}", dto.getGroupId());
return;
}
//获取居民缓存key
Map<String, Object> map = redisUtils.hGetAll(RedisKeys.getResiUserKey(groupMemberDTO.getCustomerUserId()));
UserBaseInfoResultDTO userInfo = null;
if (null != map && !map.isEmpty()) {
//缓存中有数据,直接返回
userInfo = BeanUtil.mapToBean(map, UserBaseInfoResultDTO.class, true);
}
if (userInfo == null) {
logger.error("recommendedList 用户基础信息不存在,customerUserId:{}", groupMemberDTO.getCustomerUserId());
UserResiInfoFormDTO resiUserInfoFormDTO = new UserResiInfoFormDTO();
resiUserInfoFormDTO.setUserId(groupMemberDTO.getCustomerUserId());
Result<UserResiInfoResultDTO> groupLeaderUserInfo = epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO);
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
dto.setLeaderName(groupLeaderUserInfo.getData().getShowName());
} else {
logger.error("组长注册信息查询失败,msg:{},groupId:{}", groupLeaderUserInfo.getMsg(), dto.getGroupId());
}
} else { } else {
logger.warn("组长注册信息查询失败,msg:{},groupId:{}", groupLeaderUserInfo.getMsg(), dto.getGroupId()); String gender = null;
if (NumConstant.ONE_STR.equals(userInfo.getGender())) {
gender = "先生";
} else if (NumConstant.TWO_STR.equals(userInfo.getGender())) {
gender = "女士";
} else {
gender = "先生/女士";
}
String leaderName = userInfo.getStreet().concat(StrConstant.HYPHEN).concat(userInfo.getSurname()).concat(gender);
dto.setLeaderName(leaderName);
} }
}); });
return recommendGroupList; return recommendGroupList;

9
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml

@ -165,7 +165,14 @@
<!-- 根据组信息查询组张信息 --> <!-- 根据组信息查询组张信息 -->
<select id="selectGroupLeader" parameterType="java.lang.String" resultType="com.epmet.resi.group.dto.member.ResiGroupMemberDTO"> <select id="selectGroupLeader" parameterType="java.lang.String" resultType="com.epmet.resi.group.dto.member.ResiGroupMemberDTO">
SELECT SELECT
* rgm.ID,
rgm.CUSTOMER_USER_ID,
rgm.RESI_GROUP_ID,
rgm.GROUP_LEADER_FLAG,
rgm.ENTER_GROUP_TYPE,
rgm.GROUP_INVITATION_ID,
rgm.GROUP_LEADER_FLAG,
rgm.STATUS
FROM FROM
resi_group_member rgm resi_group_member rgm
WHERE WHERE

38
epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserRedisKeys.java

@ -1,38 +0,0 @@
package com.epmet.constant;
import org.apache.commons.lang3.StringUtils;
/**
* @Description
* @ClassName UserRedisKeys
* @Auth wangc
* @Date 2020-07-22 17:16
*/
public class UserRedisKeys {
/**
* 党群e事通redis前缀
*/
private static String rootPrefix = "epmet:";
/**
* @Description 用户缓存Key
* @Param 用户Id
* @return epmet:resi:user:userId
* @Author wangc
* @Date 2020.04.13 11:27
**/
public static String getResiUserKey(String userId){
return rootPrefix.concat("resi:user:").concat(userId);
}
/**
* @Description 用户勋章缓存 epmet:badge:user:[customerId]:[userId]
* @param userId
* @return epmet:badge:user:[customerId]:[userId]
* @author wangc
* @date 2020.11.05 13:34
*/
public static String getResiUserBadgeKey(String customerId,String userId){
return rootPrefix.concat("badge:user:").concat(customerId).concat(":").concat( StringUtils.isBlank(userId) ? "*" : userId );}
}

1
epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java

@ -7,7 +7,6 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.BadgeConstant; import com.epmet.constant.BadgeConstant;
import com.epmet.constant.UserRedisKeys;
import com.epmet.dao.BadgeDao; import com.epmet.dao.BadgeDao;
import com.epmet.dto.form.UserBadgeUnitFormDTO; import com.epmet.dto.form.UserBadgeUnitFormDTO;
import com.epmet.dto.result.UserBadgeInfoResultDTO; import com.epmet.dto.result.UserBadgeInfoResultDTO;

3
epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java

@ -22,7 +22,6 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserRedisKeys;
import com.epmet.dao.GridLatestDao; import com.epmet.dao.GridLatestDao;
import com.epmet.dao.RegisterRelationDao; import com.epmet.dao.RegisterRelationDao;
import com.epmet.dao.UserBaseInfoDao; import com.epmet.dao.UserBaseInfoDao;
@ -389,4 +388,4 @@ public class UserBaseInfoRedis {
} }
} }
} }
} }

Loading…
Cancel
Save