房间钻石流水统计

This commit is contained in:
2025-04-24 13:53:46 +08:00
parent 96b6d2cc65
commit 8f512ee251
4 changed files with 45 additions and 41 deletions

View File

@@ -6,10 +6,7 @@ import com.accompany.business.model.Gift;
import com.accompany.business.service.SendSysMsgService;
import com.accompany.business.service.gift.GiftService;
import com.accompany.business.service.rank.RankService;
import com.accompany.business.service.room.RoomLevelService;
import com.accompany.business.service.room.RoomRankService;
import com.accompany.business.service.room.RoomService;
import com.accompany.business.service.room.RoomServiceFactory;
import com.accompany.business.service.room.*;
import com.accompany.common.constant.Constant;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.PartitionEnum;
@@ -22,6 +19,7 @@ import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -52,6 +50,9 @@ public class RankListener implements ApplicationListener<GiftMessageEvent> {
@Autowired
private RoomLevelService roomLevelService;
@Autowired
private RoomDayDiamondNumService roomDayDiamondNumService;
@Async
@Override
@SneakyThrows
@@ -69,23 +70,23 @@ public class RankListener implements ApplicationListener<GiftMessageEvent> {
if (goldNum <= 0L){
return;
}
rankService.updateAllRank(sendUid, recvUid, roomUid, goldNum.doubleValue(), messTime, partitionId);
try {
rankService.updateAllRank(sendUid, recvUid, roomUid, goldNum.doubleValue(), messTime, partitionId);
Integer giftId = giftMessage.getGiftId();
Gift gift = giftService.getGiftByIdFromDb(giftId);
if (null == gift) {
return;
}
Integer giftId = giftMessage.getGiftId();
Gift gift = giftService.getGiftByIdFromDb(giftId);
if (null == gift || roomUid == null) {
return;
}
//免费礼物特殊处理
boolean isFreeGift = Constant.GiftConsumeType.ROOM_FREE_GIFT == gift.getConsumeType();
Long giftGoldNum = isFreeGift ? Math.abs(gift.getGoldPrice() * giftNum) : goldNum;
//发送榜单更新
//免费礼物特殊处理
boolean isFreeGift = Constant.GiftConsumeType.ROOM_FREE_GIFT == gift.getConsumeType();
Long giftGoldNum = isFreeGift ? Math.abs(gift.getGoldPrice() * giftNum) : goldNum;
Double roomDiamond = PartitionEnum.ENGLISH2.getId() == partitionId ? giftMessage.getDiamondNum() : Double.valueOf(giftGoldNum);
Double roomDiamond = PartitionEnum.ENGLISH2.getId() == partitionId ? giftMessage.getDiamondNum() : Double.valueOf(giftGoldNum);
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, roomDiamond, date, isFreeGift, partitionId);
//发送榜单更新
if (roomUid != null) {
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, roomDiamond, date, isFreeGift, partitionId);
Room room = roomService.getRoomByUid(roomUid);
roomLevelService.updateRoomLevelExp(partitionId, roomUid, giftGoldNum.doubleValue(), room);
if (room != null) {
@@ -93,6 +94,12 @@ public class RankListener implements ApplicationListener<GiftMessageEvent> {
jsonObject.put("serialValue", RoomServiceFactory.getServiceByType(room.getType()).roomSerialValue(roomUid, partitionId));
sendSysMsgService.sendSingleRoomMessage(room.getRoomId(), String.valueOf(room.getUid()), Constant.DefMsgType.RANK, Constant.DefMsgType.RANK_UPDATE, jsonObject);
}
if (PartitionEnum.ENGLISH2.getId() == partitionId || PartitionEnum.TURKEY.getId() == partitionId) {
BigDecimal diamondNum = BigDecimal.valueOf(roomDiamond);
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, date, diamondNum);
}
} catch (Exception e) {
log.info("RankListener.updateAllRank-updateRoomRank:{}, e:{}", JSONObject.toJSONString(giftMessage), e.getMessage(), e);
}
}

View File

