幸运数字-结算-endTime

This commit is contained in:
khalil
2025-05-09 12:19:03 +08:00
parent 2567f2c47c
commit 90d46ad2a4
3 changed files with 16 additions and 5 deletions

View File

@@ -45,7 +45,6 @@ public class LuckyNumberActPlayerRecordService extends ServiceImpl<LuckyNumberAc
public BigDecimal getJackpot(String date, Long uid, Integer partitionId) {
LuckyNumberActInputRecord inputRecord = getOne(Wrappers.<LuckyNumberActInputRecord>lambdaQuery()
.select(LuckyNumberActInputRecord::getNumberList)
.eq(LuckyNumberActInputRecord::getDate, date)
.eq(LuckyNumberActInputRecord::getUid, uid)
.eq(LuckyNumberActInputRecord::getPartitionId, partitionId), false);

View File

@@ -59,9 +59,10 @@ public class LuckyNumberActRoundService extends ServiceImpl<LuckyNumberActRoundM
.collect(Collectors.toMap(LuckyNumberActRound::getDate, v -> v));
}
public boolean saveLuckyNumber(String date, Integer partitionId, int luckyNumber) {
public boolean saveLuckyNumber(String date, Integer partitionId, int luckyNumber, String endTime) {
return update(Wrappers.<LuckyNumberActRound>lambdaUpdate()
.set(LuckyNumberActRound::getLuckyNumber, luckyNumber)
.set(LuckyNumberActRound::getEndTime, endTime)
.set(LuckyNumberActRound::getUpdateTime, new Date())
.eq(LuckyNumberActRound::getDate, date)
.eq(LuckyNumberActRound::getPartitionId, partitionId)

View File

@@ -35,6 +35,7 @@ import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -134,7 +135,10 @@ public class LuckyNumberActService {
LuckyNumberActRoundInputVo vo = new LuckyNumberActRoundInputVo();
vo.setDate(record.getDate());
vo.setEndTime(round.getEndTime());
ZonedDateTime zdt = ZonedDateTime.parse(round.getEndTime(), DateTimeUtil.zoneDatetimeFormatter);
vo.setEndTime(zdt.format(DateTimeUtil.dateHourFormatter));
vo.setLuckyNumber(round.getLuckyNumber());
vo.setNumberList(record.getNumberList());
@@ -255,6 +259,9 @@ public class LuckyNumberActService {
}
public void settlement(String date, Integer partitionId) {
LuckyNumberActConfig config = getConfig();
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
LuckyNumberActRound round = roundService.getOrDefault(date, partitionId);
if (null != round.getLuckyNumber()){
throw new ServiceException(BusiStatus.SERVERBUSY);
@@ -263,7 +270,9 @@ public class LuckyNumberActService {
int luckyNumber = RandomUtil.randomByRange(1, 99);
log.info("[luckyNumber] luckyNumber {} date {} partitionId {}", luckyNumber, date, partitionId);
if (!roundService.saveLuckyNumber(date, partitionId, luckyNumber)){
String endTime = LocalDateTime.of(LocalDate.parse(date, DateTimeUtil.dateFormatter), config.getRoundEndTime())
.atZone(ZoneId.of(partitionEnum.getZoneId())).format(DateTimeUtil.zoneDatetimeFormatter);
if (!roundService.saveLuckyNumber(date, partitionId, luckyNumber, endTime)){
log.error("[luckyNumber] saveLuckyNumber failure !!! date {} partitionId {} luckyNumber {}", luckyNumber, date, partitionId);
throw new ServiceException(BusiStatus.SERVERBUSY);
}
@@ -336,7 +345,9 @@ public class LuckyNumberActService {
}
//将剩余延续到下一轮
String nextRoundDate = DateTimeUtil.convertDate(DateTimeUtil.addDays(DateTimeUtil.convertStrToDate(round.getDate()), 1), DateTimeUtil.DEFAULT_DATE_PATTERN);
String nextRoundDate = DateTimeUtil.convertDate(
DateTimeUtil.addDays(DateTimeUtil.convertStrToDate(round.getDate(), DateTimeUtil.DEFAULT_DATE_PATTERN), 1),
DateTimeUtil.DEFAULT_DATE_PATTERN);
roundService.updateJackpot(nextRoundDate, partitionId, round.getJackpot());
}