房间周流水-账单

This commit is contained in:
2025-08-26 17:49:27 +08:00
parent 6e0deca207
commit 3da74a1e2f
5 changed files with 24 additions and 13 deletions

View File

@@ -37,12 +37,15 @@ public class RoomWeekDiamondRewardRecordAdminVo {
@ExcelProperty("金币流水")
@ApiModelProperty("金币流水")
private BigDecimal goldNum;
@ExcelProperty("对应流水发放金币")
@ApiModelProperty("对应流水发放金币")
private BigDecimal rewardGold;
@ExcelIgnore
@ApiModelProperty("奖励等级id")
private String levelId;
@ExcelProperty("等级名称")
@ApiModelProperty("等级名称")
private String levelName;
@ExcelProperty("对应流水发放金币")
@ApiModelProperty("对应流水发放金币")
private BigDecimal rewardGold;
@ExcelProperty("发放状态0:未发放1已经发放")
@ApiModelProperty("发放状态0:未发放1已经发放")
private Byte status;

View File

@@ -40,6 +40,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.DayOfWeek;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -147,12 +148,13 @@ public class RoomWeekDiamondRewardRecordAdminService extends ServiceImpl<RoomWee
if (weekDiamondNum == null) {
throw new AdminServiceException("记录不存在");
}
String notEqualsToWeek = DateTimeUtil.convertWithZoneId(new Date(), PartitionEnum.getByPartitionId(partitionId).getZoneId())
ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(new Date(), PartitionEnum.getByPartitionId(partitionId).getZoneId());
String lastWeek = zdt
.with(DayOfWeek.MONDAY)
.minusWeeks(1L)
.format(DateTimeUtil.dateFormatter);
if (notEqualsToWeek.equals(weekDiamondNum.getStatDate())) {
throw new AdminServiceException("该区(" + PartitionEnum.getByPartitionId(partitionId).getDesc() + ")当周未结束,不允许发放");
if (!lastWeek.equals(weekDiamondNum.getStatDate())) {
throw new AdminServiceException("只能发放上一周的奖励");
}
String lockKey = String.join(":","RoomWeekDiamondNum",roomUid.toString(), statDate, partitionId.toString());
RLock lock = redissonClient.getLock(lockKey);
@@ -186,9 +188,9 @@ public class RoomWeekDiamondRewardRecordAdminService extends ServiceImpl<RoomWee
throw new AdminServiceException("发放失败");
}
userPurseService.addDiamond(roomUid, goldReward.doubleValue(), BillObjTypeEnum.ROOM_DAY_DIAMOND_REWARD,
userPurseService.addDiamond(roomUid, goldReward.doubleValue(), BillObjTypeEnum.ROOM_WEEK_DIAMOND_REWARD,
(userPurse) -> billRecordService.insertGeneralBillRecord(roomUid, roomWeekDiamondRewardRecord.getId().toString(),
BillObjTypeEnum.ROOM_DAY_DIAMOND_REWARD, goldReward.doubleValue(), userPurse));
BillObjTypeEnum.ROOM_WEEK_DIAMOND_REWARD, goldReward.doubleValue(), userPurse));
sendSysMsgService.sendPersonTextMsg(roomUid,
I18NMessageSourceUtil.getMessage(I18nAlertEnum.ROOM_DAY_DIAMOND_REWARD_SYS, new Object[]{weekDiamondNum.getGoldNum(), goldReward}, partitionId));

View File

@@ -14,12 +14,13 @@
rn.gold_num goldNum,
rm.`title` roomName,
ri.`name` regionName,
reward.id levelId,
rwr.level_name levelName,
reward.reward_gold rewardGold,
au.username operator,
pi.`desc` partitionIdDesc,
rwr.level_name levelName,
if(reward.id is null, 0, 1) `status`,
reward.create_time createTime
if(reward.id is null, 0, 1) `status`,
reward.create_time createTime
FROM
room_week_diamond_num rn
LEFT JOIN room_week_diamond_reward_record reward

View File

@@ -269,8 +269,9 @@ public enum BillObjTypeEnum {
MIUNS_GAME_USD( 179, "官方扣除游戏薪资", BillTypeEnum.OUT, CurrencyEnum.GAME_USD, BillDomainTypeEnum.GAME_USD),
GUILD_POLICY2_SUB_GUILD_USD( 180, "土耳其公会结算扣除薪资", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_POLICY2),
GUILD_POLICY2_SUB_GOLDS( 181, "土耳其公会结算扣除钻石", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD_POLICY2),
ROOM_WEEK_DIAMOND_REWARD(154, "房间周奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
;
BillObjTypeEnum(int value, String desc, BillTypeEnum type, CurrencyEnum currency, BillDomainTypeEnum domain) {

View File

@@ -4,6 +4,8 @@ import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
@@ -17,6 +19,8 @@ public class RoomWeekDiamondReward implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 分区id
*/