diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/I18nAlertEnum.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/I18nAlertEnum.java index 65ecec6a2..75ec3c3d6 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/I18nAlertEnum.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/I18nAlertEnum.java @@ -319,9 +319,9 @@ public enum I18nAlertEnum { GOLD_BEAN_NAME("Gold Bean"), DIAMOND_NAME("DIAMOND"), GUILD_CREATE_TASK_MSG("你在公会的卓越表现,获得了精美奖励。快去背包看看吧!"), - EXTRA_GUILD_MSG("你的钻石奖励已经发放,请注意查收。"), - EXTRA_GUILD_MEMBER_MSG("你的钻石奖励已经发放,请注意查收。"), - EXTRA_ROOM_MSG("你的钻石奖励已经发放,请注意查收。"), + EXTRA_GUILD_MSG("尊敬的用户,根据政策,您的公会长次日奖励{0}钻石已到账,您可以前往【我的钱包】查看。"), + EXTRA_GUILD_MEMBER_MSG("尊敬的用户,根据政策,您的主播次日奖励{0}钻石已到账,您可以前往【我的钱包】查看。"), + EXTRA_ROOM_MSG("尊敬的用户,根据政策,您每周一结算的奖励{0}钻石已到账,您可以前往【我的钱包】查看。"), ; private final String defaultStr; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildsoviet/ExtraDiamondDayService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildsoviet/ExtraDiamondDayService.java index 318f1a08a..d35ea7017 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildsoviet/ExtraDiamondDayService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildsoviet/ExtraDiamondDayService.java @@ -138,19 +138,20 @@ public class ExtraDiamondDayService { boolean updateBatchById = guildExtraDiamondDayService.updateBatchById(guildExtraDiamondDays); if (!updateBatchById) { } - HashSet uids = new HashSet<>(); + Map sendGoldMap = new HashMap<>(); for (GuildExtraDiamondDay extraDiamondDay : guildExtraDiamondDays) { + BigDecimal sendGold = BigDecimal.ZERO; if (extraDiamondDay.getAnchorExtraNum().compareTo(BigDecimal.ZERO) > 0) { userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraNum().doubleValue(), ANCHOR_EXTRA_GOLD); - uids.add(extraDiamondDay.getUid()); + sendGold = sendGold.add(extraDiamondDay.getAnchorExtraNum()); } if (extraDiamondDay.getAnchorExtraLuckyNum().compareTo(BigDecimal.ZERO) > 0) { userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraLuckyNum().doubleValue(), ANCHOR_EXTRA_LUCKY_GOLD); - uids.add(extraDiamondDay.getUid()); + sendGold = sendGold.add(extraDiamondDay.getAnchorExtraLuckyNum()); } + sendGoldMap.put(extraDiamondDay.getUid(), sendGold); } - String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, partitionId); - this.sendMessage(message, uids); + this.sendMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, sendGoldMap, partitionId); } } catch (Exception e) { log.error("sendGuildMemberExtraDiamondTask anchor error" , e); @@ -204,15 +205,14 @@ public class ExtraDiamondDayService { ownerExtra = ownerExtra == null ? add : ownerExtra.add(add); ownerExtraMap.put(ownerUid, ownerExtra); } - HashSet uids = new HashSet<>(); + Map sendGoldMap = new HashMap<>(); for (Map.Entry decimalEntry : ownerExtraMap.entrySet()) { if (decimalEntry.getValue().compareTo(BigDecimal.ZERO) > 0) { userPurseService.addGold(decimalEntry.getKey(), decimalEntry.getValue().doubleValue(), OWNER_EXTRA_GOLD); - uids.add(decimalEntry.getKey()); + sendGoldMap.put(decimalEntry.getKey(), decimalEntry.getValue()); } } - String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MSG, partitionId); - this.sendMessage(message, uids); + this.sendMessage(I18nAlertEnum.EXTRA_GUILD_MSG, sendGoldMap, partitionId); } } catch (Exception e) { log.error("sendGuildExtraDiamondTask anchor error" , e); @@ -258,18 +258,17 @@ public class ExtraDiamondDayService { }, BigDecimal::add )); - HashSet uids = new HashSet<>(); + Map sendGoldMap = new HashMap<>(); extraDiamondMap.entrySet().stream() .filter(entry -> entry.getValue().compareTo(BigDecimal.ZERO) > 0) .forEach(entry -> { Long roomUid = entry.getKey(); BigDecimal extraDiamond = entry.getValue(); userPurseService.addGold(roomUid, extraDiamond.doubleValue(), ROOM_EXTRA_GOLD); - uids.add(roomUid); + sendGoldMap.put(roomUid, extraDiamond); }); - String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, partitionId); - this.sendMessage(message, uids); + this.sendMessage(I18nAlertEnum.EXTRA_ROOM_MSG, sendGoldMap, partitionId); } catch (Exception e) { log.error("sendLastDayDiamondtask room error" , e); } finally { @@ -280,9 +279,13 @@ public class ExtraDiamondDayService { } @Async - public void sendMessage(String msg, Set uids) { - uids.forEach(uid -> { - baseSendService.sendSystemMsg(uid.toString(), msg); + public void sendMessage(I18nAlertEnum msg, Map sendGoldMap, Integer partitionId) { + sendGoldMap.entrySet().forEach(entry -> { + if (entry.getValue().compareTo(BigDecimal.ZERO) <= 0) { + return; + } + String message = I18NMessageSourceUtil.getMessage(msg, new Object[]{entry.getValue()}, partitionId); + baseSendService.sendSystemMsg(entry.getKey().toString(), message); }); } }