Commit fa675605 authored by liming's avatar liming

系列赛预选赛赛区排名查询接口

parent 894d00ef
...@@ -2,11 +2,9 @@ package com.antai.sport.http.server.server.api.business.series.controller; ...@@ -2,11 +2,9 @@ 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.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.SeriesApplyPreLoadVO; import com.antai.sport.http.server.server.api.business.series.vo.*;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesDetailsVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesQualifyingMatchHomeVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -62,4 +60,10 @@ public class SeriesController { ...@@ -62,4 +60,10 @@ public class SeriesController {
return success(seriesService.getSeriesQualifyingMatchHomeData(roundId, areaId, sportUserId)); return success(seriesService.getSeriesQualifyingMatchHomeData(roundId, areaId, sportUserId));
} }
@PostMapping("qualifying/round/area/rank")
@ApiOperation(value = "6.查询预选赛轮次大区排名")
public ResponseEntity<Result<List<SeriesQualifyingMatchRankVO>>> getSeriesQualifyingMatchRank(@RequestBody SeriesQualifyingMatchRankDTO dto) {
return success(seriesService.getSeriesQualifyingMatchRank(dto));
}
} }
package com.antai.sport.http.server.server.api.business.series.mapper; package com.antai.sport.http.server.server.api.business.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesApply; import com.antai.sport.http.server.repository.series.entity.SeriesApply;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRankDTO;
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.metadata.IPage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -34,8 +36,11 @@ public interface SeriesBusinessMapper { ...@@ -34,8 +36,11 @@ public interface SeriesBusinessMapper {
@Param("today") LocalDate today, @Param("today") LocalDate today,
@Param("tomorrow") LocalDate tomorrow); @Param("tomorrow") LocalDate tomorrow);
Integer getMySeriesQulifyingMatchRank(@Param("roundId") Long roundId, Integer getMySeriesQualifyingMatchRank(@Param("roundId") Long roundId,
@Param("areaId") Long areaId, @Param("areaId") Long areaId,
@Param("duration") Integer duration, @Param("duration") Integer duration,
@Param("createTime") LocalDateTime createTime); @Param("createTime") LocalDateTime createTime);
IPage<SeriesQualifyingMatchRankVO> getSeriesQualifyingMatchRank(IPage<SeriesQualifyingMatchRankVO> page,
@Param("param") SeriesQualifyingMatchRankDTO param);
} }
...@@ -14,12 +14,13 @@ import com.antai.sport.http.server.repository.sport.mapper.SportUserMapper; ...@@ -14,12 +14,13 @@ 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.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.SeriesApplyPreLoadVO; import com.antai.sport.http.server.server.api.business.series.vo.*;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesDetailsVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesQualifyingMatchHomeVO;
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.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -135,7 +136,7 @@ public class SeriesService { ...@@ -135,7 +136,7 @@ public class SeriesService {
SeriesRoundRank myRankData = seriesRoundRankMapper.selectOne(rankQuery); SeriesRoundRank myRankData = seriesRoundRankMapper.selectOne(rankQuery);
if (myRankData != null) { if (myRankData != null) {
Integer myRank = seriesBusinessMapper.getMySeriesQulifyingMatchRank(roundId, areaId, Integer myRank = seriesBusinessMapper.getMySeriesQualifyingMatchRank(roundId, areaId,
myRankData.getDuration(), myRankData.getCreateTime()); myRankData.getDuration(), myRankData.getCreateTime());
result.setMyRank(myRank); result.setMyRank(myRank);
} }
...@@ -144,5 +145,13 @@ public class SeriesService { ...@@ -144,5 +145,13 @@ public class SeriesService {
return result; return result;
} }
public List<SeriesQualifyingMatchRankVO> getSeriesQualifyingMatchRank(SeriesQualifyingMatchRankDTO dto) {
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> result = seriesBusinessMapper.getSeriesQualifyingMatchRank(pageParam, dto);
return result.getRecords();
}
} }
...@@ -9,7 +9,7 @@ import java.math.BigDecimal; ...@@ -9,7 +9,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
@ApiModel("用户训练详情关联排名") @ApiModel("系列赛预选赛大区排名")
public class SeriesQualifyingMatchRankVO { public class SeriesQualifyingMatchRankVO {
@ApiModelProperty("用户Id") @ApiModelProperty("用户Id")
private Long playerId; private Long playerId;
...@@ -17,8 +17,6 @@ public class SeriesQualifyingMatchRankVO { ...@@ -17,8 +17,6 @@ public class SeriesQualifyingMatchRankVO {
private String nickname; private String nickname;
@ApiModelProperty("头像") @ApiModelProperty("头像")
private String avatar; private String avatar;
@ApiModelProperty("比赛名次")
private Integer gameRank;
@ApiModelProperty("用时(秒)") @ApiModelProperty("用时(秒)")
private Integer duration; private Integer duration;
@ApiModelProperty("骑行总长度") @ApiModelProperty("骑行总长度")
...@@ -55,8 +53,4 @@ public class SeriesQualifyingMatchRankVO { ...@@ -55,8 +53,4 @@ public class SeriesQualifyingMatchRankVO {
private BigDecimal fiveMinutesWkg; private BigDecimal fiveMinutesWkg;
@ApiModelProperty("20分钟平均最佳功体比") @ApiModelProperty("20分钟平均最佳功体比")
private BigDecimal twentyMinutesWkg; private BigDecimal twentyMinutesWkg;
@ApiModelProperty("得分")
private BigDecimal score;
@ApiModelProperty("比赛状态10:未完成比赛 20:完成比赛")
private Integer status;
} }
...@@ -82,10 +82,20 @@ ...@@ -82,10 +82,20 @@
) )
</select> </select>
<select id="getMySeriesQulifyingMatchRank" resultType="java.lang.Integer"> <select id="getMySeriesQualifyingMatchRank" resultType="java.lang.Integer">
select count(1) + 1 select count(1) + 1
from series_round_rank from series_round_rank
where round_id = #{roundId} and area_id = #{areaId} where round_id = #{roundId} and area_id = #{areaId}
and (duration &lt; #{duration} or (duration = #{duration} and create_time &lt; #{createTime})) and (duration &lt; #{duration} or (duration = #{duration} and create_time &lt; #{createTime}))
</select> </select>
<select id="getSeriesQualifyingMatchRank"
resultType="com.antai.sport.http.server.server.api.business.series.vo.SeriesQualifyingMatchRankVO">
select t2.*,t3.avatar,t3.nickname,t4.ftp,t4.heart_rate,t4.avg_heart_rate,t4.height
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
where t1.round_id = #{param.roundId} and t1.area_id = #{param.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