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 {
return list;
}
public static Map<Integer, List<GroupChatActivityRewardDTO>> reverseMapConvert(List<GroupChatActivityRewardBaseDTO> baseList) {
return baseList.stream()
.collect(Collectors.groupingBy(
GroupChatActivityRewardBaseDTO::getRewardInvite,
Collectors.mapping(baseDTO -> {
GroupChatActivityRewardDTO rewardDTO = new GroupChatActivityRewardDTO();
rewardDTO.setChatActivityId(baseDTO.getChatActivityId());
rewardDTO.setInviteNumber(baseDTO.getInviteNumber());
rewardDTO.setInviteLevel(baseDTO.getInviteLevel());
rewardDTO.setLimitReward(baseDTO.getLimitReward());
rewardDTO.setRewardInvite(baseDTO.getRewardInvite());
GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO();
detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId());
detailDTO.setRewardType(baseDTO.getRewardType());
detailDTO.setRewardValue(baseDTO.getRewardValue());
detailDTO.setRewardName(baseDTO.getRewardName());
if (rewardDTO.getDetailList() == null) {
rewardDTO.setDetailList(new ArrayList<>());
}
rewardDTO.getDetailList().add(detailDTO);
return rewardDTO;
}, Collectors.toList())
));
public static Map<Integer, List<GroupChatActivityRewardDTO>> reverseMapConvert(List<GroupChatActivityRewardBaseDTO> baseDTOList) {
Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap = new HashMap<>();
// 按 rewardInvite 分组
Map<Integer, Map<Long, GroupChatActivityRewardDTO>> groupedMap = new HashMap<>();
for (GroupChatActivityRewardBaseDTO baseDTO : baseDTOList) {
int rewardInvite = baseDTO.getRewardInvite();
Long chatActivityId = baseDTO.getChatActivityId();
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();
detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId());
detailDTO.setRewardType(baseDTO.getRewardType());
detailDTO.setRewardValue(baseDTO.getRewardValue());
detailDTO.setRewardName(baseDTO.getRewardName());
rewardDTO.getDetailList().add(detailDTO);
}
groupedMap.forEach((rewardInvite, rewardDTOMap) -> {
List<GroupChatActivityRewardDTO> rewardDTOList = new ArrayList<>(rewardDTOMap.values());
rewardMap.put(rewardInvite, rewardDTOList);
});
return rewardMap;
}
......
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