Commit 894d00ef authored by liming's avatar liming

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

parent ed9d006d
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -37,6 +37,11 @@ public class SeriesRoundRank implements Serializable { ...@@ -37,6 +37,11 @@ public class SeriesRoundRank implements Serializable {
*/ */
private Long roundId; private Long roundId;
/**
* 区域id
*/
private Long areaId;
/** /**
* 比赛id * 比赛id
*/ */
...@@ -47,6 +52,11 @@ public class SeriesRoundRank implements Serializable { ...@@ -47,6 +52,11 @@ public class SeriesRoundRank implements Serializable {
*/ */
private Long recordId; 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.*; ...@@ -5,6 +5,7 @@ import com.antai.sport.http.server.server.api.business.series.vo.*;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
public interface SeriesBusinessMapper { public interface SeriesBusinessMapper {
...@@ -32,4 +33,9 @@ public interface SeriesBusinessMapper { ...@@ -32,4 +33,9 @@ public interface SeriesBusinessMapper {
@Param("sportUserId") Long sportUserId, @Param("sportUserId") Long sportUserId,
@Param("today") LocalDate today, @Param("today") LocalDate today,
@Param("tomorrow") LocalDate tomorrow); @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; ...@@ -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.Series;
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.repository.series.entity.SeriesRound; 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.SeriesApplyMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesMapper; 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.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.entity.SportUser;
import com.antai.sport.http.server.repository.sport.mapper.SportUserMapper; 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;
...@@ -17,6 +19,7 @@ import com.antai.sport.http.server.server.api.business.series.vo.SeriesApplyPreL ...@@ -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.SeriesDetailsVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO; 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.SeriesQualifyingMatchHomeVO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -35,6 +38,8 @@ public class SeriesService { ...@@ -35,6 +38,8 @@ public class SeriesService {
private SeriesRoundMapper seriesRoundMapper; private SeriesRoundMapper seriesRoundMapper;
@Resource @Resource
private SportUserMapper sportUserMapper; private SportUserMapper sportUserMapper;
@Resource
private SeriesRoundRankMapper seriesRoundRankMapper;
@Resource @Resource
private SeriesConverter seriesConverter; private SeriesConverter seriesConverter;
...@@ -121,9 +126,21 @@ public class SeriesService { ...@@ -121,9 +126,21 @@ public class SeriesService {
result.setChance(seriesRound.getChance()); result.setChance(seriesRound.getChance());
result.setLeftChance(seriesRound.getChance() - seriesBusinessMapper.getSeriesQualifyingMatchLeftChance(roundId, sportUserId)); result.setLeftChance(seriesRound.getChance() - seriesBusinessMapper.getSeriesQualifyingMatchLeftChance(roundId, sportUserId));
result.setBestResult(seriesBusinessMapper.getBestResult(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; return result;
} }
......
...@@ -16,6 +16,8 @@ public class SeriesQualifyingMatchHomeVO { ...@@ -16,6 +16,8 @@ public class SeriesQualifyingMatchHomeVO {
private Integer leftChance; private Integer leftChance;
@ApiModelProperty("最好成绩") @ApiModelProperty("最好成绩")
private Integer bestResult; private Integer bestResult;
@ApiModelProperty("我的排名")
private Integer myRank;
@ApiModelProperty("用户赛区id,如果没有赛区id表示未报名") @ApiModelProperty("用户赛区id,如果没有赛区id表示未报名")
private Long areaId; private Long areaId;
@ApiModelProperty("地图名称") @ApiModelProperty("地图名称")
......
...@@ -81,4 +81,11 @@ ...@@ -81,4 +81,11 @@
order by t1.start_time desc order by t1.start_time desc
) )
</select> </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> </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