日任务房间日流水优化代码

This commit is contained in:
2025-09-11 10:34:27 +08:00
parent ee7fd3ae29
commit 26467ee2df
2 changed files with 16 additions and 7 deletions

View File

@@ -3,7 +3,6 @@ package com.accompany.business.service.dailytask.handler;
import cn.hutool.core.date.DateUtil;
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
import com.accompany.business.model.room.RoomDayDiamondReward;
import com.accompany.business.model.room.RoomDayDiamondRewardRecvRecord;
import com.accompany.business.service.dailytask.AbstractDailyTaskHandler;
import com.accompany.business.service.dailytask.annotation.DailyTaskHandlerType;
import com.accompany.business.service.room.*;
@@ -17,7 +16,6 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@Component
@@ -82,7 +80,7 @@ public class RoomDayDiamondHandler extends AbstractDailyTaskHandler {
}
List<DailyTaskRoomDiamondDetailVo> rewardList = new ArrayList<>();
dailyTaskRoomDiamondVo.setLevelVos(rewardList);
Map<String, RoomDayDiamondRewardRecvRecord> levelMap = roomDayDiamondRewardRecvRecordService.getLevelMap(partitionId, uid, dayDate);
Long receiveCount = roomDayDiamondRewardRecvRecordService.selectCount(partitionId, uid, dayDate);
Boolean domainSendCheck = roomDayDiamondRewardRecordService.checkExist(partitionId, uid, dayDate);
int size = roomDayDiamondRewards.size();
for (int i = 0; i < size; i++) {
@@ -102,13 +100,16 @@ public class RoomDayDiamondHandler extends AbstractDailyTaskHandler {
? tmpTotalGoldNum.compareTo(length)>=0 ? length : tmpTotalGoldNum
: BigDecimal.ZERO;
detailVo.setProcessNum(processNum);
Boolean received = !levelMap.isEmpty() || domainSendCheck;
if (received) {
Boolean received = receiveCount > 0 || domainSendCheck;
boolean isProcessCompleted = processNum.compareTo(length) == 0;
if (isProcessCompleted && received) {
detailVo.setStatus(ReceiveStatus.RECEIVED);
dailyTaskRoomDiamondVo.setStatus(ReceiveStatus.RECEIVED);
} else if (processNum.compareTo(length) == 0 && DateType.TODAY == dateType) {
} else if (isProcessCompleted && DateType.TODAY == dateType) {
detailVo.setStatus(ReceiveStatus.RECEIVE_YESTERDAY);
} else if (processNum.compareTo(length) == 0 && DateType.YESTERDAY == dateType) {
} else if (isProcessCompleted && DateType.YESTERDAY == dateType) {
detailVo.setStatus(ReceiveStatus.AVAILABLE);
dailyTaskRoomDiamondVo.setStatus(ReceiveStatus.AVAILABLE);
} else {

View File

@@ -133,6 +133,14 @@ public class RoomDayDiamondRewardRecvRecordService extends ServiceImpl<RoomDayDi
return roomDayDiamondRewardRecvRecords.stream().collect(Collectors.toMap(RoomDayDiamondRewardRecvRecord::getLevel, x -> x));
}
public Long selectCount(Integer partitionId, Long roomUid, String statDate) {
LambdaQueryWrapper<RoomDayDiamondRewardRecvRecord> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(RoomDayDiamondRewardRecvRecord::getPartitionId, partitionId)
.eq(RoomDayDiamondRewardRecvRecord::getRoomUid, roomUid)
.eq(RoomDayDiamondRewardRecvRecord::getStatDate, statDate);
return baseMapper.selectCount(queryWrapper);
}
public Map<String, RoomDayDiamondRewardRecvRecord> getUniqueKeyMap(Integer partitionId, String startDate, String endDate, List<Long> roomUids) {
List<RoomDayDiamondRewardRecvRecord> uniqueKeyList = baseMapper.getUniqueKeyList(partitionId, startDate, endDate, roomUids);
if (CollectionUtils.isEmpty(uniqueKeyList)) {