Commit 894d00ef authored by liming's avatar liming

预选赛页面数据加载主页接口增加我的排名

parent ed9d006d
This diff is collapsed.
......@@ -37,6 +37,11 @@ public class SeriesRoundRank implements Serializable {
*/
private Long roundId;
/**
* 区域id
*/
private Long areaId;
/**
* 比赛id
*/
......@@ -47,6 +52,11 @@ public class SeriesRoundRank implements Serializable {
*/
private Long recordId;
/**
* 玩家id
*/
private Long sportUserId;
/**
* 比赛用时(秒)
*/
......
package com.antai.sport.http.server.server.api.business.series.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("预选赛赛区排名查询对象")
@Data
public class SeriesQualifyingMatchRankDTO {
@ApiModelProperty("页号")
private Integer pageNo;
@ApiModelProperty("分页大小")
private Integer pageSize;
@ApiModelProperty("轮次id")
private Long roundId;
@ApiModelProperty("区域id")
private Long areaId;
}
......@@ -5,6 +5,7 @@ import com.antai.sport.http.server.server.api.business.series.vo.*;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
public interface SeriesBusinessMapper {
......@@ -32,4 +33,9 @@ public interface SeriesBusinessMapper {
@Param("sportUserId") Long sportUserId,
@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);
}
......@@ -4,9 +4,11 @@ import com.antai.sport.http.server.common.exception.BusinessException;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesApply;
import com.antai.sport.http.server.repository.series.entity.SeriesRound;
import com.antai.sport.http.server.repository.series.entity.SeriesRoundRank;
import com.antai.sport.http.server.repository.series.mapper.SeriesApplyMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesRoundMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesRoundRankMapper;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
import com.antai.sport.http.server.repository.sport.mapper.SportUserMapper;
import com.antai.sport.http.server.server.api.business.base.mapper.BaseBusinessMapper;
......@@ -17,6 +19,7 @@ import com.antai.sport.http.server.server.api.business.series.vo.SeriesApplyPreL
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -35,6 +38,8 @@ public class SeriesService {
private SeriesRoundMapper seriesRoundMapper;
@Resource
private SportUserMapper sportUserMapper;
@Resource
private SeriesRoundRankMapper seriesRoundRankMapper;
@Resource
private SeriesConverter seriesConverter;
......@@ -121,9 +126,21 @@ public class SeriesService {
result.setChance(seriesRound.getChance());
result.setLeftChance(seriesRound.getChance() - seriesBusinessMapper.getSeriesQualifyingMatchLeftChance(roundId, sportUserId));
result.setBestResult(seriesBusinessMapper.getBestResult(roundId, sportUserId));
//查询我的排名
QueryWrapper<SeriesRoundRank> rankQuery = new QueryWrapper<>();
rankQuery.lambda().eq(SeriesRoundRank::getRoundId, roundId)
.eq(SeriesRoundRank::getAreaId, areaId)
.eq(SeriesRoundRank::getSportUserId, sportUserId);
SeriesRoundRank myRankData = seriesRoundRankMapper.selectOne(rankQuery);
if (myRankData != null) {
Integer myRank = seriesBusinessMapper.getMySeriesQulifyingMatchRank(roundId, areaId,
myRankData.getDuration(), myRankData.getCreateTime());
result.setMyRank(myRank);
}
}
}
return result;
}
......
......@@ -16,6 +16,8 @@ public class SeriesQualifyingMatchHomeVO {
private Integer leftChance;
@ApiModelProperty("最好成绩")
private Integer bestResult;
@ApiModelProperty("我的排名")
private Integer myRank;
@ApiModelProperty("用户赛区id,如果没有赛区id表示未报名")
private Long areaId;
@ApiModelProperty("地图名称")
......
......@@ -81,4 +81,11 @@
order by t1.start_time desc
)
</select>
<select id="getMySeriesQulifyingMatchRank" 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>
</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