领取状态
This commit is contained in:
@@ -6,6 +6,7 @@ public class GuildGameConstant {
|
||||
byte HAS_RECEIVE = 0;
|
||||
byte RECEIVED = 1;
|
||||
byte EXPIRE = 2;
|
||||
byte RECEIVE_LIMIT = 4;//当天不可领取/不可领取
|
||||
byte NOT_RECEIVE = 3; //不可领取
|
||||
byte RECEIVE_LIMIT = 4;//当天不可领取
|
||||
}
|
||||
}
|
||||
|
@@ -36,7 +36,6 @@ import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
@@ -125,10 +124,6 @@ public class GameUsdService {
|
||||
List<GameDiamondStatDay> guildGameMonthList = gameDiamondStatDayService.getGuildGameMonthList(guildMemberId, monthDate);
|
||||
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 -> {
|
||||
BigDecimal baseSalary = salaryMap.headMap(gameDiamondStatDay.getPlayGameNum(), true).lastEntry().getValue().getBaseSalary();
|
||||
GuildGameDayDetailVo guildGameDayDetailVo = GuildGameDayDetailVo.builder()
|
||||
@@ -136,20 +131,6 @@ public class GameUsdService {
|
||||
.playGameNum(gameDiamondStatDay.getPlayGameNum())
|
||||
.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(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(gameDiamondStatDay.getReceiveStatus());
|
||||
}
|
||||
realMap.put(gameDiamondStatDay.getStatDate(), guildGameDayDetailVo);
|
||||
});
|
||||
}
|
||||
@@ -160,14 +141,31 @@ public class GameUsdService {
|
||||
if (monthEnd.after(now)) {
|
||||
monthEnd = now;
|
||||
}
|
||||
String nowDate = nowZoneDateTime.format(DateTimeUtil.dateFormatter);
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
ZonedDateTime thirtyDaysAgoInZone = nowZoneDateTime.minusDays(30);
|
||||
|
||||
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(GuildGameConstant.ReceiveStatus.RECEIVE_LIMIT)
|
||||
.receiveStatus(GuildGameConstant.ReceiveStatus.NOT_RECEIVE)
|
||||
.build());
|
||||
LocalDate localDate = LocalDate.parse(guildGameDayDetailVo.getStatDate(), DateTimeUtil.dateFormatter);
|
||||
ZonedDateTime statTimeInZone = localDate.atStartOfDay(ZoneId.of(partitionEnum.getZoneId()));
|
||||
boolean expire = statTimeInZone.isBefore(thirtyDaysAgoInZone);
|
||||
|
||||
if (nowDate.equalsIgnoreCase(guildGameDayDetailVo.getStatDate())) {
|
||||
guildGameDayDetailVo.setReceiveStatus(GuildGameConstant.ReceiveStatus.RECEIVE_LIMIT);
|
||||
} else if (expire) {
|
||||
guildGameDayDetailVo.setReceiveStatus(GuildGameConstant.ReceiveStatus.EXPIRE);
|
||||
} else if (guildGameDayDetailVo.equals(BigDecimal.ZERO)) {
|
||||
guildGameDayDetailVo.setReceiveStatus(GuildGameConstant.ReceiveStatus.NOT_RECEIVE);
|
||||
} else {
|
||||
guildGameDayDetailVo.setReceiveStatus(guildGameDayDetailVo.getReceiveStatus());
|
||||
}
|
||||
resultList.add(guildGameDayDetailVo);
|
||||
monthEnd = DateUtil.offsetDay(monthEnd, -1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user