@@ -66,12 +66,5 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
guildRankService.updateRank(guildMember.getGuildId(), guildMember.getUid(), totalDiamondNum, receiver.getPartitionId());
String statDate = CycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
Long roomUid = message.getRoomUid();
if (roomUid != null && (PartitionEnum.ENGLISH2.getId() == partitionInfo.getId() || PartitionEnum.TURKEY.getId() == partitionInfo.getId())) {
BigDecimal diamondNum = BigDecimal.valueOf(totalDiamondNum);
roomDayDiamondNumService.addDiamondNum(partitionInfo.getId(), roomUid, time, diamondNum);
}
}
}

View File

@@ -7,6 +7,7 @@ import com.accompany.business.service.rank.RankService;
import com.accompany.business.service.room.*;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.constant.Constant;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.model.Room;
import com.accompany.core.model.Users;
import com.alibaba.fastjson.JSONObject;
@@ -16,6 +17,7 @@ import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
@Slf4j
@@ -36,6 +38,9 @@ public class SuperLuckyGiftSendListener implements ApplicationListener<SuperLuck
private RoomLevelService roomLevelService;
@Autowired
private RoomBoomBizService roomBoomBizService;
@Autowired
private RoomDayDiamondNumService roomDayDiamondNumService;
@Async
@Override
@@ -53,17 +58,23 @@ public class SuperLuckyGiftSendListener implements ApplicationListener<SuperLuck
try {
rankService.updateAllRank(sendUid, recvUid, roomUid, totalDiamondNum, messTime.getTime(), partitionId);
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, totalDiamondNum, messTime, Boolean.FALSE, partitionId);
if (roomUid == null) {
return;
}
//发送榜单更新
if (roomUid != null) {
Room room = roomService.getRoomByUid(roomUid);
roomLevelService.updateRoomLevelExp(partitionId, roomUid, totalDiamondNum, room);
if (room != null) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("serialValue", RoomServiceFactory.getServiceByType(room.getType()).roomSerialValue(roomUid, partitionId));
sendSysMsgService.sendSingleRoomMessage(room.getRoomId(), String.valueOf(roomUid), Constant.DefMsgType.RANK, Constant.DefMsgType.RANK_UPDATE, jsonObject);
}
roomBoomBizService.handleMessage(message);
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, totalDiamondNum, messTime, Boolean.FALSE, partitionId);
Room room = roomService.getRoomByUid(roomUid);
roomLevelService.updateRoomLevelExp(partitionId, roomUid, totalDiamondNum, room);
if (room != null) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("serialValue", RoomServiceFactory.getServiceByType(room.getType()).roomSerialValue(roomUid, partitionId));
sendSysMsgService.sendSingleRoomMessage(room.getRoomId(), String.valueOf(roomUid), Constant.DefMsgType.RANK, Constant.DefMsgType.RANK_UPDATE, jsonObject);
}
roomBoomBizService.handleMessage(message);
if (PartitionEnum.ENGLISH2.getId() == partitionId || PartitionEnum.TURKEY.getId() == partitionId) {
BigDecimal diamondNum = BigDecimal.valueOf(totalDiamondNum);
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, messTime, diamondNum);
}
} catch (Exception e) {
log.info("SuperLuckyGiftSendListener.updateAllRank-updateRoomRank:{}, e:{}", JSONObject.toJSONString(message), e.getMessage(), e);

View File

@@ -87,13 +87,6 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
String monday = DateTimeUtil.convertDate(DateTimeUtil.getMondayDate(zoneTime), DateTimeUtil.DEFAULT_DATE_PATTERN);
guildMemberWeekLevelRewardService.addProcess(guildMember.getId(), guildMember.getPartitionId(), monday, giftSendRecord.getTotalDiamondNum());
Long roomUid = giftSendRecord.getRoomUid();
if (roomUid != null && (PartitionEnum.ENGLISH2.getId() == partitionInfo.getId() || PartitionEnum.TURKEY.getId() == partitionInfo.getId())) {
BigDecimal diamondNum = BigDecimal.valueOf(giftSendRecord.getTotalDiamondNum());
roomDayDiamondNumService.addDiamondNum(partitionInfo.getId(), roomUid, giftSendRecord.getCreateTime(), diamondNum);
}
applicationContext.publishEvent(new GuildMemberIncreaseFlowEvent(new GuildMemberIncreaseFlowMessage(
giftSendRecord.getPartitionId(), guildMember.getGuildId(), guildMember.getUid(),
BigDecimal.valueOf(giftSendRecord.getTotalGoldNum()),