Commit 777cc5ad by xiongjiangtao

Merge remote-tracking branch 'origin/feature-chat-activity' into feature-chat-activity

parents f7752d68 a7b39750
...@@ -151,32 +151,43 @@ public class GroupChatActivityRewardBaseDTO implements Serializable { ...@@ -151,32 +151,43 @@ public class GroupChatActivityRewardBaseDTO implements Serializable {
return list; return list;
} }
public static Map<Integer, List<GroupChatActivityRewardDTO>> reverseMapConvert(List<GroupChatActivityRewardBaseDTO> baseList) { public static Map<Integer, List<GroupChatActivityRewardDTO>> reverseMapConvert(List<GroupChatActivityRewardBaseDTO> baseDTOList) {
return baseList.stream() Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap = new HashMap<>();
.collect(Collectors.groupingBy(
GroupChatActivityRewardBaseDTO::getRewardInvite, // 按 rewardInvite 分组
Collectors.mapping(baseDTO -> { Map<Integer, Map<Long, GroupChatActivityRewardDTO>> groupedMap = new HashMap<>();
GroupChatActivityRewardDTO rewardDTO = new GroupChatActivityRewardDTO();
rewardDTO.setChatActivityId(baseDTO.getChatActivityId()); for (GroupChatActivityRewardBaseDTO baseDTO : baseDTOList) {
rewardDTO.setInviteNumber(baseDTO.getInviteNumber()); int rewardInvite = baseDTO.getRewardInvite();
rewardDTO.setInviteLevel(baseDTO.getInviteLevel()); Long chatActivityId = baseDTO.getChatActivityId();
rewardDTO.setLimitReward(baseDTO.getLimitReward());
rewardDTO.setRewardInvite(baseDTO.getRewardInvite()); groupedMap.putIfAbsent(rewardInvite, new HashMap<>());
Map<Long, GroupChatActivityRewardDTO> rewardDTOMap = groupedMap.get(rewardInvite);
GroupChatActivityRewardDTO rewardDTO = rewardDTOMap.computeIfAbsent(chatActivityId, id -> {
GroupChatActivityRewardDTO newRewardDTO = new GroupChatActivityRewardDTO();
newRewardDTO.setChatActivityId(baseDTO.getChatActivityId());
newRewardDTO.setInviteNumber(baseDTO.getInviteNumber());
newRewardDTO.setInviteLevel(baseDTO.getInviteLevel());
newRewardDTO.setLimitReward(baseDTO.getLimitReward());
newRewardDTO.setDetailList(new ArrayList<>());
return newRewardDTO;
});
GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO(); GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO();
detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId()); detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId());
detailDTO.setRewardType(baseDTO.getRewardType()); detailDTO.setRewardType(baseDTO.getRewardType());
detailDTO.setRewardValue(baseDTO.getRewardValue()); detailDTO.setRewardValue(baseDTO.getRewardValue());
detailDTO.setRewardName(baseDTO.getRewardName()); detailDTO.setRewardName(baseDTO.getRewardName());
if (rewardDTO.getDetailList() == null) {
rewardDTO.setDetailList(new ArrayList<>());
}
rewardDTO.getDetailList().add(detailDTO); rewardDTO.getDetailList().add(detailDTO);
}
groupedMap.forEach((rewardInvite, rewardDTOMap) -> {
List<GroupChatActivityRewardDTO> rewardDTOList = new ArrayList<>(rewardDTOMap.values());
rewardMap.put(rewardInvite, rewardDTOList);
});
return rewardDTO; return rewardMap;
}, Collectors.toList())
));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment