diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java index e0a03fe667..6609bbe34c 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java @@ -41,10 +41,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -147,12 +145,18 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl groupPointRanking(GroupPointFormDTO formDTO) { - List list = new ArrayList<>(); + List list; QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("BIZ_TYPE", "group") .eq("GRID_ID", formDTO.getGridId()) @@ -174,24 +178,29 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl totalDetailList = baseDao.selectList(wrapper); Result> groupList = resiGroupOpenFeignClient.getGroupListByGrid(formDTO.getGridId()); + list = groupList.getData().stream().map(item -> { + GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO(); + dto.setGroupId(item.getId()); + dto.setGroupName(item.getGroupName()); + dto.setPoint(NumConstant.ZERO_STR); + if (formDTO.getGroupId().equals(item.getId())) { + dto.setIsMine(NumConstant.ONE_STR); + } else { + dto.setIsMine(NumConstant.ZERO_STR); + } + return dto; + }).collect(Collectors.toList()); + list.forEach(item -> totalDetailList.stream().filter(detail -> item.getGroupId().equals(detail.getObjectId())).forEach(total -> { + item.setPoint(total.getTotalPoint().toString()); + + })); list = - totalDetailList.stream().flatMap(detail -> groupList.getData().stream().filter(item -> item.getId().equals(detail.getObjectId())).map(group -> { - GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO(); - dto.setGroupId(group.getId()); - dto.setGroupName(group.getGroupName()); - dto.setPoint(detail.getTotalPoint().toString()); - if (formDTO.getGroupId().equals(group.getId())) { - dto.setIsMine(NumConstant.ONE_STR); - } else { - dto.setIsMine(NumConstant.ZERO_STR); - } - return dto; - })).collect(Collectors.toList()); - int i = 1; - for (GroupPointRankingResultDTO dto : list) { - dto.setRanking(String.valueOf(i)); - i++; - } + list.stream().sorted(Comparator.comparing(GroupPointRankingResultDTO :: getPoint, Comparator.comparingInt(Integer::parseInt)).reversed().thenComparing(GroupPointRankingResultDTO::getGroupName)) + .collect(Collectors.toList()); + AtomicInteger i = new AtomicInteger(1); + list.forEach(dto -> { + dto.setRanking(String.valueOf(i.getAndIncrement())); + }); return list; } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java index e6fc360f26..1904a5bf29 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java @@ -35,6 +35,7 @@ import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.entity.BizPointUserTotalDetailEntity; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.resi.group.dto.group.ResiGroupDTO; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.service.BizPointUserTotalDetailService; import org.apache.commons.lang3.StringUtils; @@ -42,10 +43,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.text.Collator; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -176,30 +176,30 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl userTotalList = baseDao.selectList(wrapper); - int i = 1; - list = userTotalList.stream().map(item -> { + AtomicInteger i = new AtomicInteger(1); + + //获取小组信息 + Result group = resiGroupOpenFeignClient.getGroupDetail(formDTO.getGroupId()); + if (!group.success() || null == group.getData()) { + throw new RenException(group.getCode(), group.getMsg()); + } + List memberList = group.getData().getMemberList(); + list = memberList.stream().map(item -> { PointRankingResultDTO dto = new PointRankingResultDTO(); - dto.setUserId(item.getUserId()); - dto.setPoint(item.getTotalPoint().toString()); - if (tokenDto.getUserId().equals(item.getUserId())) { + dto.setUserId(item.getCustomerUserId()); + dto.setPoint(NumConstant.ZERO_STR); + if (tokenDto.getUserId().equals(item.getCustomerUserId())) { dto.setIsMine(NumConstant.ONE_STR); } else { dto.setIsMine(NumConstant.ZERO_STR); } return dto; }).collect(Collectors.toList()); - for (PointRankingResultDTO dto : list) { - dto.setRanking(String.valueOf(i)); - i++; - } - - //获取小组信息 - Result group = resiGroupOpenFeignClient.getGroupDetail(formDTO.getGroupId()); - if (!group.success() || null == group.getData()) { - throw new RenException(group.getCode(), group.getMsg()); - } + list.forEach(item -> userTotalList.stream().filter(user -> user.getUserId().equals(item.getUserId())).forEach(total -> { + item.setPoint(total.getTotalPoint().toString()); + })); //获取用户信息 - List userIds = userTotalList.stream().map(BizPointUserTotalDetailEntity :: getUserId).collect(Collectors.toList()); + List userIds = memberList.stream().map(ResiGroupMemberDTO :: getCustomerUserId).collect(Collectors.toList()); Result> userInfoListResult = epmetUserOpenFeignClient.queryUserBaseInfo(userIds); if (!userInfoListResult.success() || null == userInfoListResult.getData()) { throw new RenException(userInfoListResult.getCode(), userInfoListResult.getMsg()); @@ -215,6 +215,10 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl item.setRanking(String.valueOf(i.getAndIncrement()))); return list; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java index 3153903240..7994bf7d8d 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java @@ -17,10 +17,12 @@ package com.epmet.resi.group.dto.group; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -125,4 +127,6 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审 */ private Date updatedTime; + private List memberList; + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index c168a3453d..30c0282b40 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java @@ -522,7 +522,7 @@ public class ResiGroupController { */ @PostMapping("groupDetail/{groupId}") public Result getGroupDetail(@PathVariable String groupId) { - ResiGroupDTO groupDTO = resiGroupService.get(groupId); + ResiGroupDTO groupDTO = resiGroupService.getGroupInfoAndGroupMember(groupId); return new Result().ok(groupDTO); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index 197fd98692..d4ed1861b0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java @@ -409,4 +409,13 @@ public interface ResiGroupService extends BaseService { * @return com.epmet.resi.group.dto.member.result.AchievementResultDTO */ AchievementResultDTO achievement(TokenDto tokenDto); + + /** + * 获取小组信息及小组成员 + * @author zhaoqifeng + * @date 2021/4/23 14:56 + * @param groupId + * @return com.epmet.resi.group.dto.group.ResiGroupDTO + */ + ResiGroupDTO getGroupInfoAndGroupMember(String groupId); } 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 a6641fcaa9..13aa64d7dc 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 @@ -57,6 +57,7 @@ import com.epmet.modules.group.redis.ResiGroupRedis; import com.epmet.modules.group.service.*; import com.epmet.modules.member.dao.GroupMemeberOperationDao; 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; @@ -1282,6 +1283,26 @@ public class ResiGroupServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); + wrapper.eq("RESI_GROUP_ID", groupId) + .eq("STATUS", GroupStateConstant.GROUP_APPROVED) + .eq("DEL_FLAG", NumConstant.ZERO_STR); + List memberList = resiGroupMemberDao.selectList(wrapper); + group.setMemberList(ConvertUtils.sourceToTarget(memberList, ResiGroupMemberDTO.class)); + return group; + } + @Override public GroupDetailResultDTO getGroupDetail(String groupId) { GroupDetailResultDTO groupDetail = new GroupDetailResultDTO();