独联体-房间送礼人,系统消息
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user