游戏薪资返回默认天数数据
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.accompany.business.service.guildgame;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.constant.guildgame.GameUsdOperateTypeEnum;
|
||||
import com.accompany.business.model.UserPurse;
|
||||
import com.accompany.business.model.guild.Guild;
|
||||
@@ -119,34 +120,50 @@ public class GameUsdService {
|
||||
|
||||
private List<GuildGameDayDetailVo> getGameDayDetailList(Long guildMemberId, String monthDate, Integer partitionId, ZonedDateTime nowZoneDateTime) {
|
||||
List<GuildGameDayDetailVo> resultList = new ArrayList<>();
|
||||
Map<String, GuildGameDayDetailVo> realMap = new HashMap<>();
|
||||
List<GameDiamondStatDay> guildGameMonthList = gameDiamondStatDayService.getGuildGameMonthList(guildMemberId, monthDate);
|
||||
if (CollectionUtils.isEmpty(guildGameMonthList)) {
|
||||
return resultList;
|
||||
if (CollectionUtils.isNotEmpty(guildGameMonthList)) {
|
||||
TreeMap<Integer, GameDiamondSalary> salaryMap = gameDiamondSalaryService.getDiamondSalaryMap(partitionId);
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
|
||||
ZonedDateTime thirtyDaysAgoInZone = nowZoneDateTime.minusDays(30);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
guildGameMonthList.forEach(gameDiamondStatDay -> {
|
||||
GuildGameDayDetailVo guildGameDayDetailVo = GuildGameDayDetailVo.builder()
|
||||
.statDate(gameDiamondStatDay.getStatDate())
|
||||
.playGameNum(gameDiamondStatDay.getPlayGameNum())
|
||||
.daySalary(salaryMap.headMap(gameDiamondStatDay.getPlayGameNum(), true).lastEntry().getValue().getBaseSalary())
|
||||
.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);
|
||||
} else {
|
||||
guildGameDayDetailVo.setReceiveStatus(expire ? 2 : gameDiamondStatDay.getReceiveStatus());
|
||||
}
|
||||
realMap.put(gameDiamondStatDay.getStatDate(), guildGameDayDetailVo);
|
||||
});
|
||||
}
|
||||
TreeMap<Integer, GameDiamondSalary> salaryMap = gameDiamondSalaryService.getDiamondSalaryMap(partitionId);
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
|
||||
ZonedDateTime thirtyDaysAgoInZone = nowZoneDateTime.minusDays(30);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
guildGameMonthList.forEach(gameDiamondStatDay -> {
|
||||
GuildGameDayDetailVo guildGameDayDetailVo = GuildGameDayDetailVo.builder()
|
||||
.statDate(gameDiamondStatDay.getStatDate())
|
||||
.playGameNum(gameDiamondStatDay.getPlayGameNum())
|
||||
.daySalary(salaryMap.headMap(gameDiamondStatDay.getPlayGameNum(), true).lastEntry().getValue().getBaseSalary())
|
||||
.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);
|
||||
} else {
|
||||
guildGameDayDetailVo.setReceiveStatus(expire ? 2 : gameDiamondStatDay.getReceiveStatus());
|
||||
}
|
||||
|
||||
Date monthBegin = DateUtil.parseDate(monthDate);
|
||||
Date now = DateUtil.parseDate(nowZoneDateTime.format(DateTimeUtil.dateFormatter));
|
||||
Date monthEnd = DateUtil.beginOfDay(DateUtil.endOfMonth(monthBegin));
|
||||
if (monthEnd.after(now)) {
|
||||
monthEnd = now;
|
||||
}
|
||||
while (monthEnd.after(monthBegin) || monthEnd.equals(monthBegin)){
|
||||
String date = DateUtil.formatDate(monthEnd);
|
||||
GuildGameDayDetailVo guildGameDayDetailVo = realMap.getOrDefault(date, GuildGameDayDetailVo.builder()
|
||||
.statDate(date)
|
||||
.playGameNum(0)
|
||||
.daySalary(BigDecimal.ZERO)
|
||||
.receiveStatus((byte) 0)
|
||||
.build());
|
||||
resultList.add(guildGameDayDetailVo);
|
||||
});
|
||||
monthEnd = DateUtil.offsetDay(monthEnd, -1);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user