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 098dd1c14d..faee6de155 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
@@ -9,6 +9,7 @@
 package com.epmet.commons.tools.redis;
 
 import com.epmet.commons.tools.constant.StrConstant;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * @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
+	 * @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);
 	}
 
 	/**
-	 * @Description 客户的ApiService
-	 * @return
-	 * @author wxz
-	 * @date 2021.01.20 16:56
+	 * @param userId
+	 * @return epmet:badge:user:[customerId]:[userId]
+	 * @Description 用户勋章缓存 epmet:badge:user:[customerId]:[userId]
+	 * @author wangc
+	 * @date 2020.11.05 13:34
 	 */
-	public static String getCustomerApiServiceKey(String customerId) {
-		return rootPrefix.concat("customer:thirdplat:apiservice:").concat(customerId);
+	public static String getResiUserBadgeKey(String customerId, String userId) {
+		return rootPrefix.concat("badge:user:").concat(customerId).concat(":").concat(StringUtils.isBlank(userId) ? "*" : userId);
 	}
 }
diff --git a/epmet-module/resi-group/resi-group-server/pom.xml b/epmet-module/resi-group/resi-group-server/pom.xml
index 7f86290566..e7432526b2 100644
--- a/epmet-module/resi-group/resi-group-server/pom.xml
+++ b/epmet-module/resi-group/resi-group-server/pom.xml
@@ -106,6 +106,12 @@
             2.0.0
             compile
         
+        
+            com.epmet
+            epmet-user-client
+            2.0.0
+            compile
+        
     
 
     
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 a4d13430a4..bfa6a16c94 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
@@ -17,6 +17,7 @@
 
 package com.epmet.modules.group.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.RenException;
 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.ImgTaskDTO;
 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.constant.ReadFlagConstant;
 import com.epmet.dto.form.*;
+import com.epmet.dto.result.UserBaseInfoResultDTO;
 import com.epmet.dto.result.UserResiInfoResultDTO;
 import com.epmet.dto.result.UserRoleResultDTO;
 import com.epmet.feign.EpmetMessageOpenFeignClient;
@@ -156,6 +160,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl page(Map params) {
@@ -1000,11 +1006,40 @@ public class ResiGroupServiceImpl extends BaseServiceImpl recommendGroupList = baseDao.selectListRecommendList(formDTO);
 		recommendGroupList.forEach(dto -> {
-			Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(dto.getGroupId());
-			if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
-				dto.setLeaderName(groupLeaderUserInfo.getData().getShowName());
+			ResiGroupMemberDTO groupMemberDTO = baseDao.selectGroupLeader(dto.getGroupId());
+			if (groupMemberDTO == null) {
+				logger.error("recommendedList 组长信息不存在,groupId:{}", dto.getGroupId());
+				return;
+			}
+			//获取居民缓存key
+			Map 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 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 {
-				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;
diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
index d21ed5ccdd..5ccd3cdb7d 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
+++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
@@ -165,7 +165,14 @@