游戏薪资返回默认天数数据fixed

This commit is contained in:
2025-08-07 10:15:05 +08:00
parent 1a6d4558cd
commit 8e0ac433a0
2 changed files with 23 additions and 5 deletions

View File

@@ -0,0 +1,11 @@
package com.accompany.business.constant.guildgame;
public class GuildGameConstant {
public interface ReceiveStatus {
byte HAS_RECEIVE = 0;
byte RECEIVED = 1;
byte EXPIRE = 2;
byte RECEIVE_LIMIT = 4;//当天不可领取/不可领取
}
}

View File

@@ -2,6 +2,7 @@ package com.accompany.business.service.guildgame;
import cn.hutool.core.date.DateUtil;
import com.accompany.business.constant.guildgame.GameUsdOperateTypeEnum;
import com.accompany.business.constant.guildgame.GuildGameConstant;
import com.accompany.business.model.UserPurse;
import com.accompany.business.model.guild.Guild;
import com.accompany.business.model.guild.GuildMember;
@@ -108,7 +109,7 @@ public class GameUsdService {
guildGameDayVo.setDayDetailList(this.getGameDayDetailList(guildMember.getId(), monthDate, partitionId, nowZoneDateTime));
guildGameDayVo.setReceivedSalary(guildGameDayVo.getDayDetailList().stream()
.filter(x -> x.getReceiveStatus() == 1)
.filter(x -> x.getReceiveStatus() == GuildGameConstant.ReceiveStatus.RECEIVED)
.map(GuildGameDayDetailVo::getDaySalary)
.reduce(BigDecimal.ZERO, BigDecimal::add));
guildGameDayVo.setTotalPlayGameNum(guildGameDayVo.getDayDetailList().stream()
@@ -129,19 +130,25 @@ public class GameUsdService {
ZonedDateTime thirtyDaysAgoInZone = nowZoneDateTime.minusDays(30);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
guildGameMonthList.forEach(gameDiamondStatDay -> {
BigDecimal baseSalary = salaryMap.headMap(gameDiamondStatDay.getPlayGameNum(), true).lastEntry().getValue().getBaseSalary();
GuildGameDayDetailVo guildGameDayDetailVo = GuildGameDayDetailVo.builder()
.statDate(gameDiamondStatDay.getStatDate())
.playGameNum(gameDiamondStatDay.getPlayGameNum())
.daySalary(salaryMap.headMap(gameDiamondStatDay.getPlayGameNum(), true).lastEntry().getValue().getBaseSalary())
.daySalary(baseSalary)
.build();
LocalDate localDate = LocalDate.parse(gameDiamondStatDay.getStatDate(), formatter);
ZonedDateTime statTimeInZone = localDate.atStartOfDay(ZoneId.of(partitionEnum.getZoneId()));
boolean expire = statTimeInZone.isBefore(thirtyDaysAgoInZone);
if (nowZoneDateTime.format(DateTimeUtil.dateFormatter).equalsIgnoreCase(gameDiamondStatDay.getStatDate())) {
guildGameDayDetailVo.setReceiveStatus((byte) 4);
guildGameDayDetailVo.setReceiveStatus(GuildGameConstant.ReceiveStatus.RECEIVE_LIMIT);
} else if (expire) {
guildGameDayDetailVo.setReceiveStatus(GuildGameConstant.ReceiveStatus.EXPIRE);
} else if (baseSalary.equals(BigDecimal.ZERO)) {
guildGameDayDetailVo.setReceiveStatus(GuildGameConstant.ReceiveStatus.RECEIVE_LIMIT);
} else {
guildGameDayDetailVo.setReceiveStatus(expire ? 2 : gameDiamondStatDay.getReceiveStatus());
guildGameDayDetailVo.setReceiveStatus(gameDiamondStatDay.getReceiveStatus());
}
realMap.put(gameDiamondStatDay.getStatDate(), guildGameDayDetailVo);
});
@@ -159,7 +166,7 @@ public class GameUsdService {
.statDate(date)
.playGameNum(0)
.daySalary(BigDecimal.ZERO)
.receiveStatus((byte) 0)
.receiveStatus(GuildGameConstant.ReceiveStatus.RECEIVE_LIMIT)
.build());
resultList.add(guildGameDayDetailVo);
monthEnd = DateUtil.offsetDay(monthEnd, -1);