Commit 0c3f7307 authored by liming's avatar liming

系列赛列表查询接口

parent 7b4beb0e
package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class Series implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛名称
*/
private String name;
/**
* 封面图片地址
*/
private String imgUrl;
/**
* 报名开始时间
*/
private LocalDateTime applyStartTime;
/**
* 报名结束时间
*/
private LocalDateTime applyEndTime;
/**
* 报名数量
*/
private Integer applyNum;
/**
* 描述
*/
private String description;
/**
* 比赛协议
*/
private String agreement;
/**
* 状态 10 未发布 20 已发布
*/
private Integer status;
/**
* 比赛是否已完结
*/
private Boolean finished;
/**
* 显示顺序
*/
private Integer showOrder;
/**
* 版本号
*/
private Long version;
/**
* 删除标记
*/
private Integer deleted;
/**
* 创建人
*/
private Long createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改人
*/
private Long updateBy;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesApply implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛id
*/
private Long seriesId;
/**
* 比赛人员id
*/
private Long sportUserId;
/**
* 赛区id
*/
private Long areaId;
/**
* 报名人姓名
*/
private String name;
/**
* 身份证
*/
private String idcard;
/**
* 手机号
*/
private String phone;
/**
* 性别 1:男 2:女
*/
private Integer sex;
/**
* 身高
*/
private BigDecimal height;
/**
* 体重
*/
private BigDecimal weight;
/**
* FTP
*/
private Integer ftp;
/**
* 创建时间
*/
private LocalDateTime createTime;
}
package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesArea implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛区名称
*/
private String name;
/**
* 显示顺序
*/
private Integer showOrder;
/**
* 版本号
*/
private Long version;
/**
* 删除标记
*/
private Integer deleted;
/**
* 创建人
*/
private Long createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改人
*/
private Long updateBy;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesMatch implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛id
*/
private Long seriesId;
/**
* 轮次id
*/
private Long roundId;
/**
* 类型 10 预选赛 20 淘汰赛
*/
private Integer type;
/**
* 比赛名称
*/
private String name;
/**
* 地图key
*/
private String map;
/**
* 赛道key
*/
private String path;
/**
* 允许进入时间
*/
private LocalDateTime entryTime;
/**
* 比赛开始时间
*/
private LocalDateTime startTime;
/**
* 比赛结束时间
*/
private LocalDateTime endTime;
/**
* 总长度
*/
private BigDecimal distance;
/**
* 爬坡高度
*/
private BigDecimal climbDistance;
/**
* 描述
*/
private String description;
/**
* 状态 10:未发布 20:已发布
*/
private Integer status;
/**
* 显示顺序
*/
private Integer showOrder;
/**
* 版本号
*/
private Long version;
/**
* 删除标记
*/
private Integer deleted;
/**
* 创建人
*/
private Long createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改人
*/
private Long updateBy;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesMatchFinalists implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛比赛id
*/
private Long matchId;
/**
* 入围玩家id
*/
private Long sportUserId;
/**
* 位置序列
*/
private Integer startOrder;
/**
* 版本号
*/
private Long version;
/**
* 删除标记
*/
private Integer deleted;
/**
* 创建人
*/
private Long createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改人
*/
private Long updateBy;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesMatchPlayerRecord implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛id
*/
private Long seriesId;
/**
* 轮次id
*/
private Long roundId;
/**
* 比赛id
*/
private Long matchId;
/**
* 玩家id
*/
private Long playerId;
/**
* 比赛进入时间
*/
private LocalDateTime entryTime;
/**
* 比赛完成时间
*/
private LocalDateTime finishTime;
/**
* 比赛用时(秒)
*/
private Integer duration;
/**
* 比赛名次
*/
private Integer matchRank;
/**
* 骑行总长度
*/
private BigDecimal distance;
/**
* 爬坡距离
*/
private BigDecimal climbDistance;
/**
* 平均功率
*/
private BigDecimal avgFtp;
/**
* 平均速度
*/
private BigDecimal avgSpeed;
/**
* 卡路里
*/
private Integer calorie;
/**
* 体重
*/
private BigDecimal weight;
/**
* 1分钟平均最佳FTP
*/
private BigDecimal oneMinutesFtp;
/**
* 5分钟平均最佳FTP
*/
private BigDecimal fiveMinutesFtp;
/**
* 20分钟平均最佳FTP
*/
private BigDecimal twentyMinutesFtp;
/**
* 1分钟平均最佳功体比
*/
private BigDecimal oneMinutesWkg;
/**
* 5分钟平均最佳功体比
*/
private BigDecimal fiveMinutesWkg;
/**
* 20分钟平均最佳功体比
*/
private BigDecimal twentyMinutesWkg;
/**
* 得分
*/
private BigDecimal score;
/**
* 获攒数量
*/
private Integer praiseNum;
/**
* 比赛状态10:未完成比赛 20:完成比赛
*/
private Integer status;
/**
* 是否结束
*/
private Boolean finished;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesNotice implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛id
*/
private Long seriesId;
/**
* 状态 10 未发布 20 已发布
*/
private Integer status;
/**
* 显示顺序
*/
private Integer showOrder;
/**
* 版本号
*/
private Long version;
/**
* 删除标记
*/
private Integer deleted;
/**
* 创建人
*/
private Long createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改人
*/
private Long updateBy;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesRound implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 轮次名称
*/
private String name;
/**
* 类型 10 预选赛 20 淘汰赛
*/
private Integer type;
/**
* 开始时间
*/
private LocalDateTime startTime;
/**
* 状态 10 未发布 20 已发布
*/
private Integer status;
/**
* 轮次是否已完成
*/
private Boolean finished;
/**
* 显示顺序
*/
private Integer showOrder;
/**
* 版本号
*/
private Long version;
/**
* 删除标记
*/
private Integer deleted;
/**
* 创建人
*/
private Long createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改人
*/
private Long updateBy;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
package com.antai.sport.http.server.repository.series.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author liming
* @since 2022-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SeriesRoundRank implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛id
*/
private Long seriesId;
/**
* 轮次id
*/
private Long roundId;
/**
* 比赛id
*/
private Long matchId;
/**
* 关联记录id
*/
private Long recordId;
/**
* 比赛用时(秒)
*/
private Integer duration;
/**
* 创建时间
*/
private LocalDateTime createTime;
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesApply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesApplyMapper extends BaseMapper<SeriesApply> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesArea;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesAreaMapper extends BaseMapper<SeriesArea> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesMapper extends BaseMapper<Series> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesMatchFinalists;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesMatchFinalistsMapper extends BaseMapper<SeriesMatchFinalists> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesMatch;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesMatchMapper extends BaseMapper<SeriesMatch> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesMatchPlayerRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesMatchPlayerRecordMapper extends BaseMapper<SeriesMatchPlayerRecord> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesNotice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesNoticeMapper extends BaseMapper<SeriesNotice> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesRound;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesRoundMapper extends BaseMapper<SeriesRound> {
}
package com.antai.sport.http.server.repository.series.mapper;
import com.antai.sport.http.server.repository.series.entity.SeriesRoundRank;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liming
* @since 2022-09-15
*/
public interface SeriesRoundRankMapper extends BaseMapper<SeriesRoundRank> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesApplyMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesAreaMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesMatchFinalistsMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesMatchMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesMatchPlayerRecordMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesNoticeMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesRoundMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.repository.series.mapper.SeriesRoundRankMapper">
</mapper>
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.service.SeriesService;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import static com.antai.sport.http.server.common.util.ResultUtil.success;
@RestController
@RequestMapping("series")
@Api(tags = {"系列赛接口"})
public class SeriesController {
@Resource
private SeriesService seriesService;
@GetMapping("list")
@ApiOperation(value = "查询系列赛列表")
public ResponseEntity<Result<List<SeriesListVO>>> getSeriesList() {
return success(seriesService.getSeriesList());
}
}
package com.antai.sport.http.server.server.api.business.series.mapper;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import java.util.List;
public interface SeriesBusinessMapper {
List<SeriesListVO> getSeriesList();
}
package com.antai.sport.http.server.server.api.business.series.service;
import com.antai.sport.http.server.server.api.business.series.mapper.SeriesBusinessMapper;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class SeriesService {
@Resource
private SeriesBusinessMapper seriesBusinessMapper;
public List<SeriesListVO> getSeriesList() {
return seriesBusinessMapper.getSeriesList();
}
}
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.time.LocalDateTime;
@ApiModel("系列赛列表对象")
@Data
public class SeriesListVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("封面图片地址")
private String imgUrl;
@ApiModelProperty("报名人数")
private String applyNum;
@ApiModelProperty("状态 10 报名中 20 进行中 30 未开赛 40 已完赛")
private Integer status;
@ApiModelProperty("报名开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime applyStartTime;
@ApiModelProperty("报名结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime applyEndTime;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.server.api.business.series.mapper.SeriesBusinessMapper">
<select id="getSeriesList" resultType="com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO">
select * from (
select if(finished = 1,40,
if(now() &gt;= apply_start_time and now() &lt;= apply_end_time,10,
if(now() &lt; apply_start_time,30,20))) as status,
id,name,img_url,apply_start_time,apply_end_time,apply_num
from series
where deleted = 0 and status = 20
) t1 order by t1.status,t1.id desc
</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