diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/common/activity/PropsActivitySendCommon.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/common/activity/PropsActivitySendCommon.java index 318f21f1..c794960e 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/common/activity/PropsActivitySendCommon.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/common/activity/PropsActivitySendCommon.java @@ -460,13 +460,7 @@ public class PropsActivitySendCommon { if (CollectionUtils.isNotEmpty(useBadges) && useBadges.size() >= 8) { //卸下部分佩戴中的徽章 - Set ids = Sets.newHashSet(); - for (int i = 0; i < useBadges.size(); i++) { - if (i > 3) { - ids.add(useBadges.get(i).getId()); - } - } - badgeBackpackService.removeWearByIds(ids); + removeWears(useBadges, 8); } if (Objects.equals(prize.getQuantity(), BigDecimal.ZERO)) { @@ -481,8 +475,18 @@ public class PropsActivitySendCommon { // userProfileRepository.removeCache(userId); } + private void removeWears(List useBadges, Integer maxDisplay) { + Set ids = Sets.newHashSet(); + for (int i = 0; i < useBadges.size(); i++) { + if (i > maxDisplay) { + ids.add(useBadges.get(i).getId()); + } + } + badgeBackpackService.removeWearByIds(ids); + } - private void sendRoomBadge(SendRewardAbstract param, List val) { + + private void sendRoomBadge(SendRewardAbstract param, List val) { Long roomId = roomProfileManagerService.getRoomId(param.getAcceptUserId()); if (Objects.isNull(roomId)) { log.warn("领取房间徽章错误,没有找到用户房间信息:{}", roomId); diff --git a/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/material/props/impl/BadgeBackpackClientServiceImpl.java b/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/material/props/impl/BadgeBackpackClientServiceImpl.java index 16e34b12..2289a397 100644 --- a/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/material/props/impl/BadgeBackpackClientServiceImpl.java +++ b/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/material/props/impl/BadgeBackpackClientServiceImpl.java @@ -395,16 +395,20 @@ public class BadgeBackpackClientServiceImpl implements BadgeBackpackClientServic return; } - Set ids = Sets.newHashSet(); - - for (int i = 0; i < usePropsList.size(); i++) { - - if (i > 3) { - ids.add(usePropsList.get(i).getId()); - } - } - badgeBackpackService.removeWearByIds(ids); + removeWears(usePropsList, 8); } + private void removeWears(List usePropsList, Integer maxDisplay) { + Set ids = Sets.newHashSet(); + + for (int i = 0; i < usePropsList.size(); i++) { + + if (i > maxDisplay) { + ids.add(usePropsList.get(i).getId()); + } + } + badgeBackpackService.removeWearByIds(ids); + } + }