Commit a7b39750 by 王祖波

奖励明细

parent 1f1fc014
...@@ -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);
GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO();
detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId()); GroupChatActivityRewardDTO rewardDTO = rewardDTOMap.computeIfAbsent(chatActivityId, id -> {
detailDTO.setRewardType(baseDTO.getRewardType()); GroupChatActivityRewardDTO newRewardDTO = new GroupChatActivityRewardDTO();
detailDTO.setRewardValue(baseDTO.getRewardValue()); newRewardDTO.setChatActivityId(baseDTO.getChatActivityId());
detailDTO.setRewardName(baseDTO.getRewardName()); newRewardDTO.setInviteNumber(baseDTO.getInviteNumber());
newRewardDTO.setInviteLevel(baseDTO.getInviteLevel());
if (rewardDTO.getDetailList() == null) { newRewardDTO.setLimitReward(baseDTO.getLimitReward());
rewardDTO.setDetailList(new ArrayList<>()); newRewardDTO.setDetailList(new ArrayList<>());
} return newRewardDTO;
rewardDTO.getDetailList().add(detailDTO); });
return rewardDTO; GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO();
}, Collectors.toList()) 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