Commit 960e5f2b authored by liming's avatar liming

系列赛比赛编辑

parent 09cf390c
......@@ -4,10 +4,7 @@ import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.management.api.annotation.LoginUser;
import com.antai.sport.http.server.management.api.business.series.dto.*;
import com.antai.sport.http.server.management.api.business.series.service.SeriesService;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesListPageVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesMatchListVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesRoundDetailVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesRoundListVO;
import com.antai.sport.http.server.management.api.business.series.vo.*;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.sys.entity.SysUser;
import io.swagger.annotations.Api;
......@@ -126,4 +123,16 @@ public class SeriesController {
return success();
}
@GetMapping("round/match/{roundId}/{matchId}")
public ResponseEntity<Result<SeriesMatchDetailVO>> getSeriesMatchDetail(@PathVariable("roundId") Long roundId,
@PathVariable("matchId") Long matchId) {
return success(seriesService.getSeriesMatchDetail(roundId, matchId));
}
@PostMapping("round/match")
public ResponseEntity<Result> saveMatch(@RequestBody SeriesMatchSaveDTO dto) {
seriesService.saveMatch(dto);
return success();
}
}
package com.antai.sport.http.server.management.api.business.series.converter;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesAreaDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesMatchSaveDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesRoundSaveDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesSaveDTO;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesArea;
import com.antai.sport.http.server.repository.series.entity.SeriesMatch;
import com.antai.sport.http.server.repository.series.entity.SeriesRound;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
......@@ -22,4 +24,6 @@ public interface SeriesConverter {
@Mapping(source = "source.roundId", target = "id")
SeriesRound toSeriesRound(SeriesRoundSaveDTO source);
SeriesMatch toSeriesMatch(SeriesMatchSaveDTO source);
}
package com.antai.sport.http.server.management.api.business.series.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class SeriesMatchSaveDTO {
private Long id;
private Long roundId;
private Long areaId;
private String name;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime entryTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime endTime;
private String description;
}
......@@ -285,4 +285,40 @@ public class SeriesService {
match.setDeleted(1);
seriesMatchMapper.updateById(match);
}
public SeriesMatchDetailVO getSeriesMatchDetail(Long roundId, Long matchId) {
SeriesMatchDetailVO result = new SeriesMatchDetailVO();
SeriesRound seriesRound = seriesRoundMapper.selectById(roundId);
QueryWrapper<SeriesArea> areaQuery = new QueryWrapper<>();
areaQuery.lambda().eq(SeriesArea::getSeriesId, seriesRound.getSeriesId()).eq(SeriesArea::getDeleted, 0);
List<SeriesArea> areaList = seriesAreaMapper.selectList(areaQuery);
result.setAreaList(areaList);
SeriesMatch seriesMatch;
if (matchId == 0) {
seriesMatch = new SeriesMatch();
seriesMatch.setStatus(10);
} else {
seriesMatch = seriesMatchMapper.selectById(matchId);
}
result.setMatch(seriesMatch);
return result;
}
public void saveMatch(SeriesMatchSaveDTO dto) {
SeriesMatch match = seriesConverter.toSeriesMatch(dto);
if (match.getId() == 0) {
SeriesRound round = seriesRoundMapper.selectById(dto.getRoundId());
match.setSeriesId(round.getSeriesId());
match.setType(round.getType());
match.setMap(round.getMap());
match.setPath(round.getPath());
match.setDistance(round.getDistance());
match.setClimbDistance(round.getClimbDistance());
match.setStatus(10);
seriesMatchMapper.insert(match);
} else {
seriesMatchMapper.updateById(match);
}
}
}
package com.antai.sport.http.server.management.api.business.series.vo;
import com.antai.sport.http.server.repository.series.entity.SeriesArea;
import com.antai.sport.http.server.repository.series.entity.SeriesMatch;
import lombok.Data;
import java.util.List;
@Data
public class SeriesMatchDetailVO {
private SeriesMatch match;
private List<SeriesArea> areaList;
}
......@@ -19,4 +19,5 @@ public class SeriesRoundListVO {
private Boolean finished;
private Boolean resultConfirm;
private Boolean finalRound;
private Integer typeKey;
}
......@@ -18,7 +18,7 @@
</select>
<select id="getRoundListBySeriesId" resultType="com.antai.sport.http.server.management.api.business.series.vo.SeriesRoundListVO">
select t1.id,t1.name,if(t1.type = 10,'预选赛','淘汰赛') as type,
select t1.id,t1.name,if(t1.type = 10,'预选赛','淘汰赛') as type,t1.type as type_key,
date_format(t1.start_time,'%Y/%m/%d %H:%i') as start_time,
concat(t2.map_name,'-',t3.path_name) as path,
t1.distance,t1.climb_distance,t1.chance,
......
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