独联体-房间送礼人,系统消息

This commit is contained in:
2025-09-23 17:05:09 +08:00
parent 683d040eb8
commit d63fcbc9b1
3 changed files with 40 additions and 9 deletions

View File

@@ -319,6 +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("你的钻石奖励已经发放,请注意查收。"),
;
private final String defaultStr;

View File

@@ -52,6 +52,7 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
SuperLuckyGiftDiamondIncomeMessage message = (SuperLuckyGiftDiamondIncomeMessage) event.getSource();
Long receiverUid = message.getReceiverUid();
Long roomUid = message.getRoomUid();
Long senderUid = message.getSenderUid();
Users receiver = usersService.getNotNullUsersByUid(receiverUid);
@@ -87,7 +88,7 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
if (Constant.ClanMode.SOVIET.equals(partitionInfo.getClanMode()) && roomUid != null && roomUid > 0L) {
statDate = DateTimeUtil.convertWithZoneId(time, partitionInfo.getZoneId()).format(dateFormatter);
extraDiamondDayService.updateRoomExtraDiamond(guildMember, roomUid, partitionInfo, statDate,
extraDiamondDayService.updateRoomExtraDiamond(guildMember, senderUid, partitionInfo, statDate,
roomUid, 0D, message.getTotalDiamondNum(), time);
}
}

View File

@@ -5,14 +5,17 @@ import com.accompany.business.model.guild.Guild;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.model.guildsoviet.GuildExtraDiamondDay;
import com.accompany.business.model.guildsoviet.RoomExtraDiamondDay;
import com.accompany.business.service.BaseSendService;
import com.accompany.business.service.guild.GuildMemberService;
import com.accompany.business.service.guild.GuildService;
import com.accompany.business.service.purse.UserPurseService;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.I18nAlertEnum;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.PartitionInfo;
import com.accompany.core.service.SysConfService;
import com.accompany.core.util.I18NMessageSourceUtil;
import com.accompany.core.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
@@ -20,6 +23,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@@ -48,6 +52,8 @@ public class ExtraDiamondDayService {
private RedissonClient redissonClient;
@Autowired
private GuildMemberService guildMemberService;
@Autowired
private BaseSendService baseSendService;
public void updateGuildExtraDiamond(GuildMember guildMember, String cycleDate, String statDate,
Double normalDiamondNum, Double luckyDiamondNum, Date time) {
@@ -130,16 +136,21 @@ public class ExtraDiamondDayService {
return;
}
boolean updateBatchById = guildExtraDiamondDayService.updateBatchById(guildExtraDiamondDays);
if (updateBatchById) {
for (GuildExtraDiamondDay extraDiamondDay : guildExtraDiamondDays) {
if (extraDiamondDay.getAnchorExtraNum().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraNum().doubleValue(), ANCHOR_EXTRA_GOLD);
}
if (extraDiamondDay.getAnchorExtraLuckyNum().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraLuckyNum().doubleValue(), ANCHOR_EXTRA_LUCKY_GOLD);
}
if (!updateBatchById) {
}
HashSet<Long> uids = new HashSet<>();
for (GuildExtraDiamondDay extraDiamondDay : guildExtraDiamondDays) {
if (extraDiamondDay.getAnchorExtraNum().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraNum().doubleValue(), ANCHOR_EXTRA_GOLD);
uids.add(extraDiamondDay.getUid());
}
if (extraDiamondDay.getAnchorExtraLuckyNum().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraLuckyNum().doubleValue(), ANCHOR_EXTRA_LUCKY_GOLD);
uids.add(extraDiamondDay.getUid());
}
}
String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, partitionId);
this.sendMessage(message, uids);
}
} catch (Exception e) {
log.error("sendGuildMemberExtraDiamondTask anchor error" , e);
@@ -193,11 +204,15 @@ public class ExtraDiamondDayService {
ownerExtra = ownerExtra == null ? add : ownerExtra.add(add);
ownerExtraMap.put(ownerUid, ownerExtra);
}
HashSet<Long> uids = new HashSet<>();
for (Map.Entry<Long, BigDecimal> decimalEntry : ownerExtraMap.entrySet()) {
if (decimalEntry.getValue().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(decimalEntry.getKey(), decimalEntry.getValue().doubleValue(), OWNER_EXTRA_GOLD);
uids.add(decimalEntry.getKey());
}
}
String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MSG, partitionId);
this.sendMessage(message, uids);
}
} catch (Exception e) {
log.error("sendGuildExtraDiamondTask anchor error" , e);
@@ -243,13 +258,18 @@ public class ExtraDiamondDayService {
},
BigDecimal::add
));
HashSet<Long> uids = new HashSet<>();
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);
});
String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, partitionId);
this.sendMessage(message, uids);
} catch (Exception e) {
log.error("sendLastDayDiamondtask room error" , e);
} finally {
@@ -258,4 +278,11 @@ public class ExtraDiamondDayService {
}
}
}
@Async
public void sendMessage(String msg, Set<Long> uids) {
uids.forEach(uid -> {
baseSendService.sendSystemMsg(uid.toString(), msg);
});
}
}