Commit 960e5f2b authored by liming's avatar liming

系列赛比赛编辑

parent 09cf390c
...@@ -4,10 +4,7 @@ import com.antai.sport.http.server.common.base.Result; ...@@ -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.annotation.LoginUser;
import com.antai.sport.http.server.management.api.business.series.dto.*; 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.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.*;
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.repository.series.entity.Series; import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.sys.entity.SysUser; import com.antai.sport.http.server.repository.sys.entity.SysUser;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -126,4 +123,16 @@ public class SeriesController { ...@@ -126,4 +123,16 @@ public class SeriesController {
return success(); 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; 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.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.SeriesRoundSaveDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesSaveDTO; 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.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesArea; 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 com.antai.sport.http.server.repository.series.entity.SeriesRound;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
...@@ -22,4 +24,6 @@ public interface SeriesConverter { ...@@ -22,4 +24,6 @@ public interface SeriesConverter {
@Mapping(source = "source.roundId", target = "id") @Mapping(source = "source.roundId", target = "id")
SeriesRound toSeriesRound(SeriesRoundSaveDTO source); 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 { ...@@ -285,4 +285,40 @@ public class SeriesService {
match.setDeleted(1); match.setDeleted(1);
seriesMatchMapper.updateById(match); 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 { ...@@ -19,4 +19,5 @@ public class SeriesRoundListVO {
private Boolean finished; private Boolean finished;
private Boolean resultConfirm; private Boolean resultConfirm;
private Boolean finalRound; private Boolean finalRound;
private Integer typeKey;
} }
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</select> </select>
<select id="getRoundListBySeriesId" resultType="com.antai.sport.http.server.management.api.business.series.vo.SeriesRoundListVO"> <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, date_format(t1.start_time,'%Y/%m/%d %H:%i') as start_time,
concat(t2.map_name,'-',t3.path_name) as path, concat(t2.map_name,'-',t3.path_name) as path,
t1.distance,t1.climb_distance,t1.chance, 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