Commit 94452eaf authored by liming's avatar liming

系列赛预选赛骑行记录初始化

parent db21e652
package com.antai.sport.http.server.constants;
public class SeriesMatchPlayerRecordStatus {
//未结束
public final static Integer UNFINISHED = 10;
//已结束
public final static Integer FINISHED = 20;
}
......@@ -3,6 +3,7 @@ package com.antai.sport.http.server.server.api.business.series.controller;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesApplyDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRankDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRecordInitDTO;
import com.antai.sport.http.server.server.api.business.series.service.SeriesService;
import com.antai.sport.http.server.server.api.business.series.vo.*;
import io.swagger.annotations.Api;
......@@ -30,17 +31,14 @@ public class SeriesController {
@GetMapping("{id}/{sportUserId}")
@ApiOperation(value = "2.查询系列赛详情")
public ResponseEntity<Result<SeriesDetailsVO>> getSeriesDetails(
@PathVariable("id") Long id,
@PathVariable("sportUserId") Long sportUserId) {
public ResponseEntity<Result<SeriesDetailsVO>> getSeriesDetails(@PathVariable("id") Long id, @PathVariable(
"sportUserId") Long sportUserId) {
return success(seriesService.getSeriesDetails(id, sportUserId));
}
@GetMapping("apply/preload/{seriesId}/{sportUserId}")
@ApiOperation(value = "3.预加载报名信息方法")
public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo(
@PathVariable("seriesId") Long seriesId,
@PathVariable("sportUserId") Long sportUserId) {
public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo(@PathVariable("seriesId") Long seriesId, @PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeresApplyPreLoadInfo(sportUserId, seriesId));
}
......@@ -53,10 +51,8 @@ public class SeriesController {
@GetMapping("qualifying/{roundId}/{areaId}/{sportUserId}")
@ApiOperation(value = "5.查询预选赛轮次主页数据")
public ResponseEntity<Result<SeriesQualifyingMatchHomeVO>> getSeriesQualifyingMatchHomeData(
@PathVariable("roundId") Long roundId,
@PathVariable("areaId") Long areaId,
@PathVariable("sportUserId") Long sportUserId) {
public ResponseEntity<Result<SeriesQualifyingMatchHomeVO>> getSeriesQualifyingMatchHomeData(@PathVariable(
"roundId") Long roundId, @PathVariable("areaId") Long areaId, @PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeriesQualifyingMatchHomeData(roundId, areaId, sportUserId));
}
......@@ -66,4 +62,11 @@ public class SeriesController {
return success(seriesService.getSeriesQualifyingMatchRank(dto));
}
@ApiOperation("7.预选赛加入比赛信息初始化")
@PostMapping("qualifying/match/init")
public ResponseEntity<Result<SeriesMatchRecordInitVO>> seriesQualifyingMatchRecordInit(@RequestBody SeriesQualifyingMatchRecordInitDTO dto) {
return success(seriesService.seriesQualifyingMatchRecordInit(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 SeriesQualifyingMatchRecordInitDTO {
@ApiModelProperty("比赛id")
private Long matchId;
@ApiModelProperty("玩家id")
private Long sportUserId;
}
package com.antai.sport.http.server.server.api.business.series.service;
import com.antai.sport.http.server.common.exception.BusinessException;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesApply;
import com.antai.sport.http.server.repository.series.entity.SeriesRound;
import com.antai.sport.http.server.repository.series.entity.SeriesRoundRank;
import com.antai.sport.http.server.repository.series.mapper.SeriesApplyMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesRoundMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesRoundRankMapper;
import com.antai.sport.http.server.constants.GameMode;
import com.antai.sport.http.server.constants.SeriesMatchPlayerRecordStatus;
import com.antai.sport.http.server.constants.SportType;
import com.antai.sport.http.server.repository.series.entity.*;
import com.antai.sport.http.server.repository.series.mapper.*;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
import com.antai.sport.http.server.repository.sport.mapper.SportUserMapper;
import com.antai.sport.http.server.server.api.business.base.mapper.BaseBusinessMapper;
import com.antai.sport.http.server.server.api.business.series.converter.SeriesConverter;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesApplyDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRankDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRecordInitDTO;
import com.antai.sport.http.server.server.api.business.series.mapper.SeriesBusinessMapper;
import com.antai.sport.http.server.server.api.business.series.vo.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -41,6 +39,10 @@ public class SeriesService {
private SportUserMapper sportUserMapper;
@Resource
private SeriesRoundRankMapper seriesRoundRankMapper;
@Resource
private SeriesMatchPlayerRecordMapper seriesMatchPlayerRecordMapper;
@Resource
private SeriesMatchMapper seriesMatchMapper;
@Resource
private SeriesConverter seriesConverter;
......@@ -154,4 +156,35 @@ public class SeriesService {
return result.getRecords();
}
public SeriesMatchRecordInitVO seriesQualifyingMatchRecordInit(SeriesQualifyingMatchRecordInitDTO dto) {
SeriesMatch seriesMatch = seriesMatchMapper.selectById(dto.getMatchId());
SeriesApply seriesApply = seriesBusinessMapper.getSeriesApply(seriesMatch.getSeriesId(), dto.getSportUserId());
if (!seriesApply.getAreaId().equals(seriesMatch.getAreaId())) {
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("您已初始化比赛数据,不能重复初始化");
}
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.setFinished(false);
seriesMatchPlayerRecordMapper.insert(record);
result.setRecordId(record.getId());
return result;
}
}
package com.antai.sport.http.server.server.api.business.series.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("系列赛玩家记录初始化响应对象")
@Data
public class SeriesMatchRecordInitVO {
@ApiModelProperty("记录id")
private Long recordId;
@ApiModelProperty("运动类型")
private Integer sportType;
@ApiModelProperty("游戏模式")
private Integer gameMode;
}
\ No newline at end of file
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