桌球争霸赛-上榜条件-对局时长

This commit is contained in:
khalil
2024-02-28 17:52:25 +08:00
parent 9975a2c233
commit d898bf4caa
4 changed files with 23 additions and 6 deletions

View File

@@ -0,0 +1,11 @@
package com.accompany.business.snooker.dto;
import com.accompany.business.common.dto.RoundRankActConfigDto;
import lombok.Data;
@Data
public class SnookerActConfigDto extends RoundRankActConfigDto {
private Integer durationCondition;
}

View File

@@ -7,6 +7,7 @@ import com.accompany.business.dto.miniGame.PlayerResultDto;
import com.accompany.business.event.MiniGameSettlementEvent;
import com.accompany.business.model.miniGame.MiniGame;
import com.accompany.business.service.miniGame.MiniGameService;
import com.accompany.business.snooker.dto.SnookerActConfigDto;
import com.accompany.business.snooker.service.SnookerRankService;
import com.accompany.common.utils.DateTimeUtil;
import lombok.extern.slf4j.Slf4j;
@@ -39,7 +40,7 @@ public class SnookerRankMiniGameListener implements ApplicationListener<MiniGame
Date gameEndTime = new Date((gameEndDto.getBattle_end_at().longValue() * 1000L));
LocalDateTime gameEndLocalDateTime = DateTimeUtil.converDateToLocalDateTime(gameEndTime);
RoundRankActConfigDto config = service.getConfig();
SnookerActConfigDto config = service.getConfig();
if (!config.inActTimeRange(gameEndLocalDateTime)){
return;
}
@@ -62,6 +63,11 @@ public class SnookerRankMiniGameListener implements ApplicationListener<MiniGame
}
Integer duration = gameEndDto.getBattle_duration();
if (null != config.getDurationCondition()
&& config.getDurationCondition().compareTo(duration) > 0){
return;
}
Optional<PlayerResultDto> winner = gameEndDto.getResults().stream()
.filter(playerResult-> winnerStatus == playerResult.getIs_win())
.findAny();

View File

@@ -1,12 +1,12 @@
package com.accompany.business.snooker.service;
import com.accompany.business.annual.dto.AnnualRoomConfigDto;
import com.accompany.business.base.rankobj.UsersRankObjectProvider;
import com.accompany.business.base.service.BaseRoundRankActService;
import com.accompany.business.common.constant.RankRoundEnum;
import com.accompany.business.common.dto.RoundRankActConfigDto;
import com.accompany.business.constant.SnookerActConstant;
import com.accompany.business.snooker.constant.SnookerActConstant;
import com.accompany.business.snooker.dto.SnookerActConfigDto;
import com.accompany.common.constant.AppEnum;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.exception.ServiceException;
@@ -47,12 +47,12 @@ public class SnookerRankService extends BaseRoundRankActService<UsersRankObjectP
return getConfig();
}
public RoundRankActConfigDto getConfig(){
public SnookerActConfigDto getConfig(){
String configStr = sysConfService.getSysConfValueById(SnookerActConstant.SysConfId.ACT_RANK_CONFIG);
if (!StringUtils.hasText(configStr)){
throw new ServiceException(BusiStatus.ALREADY_NOTEXISTS_CONFIG);
}
return JSON.parseObject(configStr, AnnualRoomConfigDto.class);
return JSON.parseObject(configStr, SnookerActConfigDto.class);
}
public void updateRank(Long uid, RankRoundEnum curRound, Integer duration) {