Commit 9e8e233e authored by liming's avatar liming

系列赛淘汰赛数据初始化

parent ea591392
This diff is collapsed.
......@@ -94,5 +94,11 @@ public class SeriesController {
return success(seriesService.getSeriesKnockoutMatchRankList(dto));
}
@ApiOperation("11.淘汰赛玩家数据初始化")
@PostMapping("knockout/match/init")
public ResponseEntity<Result<SeriesMatchRecordInitVO>> seriesKnockoutMatchRecordInit(@RequestBody SeriesKnockoutMatchRecordInitDTO dto) {
return success(seriesService.seriesKnockoutMatchRecordInit(dto));
}
}
package com.antai.sport.http.server.server.api.business.series.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("系列赛淘汰赛玩家记录初始化")
@Data
public class SeriesKnockoutMatchRecordInitDTO {
@ApiModelProperty("比赛id")
private Long matchId;
@ApiModelProperty("玩家id")
private Long sportUserId;
}
......@@ -43,6 +43,8 @@ public class SeriesService {
private SeriesMatchPlayerRecordMapper seriesMatchPlayerRecordMapper;
@Resource
private SeriesMatchMapper seriesMatchMapper;
@Resource
private SeriesMatchFinalistsMapper seriesMatchFinalistsMapper;
@Resource
private SeriesConverter seriesConverter;
......@@ -312,4 +314,43 @@ public class SeriesService {
return result.getRecords();
}
/**
* 淘汰赛数据初始化
*
* @param dto
* @return
*/
public SeriesMatchRecordInitVO seriesKnockoutMatchRecordInit(SeriesKnockoutMatchRecordInitDTO dto) {
QueryWrapper<SeriesMatchFinalists> finalistsQuery = new QueryWrapper<>();
finalistsQuery.lambda().eq(SeriesMatchFinalists::getMatchId,dto.getMatchId())
.eq(SeriesMatchFinalists::getSportUserId,dto.getSportUserId());
SeriesMatchFinalists finalists = seriesMatchFinalistsMapper.selectOne(finalistsQuery);
if(finalists == null){
throw new BusinessException("抱歉,您没有入围当前比赛!");
}
SeriesMatchRecordInitVO result = new SeriesMatchRecordInitVO();
result.setSportType(SportType.BICYCLE);
result.setGameMode(GameMode.SERIES_MATCH);
QueryWrapper<SeriesMatchPlayerRecord> countQuery = new QueryWrapper<>();
countQuery.lambda().eq(SeriesMatchPlayerRecord::getMatchId, dto.getMatchId())
.eq(SeriesMatchPlayerRecord::getPlayerId, dto.getSportUserId());
Boolean isRepeat = seriesMatchPlayerRecordMapper.selectCount(countQuery) > 0;
if (isRepeat) {
throw new BusinessException("您已初始化比赛数据,不能重复初始化");
}
SeriesMatch seriesMatch = seriesMatchMapper.selectById(dto.getMatchId());
SeriesMatchPlayerRecord record = new SeriesMatchPlayerRecord();
record.setSeriesId(seriesMatch.getSeriesId());
record.setRoundId(seriesMatch.getRoundId());
record.setMatchId(dto.getMatchId());
record.setPlayerId(dto.getSportUserId());
record.setEntryTime(LocalDateTime.now());
record.setStatus(SeriesMatchPlayerRecordStatus.UNFINISHED);
record.setResultConfirmStatus(SeriesMatchPlayerRecordConfirmStatus.UN_CONFIRM);
record.setFinished(false);
seriesMatchPlayerRecordMapper.insert(record);
result.setRecordId(record.getId());
return result;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment