|
@@ -19,7 +19,9 @@ import com.winhc.repal.model.dto.AddGroupMemberDTO;
|
|
|
import com.winhc.repal.model.dto.UpdateMemberRoleDTO;
|
|
|
import com.winhc.repal.model.vo.GroupRoleMemberVO;
|
|
|
import com.winhc.repal.model.vo.MemberInfoVO;
|
|
|
+import com.winhc.repal.model.vo.UserAvatarInfoVO;
|
|
|
import com.winhc.repal.repository.RepalGroupMemberMapper;
|
|
|
+import com.winhc.repal.repository.UserInfoMapper;
|
|
|
import com.winhc.repal.service.*;
|
|
|
import com.winhc.repal.util.UserContextUtil;
|
|
|
import org.slf4j.Logger;
|
|
@@ -29,6 +31,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -60,6 +63,9 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
|
|
|
private UserInfoService userInfoService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private UserInfoMapper userInfoMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private RepalResponsiblePersonService repalResponsiblePersonService;
|
|
|
|
|
|
@Autowired
|
|
@@ -126,26 +132,28 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
List<RepalGroupRole> roleList = repalGroupRoleService.getRoleByIdList(memberList.stream().map(RepalGroupMember::getRoleId).distinct().collect(Collectors.toList()));
|
|
|
- List<UserInfo> userInfoList = userInfoService.list(Wrappers.lambdaQuery(UserInfo.class).in(UserInfo::getUserId,
|
|
|
- memberList.stream().map(RepalGroupMember::getUserId).collect(Collectors.toList())));
|
|
|
+ List<UserAvatarInfoVO> avatarInfo = userInfoMapper.getUserAvatarInfo(memberList.stream().map(RepalGroupMember::getUserId).collect(Collectors.toList()));
|
|
|
+ Map<Long, UserAvatarInfoVO> infoMap = new HashMap<>();
|
|
|
+ if (CollUtil.isNotEmpty(avatarInfo)) {
|
|
|
+ infoMap = avatarInfo.stream().collect(Collectors.toMap(UserAvatarInfoVO::getUserId, Function.identity()));
|
|
|
+ }
|
|
|
Map<Long, String> roleNameMap = roleList.stream().collect(Collectors.toMap(RepalGroupRole::getId, RepalGroupRole::getRoleName));
|
|
|
Map<Long, List<RepalGroupMember>> memberMap = memberList.stream().collect(Collectors.groupingBy(RepalGroupMember::getRoleId, Collectors.toList()));
|
|
|
- Map<Long, String> avatarMap = new HashMap<>();
|
|
|
- if (CollUtil.isNotEmpty(userInfoList)) {
|
|
|
- avatarMap = userInfoList.stream().collect(HashMap::new, (k, v) -> k.put(v.getUserId(), v.getAvatar()), HashMap::putAll);
|
|
|
- }
|
|
|
List<GroupRoleMemberVO> resultList = new ArrayList<>();
|
|
|
for (Map.Entry<Long, List<RepalGroupMember>> entry : memberMap.entrySet()) {
|
|
|
GroupRoleMemberVO vo = new GroupRoleMemberVO();
|
|
|
vo.setRoleId(entry.getKey());
|
|
|
vo.setRoleName(roleNameMap.get(entry.getKey()));
|
|
|
- Map<Long, String> finalAvatarMap = avatarMap;
|
|
|
+ Map<Long, UserAvatarInfoVO> finalAvatarMap = infoMap;
|
|
|
vo.setRoleMemberList(entry.getValue().stream().map(t -> {
|
|
|
GroupRoleMemberVO.RoleMemberVO roleMemberVO = new GroupRoleMemberVO.RoleMemberVO();
|
|
|
roleMemberVO.setMemberId(t.getId());
|
|
|
roleMemberVO.setMemberName(t.getMemberUserName());
|
|
|
roleMemberVO.setUserId(t.getUserId());
|
|
|
- roleMemberVO.setAvatar(finalAvatarMap.get(t.getUserId()));
|
|
|
+ if (finalAvatarMap.containsKey(t.getUserId())) {
|
|
|
+ roleMemberVO.setAvatar(finalAvatarMap.get(t.getUserId()).getAvatar());
|
|
|
+ roleMemberVO.setOpenId(finalAvatarMap.get(t.getUserId()).getOpenId());
|
|
|
+ }
|
|
|
return roleMemberVO;
|
|
|
}).sorted(Comparator.comparing(GroupRoleMemberVO.RoleMemberVO::getMemberId).reversed()).collect(Collectors.toList()));
|
|
|
resultList.add(vo);
|
|
@@ -264,14 +272,7 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
|
|
|
@Override
|
|
|
public MemberInfoVO getMemberInfo() {
|
|
|
long userId = UserContextUtil.getUser().getUserId();
|
|
|
- ThirdPartyAccount account = thirdPartyAccountService.getOne(Wrappers.lambdaQuery(ThirdPartyAccount.class)
|
|
|
- .eq(ThirdPartyAccount::getUserId, userId)
|
|
|
- .eq(ThirdPartyAccount::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
|
|
|
- if (Objects.isNull(account)) {
|
|
|
- throw new CommonException(CodeMsg.FAILED, "个人信息错误");
|
|
|
- }
|
|
|
MemberInfoVO info = repalGroupMemberMapper.getMemberInfo(userId);
|
|
|
- info.setOpenId(account.getOpenId());
|
|
|
info.setMemberCount(this.count(Wrappers.lambdaQuery(RepalGroupMember.class)
|
|
|
.eq(RepalGroupMember::getRepalGroupId, info.getRepalGroupId())
|
|
|
.eq(RepalGroupMember::getDeleted, DeletedStatusEnum.NORMAL.getCode())));
|