Commit 1cb03dfd authored by liming's avatar liming

预选赛查看接口

parent 210e5703
...@@ -27295,6 +27295,110 @@ ...@@ -27295,6 +27295,110 @@
"virtualType": "", "virtualType": "",
"oldName": "start_time" "oldName": "start_time"
}, },
{
"objectType": "TableField_MYSQL",
"name": "map",
"type": "varchar",
"length": 255,
"decimals": 0,
"isUnsigned": false,
"isZeroFill": false,
"setEnumValues": "",
"isBinary": false,
"charset": "",
"collation": "",
"isNullable": true,
"defaultType": "Others",
"defaultValue": "",
"isOnUpdateCurrentTimestamp": false,
"isAutoInc": false,
"comment": "地图key",
"columnFormat": "",
"storage": "",
"isVirtual": false,
"isGeneratedAlways": false,
"virtualExpr": "",
"virtualType": "",
"oldName": "map"
},
{
"objectType": "TableField_MYSQL",
"name": "path",
"type": "varchar",
"length": 255,
"decimals": 0,
"isUnsigned": false,
"isZeroFill": false,
"setEnumValues": "",
"isBinary": false,
"charset": "",
"collation": "",
"isNullable": true,
"defaultType": "Others",
"defaultValue": "",
"isOnUpdateCurrentTimestamp": false,
"isAutoInc": false,
"comment": "赛道key",
"columnFormat": "",
"storage": "",
"isVirtual": false,
"isGeneratedAlways": false,
"virtualExpr": "",
"virtualType": "",
"oldName": "path"
},
{
"objectType": "TableField_MYSQL",
"name": "distance",
"type": "decimal",
"length": 18,
"decimals": 2,
"isUnsigned": false,
"isZeroFill": false,
"setEnumValues": "",
"isBinary": false,
"charset": "",
"collation": "",
"isNullable": true,
"defaultType": "Null",
"defaultValue": "",
"isOnUpdateCurrentTimestamp": false,
"isAutoInc": false,
"comment": "总长度",
"columnFormat": "",
"storage": "",
"isVirtual": false,
"isGeneratedAlways": false,
"virtualExpr": "",
"virtualType": "",
"oldName": "distance"
},
{
"objectType": "TableField_MYSQL",
"name": "climb_distance",
"type": "decimal",
"length": 18,
"decimals": 2,
"isUnsigned": false,
"isZeroFill": false,
"setEnumValues": "",
"isBinary": false,
"charset": "",
"collation": "",
"isNullable": true,
"defaultType": "Others",
"defaultValue": "",
"isOnUpdateCurrentTimestamp": false,
"isAutoInc": false,
"comment": "爬坡高度",
"columnFormat": "",
"storage": "",
"isVirtual": false,
"isGeneratedAlways": false,
"virtualExpr": "",
"virtualType": "",
"oldName": "climb_distance"
},
{ {
"objectType": "TableField_MYSQL", "objectType": "TableField_MYSQL",
"name": "chance", "name": "chance",
...@@ -27776,6 +27880,34 @@ ...@@ -27776,6 +27880,34 @@
"order": "", "order": "",
"oldName": "" "oldName": ""
}, },
{
"objectType": "IndexField_MYSQL",
"name": "",
"keyLength": 0,
"order": "",
"oldName": ""
},
{
"objectType": "IndexField_MYSQL",
"name": "",
"keyLength": 0,
"order": "",
"oldName": ""
},
{
"objectType": "IndexField_MYSQL",
"name": "",
"keyLength": 0,
"order": "",
"oldName": ""
},
{
"objectType": "IndexField_MYSQL",
"name": "",
"keyLength": 0,
"order": "",
"oldName": ""
},
{ {
"objectType": "IndexField_MYSQL", "objectType": "IndexField_MYSQL",
"name": "", "name": "",
...@@ -28698,7 +28830,7 @@ ...@@ -28698,7 +28830,7 @@
"x": 3492, "x": 3492,
"y": 668, "y": 668,
"width": 235, "width": 235,
"height": 576, "height": 618,
"isBold": false, "isBold": false,
"titleColor": { "titleColor": {
"r": 55, "r": 55,
...@@ -2,6 +2,8 @@ package com.antai.sport.http.server.repository.series.entity; ...@@ -2,6 +2,8 @@ package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
...@@ -42,6 +44,26 @@ public class SeriesRound implements Serializable { ...@@ -42,6 +44,26 @@ public class SeriesRound implements Serializable {
*/ */
private LocalDateTime startTime; private LocalDateTime startTime;
/**
* 地图key
*/
private String map;
/**
* 赛道key
*/
private String path;
/**
* 总长度
*/
private BigDecimal distance;
/**
* 爬坡高度
*/
private BigDecimal climbDistance;
/** /**
* 机会次数 * 机会次数
*/ */
......
...@@ -13,6 +13,7 @@ import com.antai.sport.http.server.server.api.business.series.mapper.SeriesBusin ...@@ -13,6 +13,7 @@ import com.antai.sport.http.server.server.api.business.series.mapper.SeriesBusin
import com.antai.sport.http.server.server.api.business.series.vo.SeriesApplyPreLoadVO; 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.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.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -58,18 +59,9 @@ public class SeriesService { ...@@ -58,18 +59,9 @@ public class SeriesService {
} }
SeriesDetailsVO result = seriesConverter.toSeriesDetailVO(series, status); SeriesDetailsVO result = seriesConverter.toSeriesDetailVO(series, status);
result.setNoticeList(seriesBusinessMapper.getSeriesNotice(id)); result.setNoticeList(seriesBusinessMapper.getSeriesNotice(id));
result.setApplied(seriesBusinessMapper.checkExistUserSeriesApply(id, sportUserId));
result.setRoundList(seriesBusinessMapper.getSeriesRound(id)); result.setRoundList(seriesBusinessMapper.getSeriesRound(id));
result.setAreaList(seriesBusinessMapper.getSeriesAreaList(id)); result.setAreaList(seriesBusinessMapper.getSeriesAreaList(id));
QueryWrapper<SeriesApply> seriesApplyQuery = new QueryWrapper<>();
seriesApplyQuery.lambda().eq(SeriesApply::getSeriesId, id).eq(SeriesApply::getSportUserId, sportUserId);
SeriesApply seriesApply = seriesApplyMapper.selectOne(seriesApplyQuery);
if(seriesApply == null){
result.setApplied(false);
} else {
result.setApplied(true);
result.setAreaId(seriesApply.getAreaId());
}
return result; return result;
} }
...@@ -78,7 +70,7 @@ public class SeriesService { ...@@ -78,7 +70,7 @@ public class SeriesService {
SeriesApplyPreLoadVO result = seriesConverter.toSeriesApplyPreLoadVO(sportUser); SeriesApplyPreLoadVO result = seriesConverter.toSeriesApplyPreLoadVO(sportUser);
result.setAreaList(seriesBusinessMapper.getSeriesAreaList(seriesId)); result.setAreaList(seriesBusinessMapper.getSeriesAreaList(seriesId));
SeriesApply seriesApply = seriesBusinessMapper.getLatestUserSeriesApplyInfo(sportUserId); SeriesApply seriesApply = seriesBusinessMapper.getLatestUserSeriesApplyInfo(sportUserId);
if (seriesApply != null) { if(seriesApply!=null){
result.setRealName(seriesApply.getName()); result.setRealName(seriesApply.getName());
result.setIdCard(seriesApply.getIdCard()); result.setIdCard(seriesApply.getIdCard());
} }
...@@ -87,7 +79,7 @@ public class SeriesService { ...@@ -87,7 +79,7 @@ public class SeriesService {
} }
public void seriesApply(SeriesApplyDTO dto) { public void seriesApply(SeriesApplyDTO dto) {
if (seriesBusinessMapper.checkExistUserSeriesApply(dto.getSeriesId(), dto.getSportUserId())) { if(seriesBusinessMapper.checkExistUserSeriesApply(dto.getSeriesId(),dto.getSportUserId())){
throw new BusinessException("您已经报名当前比赛,无需重复报名"); throw new BusinessException("您已经报名当前比赛,无需重复报名");
} }
...@@ -96,5 +88,10 @@ public class SeriesService { ...@@ -96,5 +88,10 @@ public class SeriesService {
seriesApplyMapper.insert(seriesApply); seriesApplyMapper.insert(seriesApply);
} }
public SeriesQualifyingMatchHomeVO getSeriesQualifyingMatchHomeData(){
SeriesQualifyingMatchHomeVO result = new SeriesQualifyingMatchHomeVO();
return result;
}
} }
...@@ -31,8 +31,6 @@ public class SeriesDetailsVO { ...@@ -31,8 +31,6 @@ public class SeriesDetailsVO {
private Integer applyNum; private Integer applyNum;
@ApiModelProperty("是否已报名 true 报名 false 未报名") @ApiModelProperty("是否已报名 true 报名 false 未报名")
private Boolean applied; private Boolean applied;
@ApiModelProperty("赛区id")
private Long areaId;
@ApiModelProperty("通知列表") @ApiModelProperty("通知列表")
List<SeriesNoticeVO> noticeList; List<SeriesNoticeVO> noticeList;
@ApiModelProperty("轮次列表") @ApiModelProperty("轮次列表")
......
package com.antai.sport.http.server.server.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;
import java.util.List;
@ApiModel("预选赛主页VO")
@Data
public class SeriesQualifyingMatchHomeVO {
@ApiModelProperty("总比赛机会次数")
private Integer chance;
@ApiModelProperty("剩余机会次数")
private Integer leftChance;
@ApiModelProperty("最好成绩")
private Integer bestResult;
@ApiModelProperty("用户赛区id,如果没有赛区id表示未报名")
private Long areaId;
@ApiModelProperty("地图名称")
private String pathName;
@ApiModelProperty("地图")
private String map;
@ApiModelProperty("赛道")
private String path;
@ApiModelProperty("长度")
private BigDecimal distance;
@ApiModelProperty("爬坡高度")
private BigDecimal climbDistance;
@ApiModelProperty("比赛列表")
List<SeriesQualifyingMatchVO> matchList;
}
package com.antai.sport.http.server.server.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 {
@ApiModelProperty("用户Id")
private Long playerId;
@ApiModelProperty("昵称")
private String nickname;
@ApiModelProperty("头像")
private String avatar;
@ApiModelProperty("比赛名次")
private Integer gameRank;
@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("得分")
private BigDecimal score;
@ApiModelProperty("比赛状态10:未完成比赛 20:完成比赛")
private Integer status;
}
package com.antai.sport.http.server.server.api.business.series.vo; package com.antai.sport.http.server.server.api.business.series.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ApiModel("预选赛VO") import java.time.LocalDateTime;
@ApiModel("预算赛VO")
@Data @Data
public class SeriesQualifyingMatchVO { public class SeriesQualifyingMatchVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("比赛名称")
private String name;
@ApiModelProperty("允许进入时间 yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime entryTime;
@ApiModelProperty("开始比赛时间 yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime startTime;
@ApiModelProperty("比赛结束时间 yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime endTime;
@ApiModelProperty("玩家成绩")
private Integer result;
} }
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