房间日奖励-我的奖励-增加statDate筛选奖励状态

This commit is contained in:
2025-09-22 18:17:50 +08:00
parent eaac429281
commit 9bce9c06dd
2 changed files with 7 additions and 5 deletions

View File

@@ -114,6 +114,7 @@ public class RoomDaySendRankRewardManager {
// 2. 计算奖励信息
Date todayTime = new Date();
Date statTime = Boolean.TRUE.equals(isToday)? todayTime: DateTimeUtil.addDays(todayTime, -1);
String recordDate = Boolean.TRUE.equals(isToday)? zdtDate: zdt.minusDays(1L).format(DateTimeUtil.dateFormatter);
Set<Map<String, Object>> rankList = sendRoomDayRankService.getRank(statTime, roomUid, 0L, -1L, room.getPartitionId());
BigDecimal roomSerialValue = rankList.stream().map(entry-> BigDecimal.valueOf((Double)entry.get(RedisZSetEnum.score.name())).setScale(2, RoundingMode.DOWN)).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -127,7 +128,7 @@ public class RoomDaySendRankRewardManager {
vo.setTop10RankList(top10RankVoList);
// 4. 获取我的排名信息使用ActivityRankItemVo
RoomDaySendRankRewardHomeVo.RankItemVo myRank = buildMyRank(u, roomUid, rankList, rewardInfoVo, isToday);
RoomDaySendRankRewardHomeVo.RankItemVo myRank = buildMyRank(u, roomUid, rankList, rewardInfoVo, isToday, recordDate);
vo.setMyRank(myRank);
return vo;
@@ -177,7 +178,7 @@ public class RoomDaySendRankRewardManager {
}
private RoomDaySendRankRewardHomeVo.RankItemVo buildMyRank(Users u, Long roomUid, Set<Map<String, Object>> rankList,
RoomDaySendRankRewardHomeVo.RewardInfoVo rewardInfoVo, Boolean isToday) {
RoomDaySendRankRewardHomeVo.RewardInfoVo rewardInfoVo, Boolean isToday, String recordDate) {
RoomDaySendRankRewardHomeVo.RankItemVo vo = new RoomDaySendRankRewardHomeVo.RankItemVo();
vo.setUid(u.getUid());
vo.setErbanNo(u.getErbanNo());
@@ -219,7 +220,7 @@ public class RoomDaySendRankRewardManager {
if (isToday){
vo.setOwnerRewardStatus(rewardInfoVo.getOwnerReward()>0L? Constant.StatusV2.invalid: Constant.StatusV2.delete);
} else {
RoomDaySendRankUserRecord ownerRewardRecord = userRecordService.getUserRecordByType(roomUid, u.getPartitionId(), u.getUid(), Constant.status.delete);
RoomDaySendRankUserRecord ownerRewardRecord = userRecordService.getUserRecordByType(roomUid, u.getPartitionId(), u.getUid(), recordDate, Constant.status.delete);
vo.setOwnerRewardStatus(null == ownerRewardRecord? Constant.StatusV2.delete: ownerRewardRecord.getUserReceiveReward() > 0L ? Constant.status.invalid: Constant.status.valid);
}
}
@@ -239,7 +240,7 @@ public class RoomDaySendRankRewardManager {
if (isToday){
vo.setMyRewardStatus(myReward > 0L? Constant.StatusV2.invalid: Constant.StatusV2.delete);
} else {
RoomDaySendRankUserRecord myRewardRecord = userRecordService.getUserRecordByType(roomUid, u.getPartitionId(), u.getUid(), Constant.status.valid);
RoomDaySendRankUserRecord myRewardRecord = userRecordService.getUserRecordByType(roomUid, u.getPartitionId(), u.getUid(), recordDate, Constant.status.valid);
vo.setMyRewardStatus(null == myRewardRecord? Constant.StatusV2.delete: myRewardRecord.getUserReceiveReward() > 0L ? Constant.status.invalid: Constant.status.valid);
}
}

View File

@@ -8,10 +8,11 @@ import org.springframework.stereotype.Service;
@Service
public class RoomDaySendRankUserRecordService extends ServiceImpl<RoomDaySendRankUserRecordMapper, RoomDaySendRankUserRecord> {
public RoomDaySendRankUserRecord getUserRecordByType(Long roomUid, Integer partitionId, Long uid, Byte type){
public RoomDaySendRankUserRecord getUserRecordByType(Long roomUid, Integer partitionId, Long uid, String recordDate, Byte type){
return lambdaQuery().eq(RoomDaySendRankUserRecord::getRoomUid, roomUid)
.eq(RoomDaySendRankUserRecord::getPartitionId, partitionId)
.eq(RoomDaySendRankUserRecord::getUid, uid)
.eq(RoomDaySendRankUserRecord::getStatDate, recordDate)
.eq(RoomDaySendRankUserRecord::getType, type)
.one();
}