日任务房间日流水改版

This commit is contained in:
2025-09-10 19:00:41 +08:00
parent b9cee71c31
commit ee7fd3ae29
3 changed files with 17 additions and 10 deletions

View File

@@ -18,6 +18,7 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@Component
@DailyTaskHandlerType(DailyTaskTypeEnum.ROOM_DAY_DIAMOND)
@@ -72,12 +73,18 @@ public class RoomDayDiamondHandler extends AbstractDailyTaskHandler {
}
BigDecimal totalGoldNum = roomDayDiamondNumService.getGoldNum(partitionId, uid, dayDate);
dailyTaskRoomDiamondVo.setTotalGoldNum(totalGoldNum);
TreeMap<BigDecimal, RoomDayDiamondReward> treeMap = roomDayDiamondRewardService.calRewardTreeMapByPartitionId(roomDayDiamondRewards);
RoomDayDiamondReward bigDiamondReward = roomDayDiamondRewardService.calGoldRewardEntity(treeMap, totalGoldNum);
if (bigDiamondReward != null) {
dailyTaskRoomDiamondVo.setMaxLevel(bigDiamondReward.getLevel());
dailyTaskRoomDiamondVo.setTotalRewardNum(bigDiamondReward.getRewardGold());
}
List<DailyTaskRoomDiamondDetailVo> rewardList = new ArrayList<>();
dailyTaskRoomDiamondVo.setLevelVos(rewardList);
Map<String, RoomDayDiamondRewardRecvRecord> levelMap = roomDayDiamondRewardRecvRecordService.getLevelMap(partitionId, uid, dayDate);
Boolean domainSendCheck = roomDayDiamondRewardRecordService.checkExist(partitionId, uid, dayDate);
int size = roomDayDiamondRewards.size();
RoomDayDiamondReward bigDiamondReward = null;
for (int i = 0; i < size; i++) {
RoomDayDiamondReward diamondReward = roomDayDiamondRewards.get(i);
DailyTaskRoomDiamondDetailVo detailVo = new DailyTaskRoomDiamondDetailVo();
@@ -95,27 +102,20 @@ public class RoomDayDiamondHandler extends AbstractDailyTaskHandler {
? tmpTotalGoldNum.compareTo(length)>=0 ? length : tmpTotalGoldNum
: BigDecimal.ZERO;
detailVo.setProcessNum(processNum);
Boolean received = !levelMap.isEmpty() && domainSendCheck;
Boolean received = !levelMap.isEmpty() || domainSendCheck;
if (received) {
detailVo.setStatus(ReceiveStatus.RECEIVED);
dailyTaskRoomDiamondVo.setStatus(ReceiveStatus.RECEIVED);
bigDiamondReward = diamondReward;
} else if (processNum.compareTo(length) == 0 && DateType.TODAY == dateType) {
detailVo.setStatus(ReceiveStatus.RECEIVE_YESTERDAY);
bigDiamondReward = diamondReward;
} else if (processNum.compareTo(length) == 0 && DateType.YESTERDAY == dateType) {
detailVo.setStatus(ReceiveStatus.AVAILABLE);
dailyTaskRoomDiamondVo.setStatus(ReceiveStatus.AVAILABLE);
bigDiamondReward = diamondReward;
} else {
detailVo.setStatus(ReceiveStatus.NOT_RECEIVE);
}
rewardList.add(detailVo);
}
if (DateType.YESTERDAY == dateType && bigDiamondReward != null) {
dailyTaskRoomDiamondVo.setMaxLevel(bigDiamondReward.getLevel());
dailyTaskRoomDiamondVo.setTotalRewardNum(bigDiamondReward.getRewardGold());
}
return dailyTaskRoomDiamondVo;
}

View File

@@ -17,6 +17,8 @@ public interface RoomDayDiamondRewardService extends IService<RoomDayDiamondRewa
TreeMap<BigDecimal, RoomDayDiamondReward> getRewardTreeMapByPartitionId(Integer partitionId);
TreeMap<BigDecimal, RoomDayDiamondReward> calRewardTreeMapByPartitionId(List<RoomDayDiamondReward> roomDayDiamondRewards);
/**
* 根据钻石流水获取奖励
* @param treeMap

View File

@@ -25,8 +25,13 @@ public class RoomDayDiamondRewardServiceImpl extends ServiceImpl<RoomDayDiamondR
@Override
public TreeMap<BigDecimal, RoomDayDiamondReward> getRewardTreeMapByPartitionId(Integer partitionId) {
TreeMap<BigDecimal, RoomDayDiamondReward> resultMap = new TreeMap<>();
List<RoomDayDiamondReward> roomDayDiamondRewards = this.listByPartitionIdAsc(partitionId);
return this.calRewardTreeMapByPartitionId(roomDayDiamondRewards);
}
@Override
public TreeMap<BigDecimal, RoomDayDiamondReward> calRewardTreeMapByPartitionId(List<RoomDayDiamondReward> roomDayDiamondRewards) {
TreeMap<BigDecimal, RoomDayDiamondReward> resultMap = new TreeMap<>();
if (CollectionUtils.isEmpty(roomDayDiamondRewards)) {
return resultMap;
}