Commit 936f8da2 authored by liming's avatar liming

预选赛成绩确认

parent 960e5f2b
...@@ -135,4 +135,16 @@ public class SeriesController { ...@@ -135,4 +135,16 @@ public class SeriesController {
return success(); return success();
} }
@PostMapping("match/qualifying/rank")
public ResponseEntity<Result<SeriesQualifyingMatchRankPageVO>> getSeriesQualifyingMatchRank(@RequestBody SeriesQualifyingMatchRankDTO dto) {
return success(seriesService.getSeriesQualifyingMatchRank(dto));
}
@GetMapping("record/result/confirm/status/{recordId}/{status}")
public ResponseEntity<Result> changeMatchRecordStatus(@PathVariable("recordId") Long recordId,
@PathVariable("status") Integer status) {
seriesService.changeMatchRecordStatus(recordId, status);
return success();
}
} }
package com.antai.sport.http.server.management.api.business.series.dto;
import lombok.Data;
@Data
public class SeriesQualifyingMatchRankDTO {
private Integer pageNo;
private Integer pageSize;
private Long roundId;
private Long areaId;
}
...@@ -3,6 +3,7 @@ package com.antai.sport.http.server.management.api.business.series.mapper; ...@@ -3,6 +3,7 @@ package com.antai.sport.http.server.management.api.business.series.mapper;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesListQueryDTO; import com.antai.sport.http.server.management.api.business.series.dto.SeriesListQueryDTO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesListVO; import com.antai.sport.http.server.management.api.business.series.vo.SeriesListVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesMatchListVO; import com.antai.sport.http.server.management.api.business.series.vo.SeriesMatchListVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesQualifyingMatchRankVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesRoundListVO; import com.antai.sport.http.server.management.api.business.series.vo.SeriesRoundListVO;
import com.antai.sport.http.server.repository.series.entity.SeriesRound; import com.antai.sport.http.server.repository.series.entity.SeriesRound;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -19,4 +20,8 @@ public interface SeriesBusinessMapper { ...@@ -19,4 +20,8 @@ public interface SeriesBusinessMapper {
List<SeriesRoundListVO> getRoundListBySeriesId(@Param("seriesId") Long seriesId); List<SeriesRoundListVO> getRoundListBySeriesId(@Param("seriesId") Long seriesId);
List<SeriesMatchListVO> getMatchByRoundId(@Param("roundId") Long roundId); List<SeriesMatchListVO> getMatchByRoundId(@Param("roundId") Long roundId);
IPage<SeriesQualifyingMatchRankVO> getSeriesQualifyingMatchRank(IPage<SeriesQualifyingMatchRankVO> page,
@Param("roundId") Long roundId,
@Param("areaId") Long areaId);
} }
...@@ -10,14 +10,8 @@ import com.antai.sport.http.server.repository.map.entity.Map; ...@@ -10,14 +10,8 @@ import com.antai.sport.http.server.repository.map.entity.Map;
import com.antai.sport.http.server.repository.map.entity.MapPath; import com.antai.sport.http.server.repository.map.entity.MapPath;
import com.antai.sport.http.server.repository.map.mapper.MapMapper; import com.antai.sport.http.server.repository.map.mapper.MapMapper;
import com.antai.sport.http.server.repository.map.mapper.MapPathMapper; import com.antai.sport.http.server.repository.map.mapper.MapPathMapper;
import com.antai.sport.http.server.repository.series.entity.Series; import com.antai.sport.http.server.repository.series.entity.*;
import com.antai.sport.http.server.repository.series.entity.SeriesArea; import com.antai.sport.http.server.repository.series.mapper.*;
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.mapper.SeriesAreaMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesMatchMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesRoundMapper;
import com.antai.sport.http.server.repository.sys.entity.SysUser; import com.antai.sport.http.server.repository.sys.entity.SysUser;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -49,6 +43,8 @@ public class SeriesService { ...@@ -49,6 +43,8 @@ public class SeriesService {
private MapPathMapper mapPathMapper; private MapPathMapper mapPathMapper;
@Resource @Resource
private SeriesMatchMapper seriesMatchMapper; private SeriesMatchMapper seriesMatchMapper;
@Resource
private SeriesMatchPlayerRecordMapper seriesMatchPlayerRecordMapper;
@Resource @Resource
private SeriesConverter seriesConverter; private SeriesConverter seriesConverter;
...@@ -319,6 +315,26 @@ public class SeriesService { ...@@ -319,6 +315,26 @@ public class SeriesService {
} else { } else {
seriesMatchMapper.updateById(match); seriesMatchMapper.updateById(match);
} }
}
public SeriesQualifyingMatchRankPageVO getSeriesQualifyingMatchRank(SeriesQualifyingMatchRankDTO dto) {
SeriesQualifyingMatchRankPageVO result = new SeriesQualifyingMatchRankPageVO();
result.setPageNo(dto.getPageNo());
Page<SeriesQualifyingMatchRankVO> pageParam = new Page<>(dto.getPageNo(), dto.getPageSize());
pageParam.addOrder(new OrderItem("t1.duration", true));
pageParam.addOrder(new OrderItem("t1.create_time", true));
pageParam.addOrder(new OrderItem("t1.id", true));
IPage<SeriesQualifyingMatchRankVO> rankPage = seriesBusinessMapper
.getSeriesQualifyingMatchRank(pageParam, dto.getRoundId(), dto.getAreaId());
result.setData(rankPage.getRecords());
result.setTotalCount(rankPage.getTotal());
return result;
} }
public void changeMatchRecordStatus(Long recordId, Integer status) {
SeriesMatchPlayerRecord record = seriesMatchPlayerRecordMapper.selectById(recordId);
record.setResultConfirmStatus(status);
seriesMatchPlayerRecordMapper.updateById(record);
}
} }
package com.antai.sport.http.server.management.api.business.series.vo;
import lombok.Data;
import java.util.List;
@Data
public class SeriesQualifyingMatchRankPageVO {
List<SeriesQualifyingMatchRankVO> data;
private Integer pageNo;
private Long totalCount;
}
package com.antai.sport.http.server.management.api.business.series.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ApiModel("系列赛预选赛大区排名")
public class SeriesQualifyingMatchRankVO {
private Long id;
@ApiModelProperty("用户Id")
private Long playerId;
private String realName;
private String idCard;
private String phone;
private String sex;
@ApiModelProperty("昵称")
private String nickname;
@ApiModelProperty("头像")
private String avatar;
@ApiModelProperty("用时(秒)")
private Integer duration;
@ApiModelProperty("骑行总长度")
private BigDecimal distance;
@ApiModelProperty("爬坡高度")
private BigDecimal climbDistance;
@ApiModelProperty("平均功率")
private BigDecimal avgFtp;
@ApiModelProperty("平均速度")
private BigDecimal avgSpeed;
@ApiModelProperty("完成时间 yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public LocalDateTime finishTime;
@ApiModelProperty("体重")
private BigDecimal weight;
@ApiModelProperty("玩家当时ftp")
private Integer ftp;
@ApiModelProperty("玩家当时身高")
private BigDecimal height;
@ApiModelProperty("玩家当时设置最大心率")
private Integer heartRate;
@ApiModelProperty("玩家平均心率")
private Integer avgHeartRate;
@ApiModelProperty("1分钟平均最佳FTP")
private BigDecimal oneMinutesFtp;
@ApiModelProperty("5分钟平均最佳FTP")
private BigDecimal fiveMinutesFtp;
@ApiModelProperty("20分钟平均最佳FTP")
private BigDecimal twentyMinutesFtp;
@ApiModelProperty("1分钟平均最佳功体比")
private BigDecimal oneMinutesWkg;
@ApiModelProperty("5分钟平均最佳功体比")
private BigDecimal fiveMinutesWkg;
@ApiModelProperty("20分钟平均最佳功体比")
private BigDecimal twentyMinutesWkg;
@ApiModelProperty("成绩确认状态 10 待确认 20 无效 30已确认未晋级 40晋级")
private Integer resultConfirmStatus;
private Integer status;
}
...@@ -43,4 +43,16 @@ ...@@ -43,4 +43,16 @@
where t1.deleted = 0 and t1.round_id = #{roundId} where t1.deleted = 0 and t1.round_id = #{roundId}
order by id desc order by id desc
</select> </select>
<select id="getSeriesQualifyingMatchRank"
resultType="com.antai.sport.http.server.management.api.business.series.vo.SeriesQualifyingMatchRankVO">
select t2.*,t3.avatar,t3.nickname,t4.ftp,t4.heart_rate,t4.avg_heart_rate,t4.height,t5.name as real_name,
t5.phone,t5.id_card,if(t5.sex=1,'男','女') as sex
from series_round_rank t1
left join series_match_player_record t2 on t1.record_id = t2.id
left join sport_user t3 on t1.sport_user_id = t3.id
left join sport_user_training_log t4 on t4.game_mode = 30 and t1.record_id = t4.record_id
left join series_apply t5 on t1.series_id = t5.series_id and t1.sport_user_id = t5.sport_user_id
where t1.round_id = #{roundId} and t1.area_id = #{areaId}
</select>
</mapper> </mapper>
\ 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