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;
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.SeriesQualifyingMatchRankDTO;
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.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.antai.sport.http.server.server.api.business.series.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
......@@ -62,4 +60,10 @@ public class SeriesController {
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;
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.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
......@@ -34,8 +36,11 @@ public interface SeriesBusinessMapper {
@Param("today") LocalDate today,
@Param("tomorrow") LocalDate tomorrow);
Integer getMySeriesQulifyingMatchRank(@Param("roundId") Long roundId,
@Param("areaId") Long areaId,
@Param("duration") Integer duration,
@Param("createTime") LocalDateTime createTime);
Integer getMySeriesQualifyingMatchRank(@Param("roundId") Long roundId,
@Param("areaId") Long areaId,
@Param("duration") Integer duration,
@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;
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.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.vo.SeriesApplyPreLoadVO;
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.antai.sport.http.server.server.api.business.series.vo.*;
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 javax.annotation.Resource;
......@@ -135,7 +136,7 @@ public class SeriesService {
SeriesRoundRank myRankData = seriesRoundRankMapper.selectOne(rankQuery);
if (myRankData != null) {
Integer myRank = seriesBusinessMapper.getMySeriesQulifyingMatchRank(roundId, areaId,
Integer myRank = seriesBusinessMapper.getMySeriesQualifyingMatchRank(roundId, areaId,
myRankData.getDuration(), myRankData.getCreateTime());
result.setMyRank(myRank);
}
......@@ -144,5 +145,13 @@ public class SeriesService {
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;
import java.time.LocalDateTime;
@Data
@ApiModel("用户训练详情关联排名")
@ApiModel("系列赛预选赛大区排名")
public class SeriesQualifyingMatchRankVO {
@ApiModelProperty("用户Id")
private Long playerId;
......@@ -17,8 +17,6 @@ public class SeriesQualifyingMatchRankVO {
private String nickname;
@ApiModelProperty("头像")
private String avatar;
@ApiModelProperty("比赛名次")
private Integer gameRank;
@ApiModelProperty("用时(秒)")
private Integer duration;
@ApiModelProperty("骑行总长度")
......@@ -55,8 +53,4 @@ public class SeriesQualifyingMatchRankVO {
private BigDecimal fiveMinutesWkg;
@ApiModelProperty("20分钟平均最佳功体比")
private BigDecimal twentyMinutesWkg;
@ApiModelProperty("得分")
private BigDecimal score;
@ApiModelProperty("比赛状态10:未完成比赛 20:完成比赛")
private Integer status;
}
......@@ -82,10 +82,20 @@
)
</select>
<select id="getMySeriesQulifyingMatchRank" resultType="java.lang.Integer">
<select id="getMySeriesQualifyingMatchRank" resultType="java.lang.Integer">
select count(1) + 1
from series_round_rank
where round_id = #{roundId} and area_id = #{areaId}
and (duration &lt; #{duration} or (duration = #{duration} and create_time &lt; #{createTime}))
</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>
\ 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