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; ...@@ -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.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.SeriesApplyDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRankDTO; 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.service.SeriesService;
import com.antai.sport.http.server.server.api.business.series.vo.*; import com.antai.sport.http.server.server.api.business.series.vo.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -30,17 +31,14 @@ public class SeriesController { ...@@ -30,17 +31,14 @@ public class SeriesController {
@GetMapping("{id}/{sportUserId}") @GetMapping("{id}/{sportUserId}")
@ApiOperation(value = "2.查询系列赛详情") @ApiOperation(value = "2.查询系列赛详情")
public ResponseEntity<Result<SeriesDetailsVO>> getSeriesDetails( public ResponseEntity<Result<SeriesDetailsVO>> getSeriesDetails(@PathVariable("id") Long id, @PathVariable(
@PathVariable("id") Long id, "sportUserId") Long sportUserId) {
@PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeriesDetails(id, sportUserId)); return success(seriesService.getSeriesDetails(id, sportUserId));
} }
@GetMapping("apply/preload/{seriesId}/{sportUserId}") @GetMapping("apply/preload/{seriesId}/{sportUserId}")
@ApiOperation(value = "3.预加载报名信息方法") @ApiOperation(value = "3.预加载报名信息方法")
public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo( public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo(@PathVariable("seriesId") Long seriesId, @PathVariable("sportUserId") Long sportUserId) {
@PathVariable("seriesId") Long seriesId,
@PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeresApplyPreLoadInfo(sportUserId, seriesId)); return success(seriesService.getSeresApplyPreLoadInfo(sportUserId, seriesId));
} }
...@@ -53,10 +51,8 @@ public class SeriesController { ...@@ -53,10 +51,8 @@ public class SeriesController {
@GetMapping("qualifying/{roundId}/{areaId}/{sportUserId}") @GetMapping("qualifying/{roundId}/{areaId}/{sportUserId}")
@ApiOperation(value = "5.查询预选赛轮次主页数据") @ApiOperation(value = "5.查询预选赛轮次主页数据")
public ResponseEntity<Result<SeriesQualifyingMatchHomeVO>> getSeriesQualifyingMatchHomeData( public ResponseEntity<Result<SeriesQualifyingMatchHomeVO>> getSeriesQualifyingMatchHomeData(@PathVariable(
@PathVariable("roundId") Long roundId, "roundId") Long roundId, @PathVariable("areaId") Long areaId, @PathVariable("sportUserId") Long sportUserId) {
@PathVariable("areaId") Long areaId,
@PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeriesQualifyingMatchHomeData(roundId, areaId, sportUserId)); return success(seriesService.getSeriesQualifyingMatchHomeData(roundId, areaId, sportUserId));
} }
...@@ -66,4 +62,11 @@ public class SeriesController { ...@@ -66,4 +62,11 @@ public class SeriesController {
return success(seriesService.getSeriesQualifyingMatchRank(dto)); 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; 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.common.exception.BusinessException;
import com.antai.sport.http.server.repository.series.entity.Series; import com.antai.sport.http.server.constants.GameMode;
import com.antai.sport.http.server.repository.series.entity.SeriesApply; import com.antai.sport.http.server.constants.SeriesMatchPlayerRecordStatus;
import com.antai.sport.http.server.repository.series.entity.SeriesRound; import com.antai.sport.http.server.constants.SportType;
import com.antai.sport.http.server.repository.series.entity.SeriesRoundRank; import com.antai.sport.http.server.repository.series.entity.*;
import com.antai.sport.http.server.repository.series.mapper.SeriesApplyMapper; import com.antai.sport.http.server.repository.series.mapper.*;
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.repository.sport.entity.SportUser; 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.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.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.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.SeriesApplyDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRankDTO; 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.mapper.SeriesBusinessMapper;
import com.antai.sport.http.server.server.api.business.series.vo.*; import com.antai.sport.http.server.server.api.business.series.vo.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -41,6 +39,10 @@ public class SeriesService { ...@@ -41,6 +39,10 @@ public class SeriesService {
private SportUserMapper sportUserMapper; private SportUserMapper sportUserMapper;
@Resource @Resource
private SeriesRoundRankMapper seriesRoundRankMapper; private SeriesRoundRankMapper seriesRoundRankMapper;
@Resource
private SeriesMatchPlayerRecordMapper seriesMatchPlayerRecordMapper;
@Resource
private SeriesMatchMapper seriesMatchMapper;
@Resource @Resource
private SeriesConverter seriesConverter; private SeriesConverter seriesConverter;
...@@ -154,4 +156,35 @@ public class SeriesService { ...@@ -154,4 +156,35 @@ public class SeriesService {
return result.getRecords(); 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