Commit 21a0d4a7 authored by liming's avatar liming

系列赛报名个人信息预加载接口

parent 445340c8
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -27,6 +27,11 @@ public class SeriesArea implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 系列赛id
*/
private Long seriesId;
/**
* 赛区名称
*/
......
......@@ -2,6 +2,7 @@ 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.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 io.swagger.annotations.Api;
......@@ -38,4 +39,12 @@ public class SeriesController {
return success(seriesService.getSeriesDetails(id, sportUserId));
}
@GetMapping("apply/preload/{seriesId}/{sportUserId}")
public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo(
@PathVariable("seriesId") Long seriesId,
@PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeresApplyPreLoadInfo(sportUserId, seriesId));
}
}
package com.antai.sport.http.server.server.api.business.series.converter;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
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 org.mapstruct.Mapper;
import org.mapstruct.Mapping;
......@@ -9,4 +11,6 @@ import org.mapstruct.Mapping;
public interface SeriesConverter {
@Mapping(source = "status",target = "status")
SeriesDetailsVO toSeriesDetailVO(Series series,Integer status);
SeriesApplyPreLoadVO toSeriesApplyPreLoadVO(SportUser sportUser);
}
package com.antai.sport.http.server.server.api.business.series.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.math.BigDecimal;
@ApiModel("赛事报名对象")
@Data
public class SeriesApplyDTO {
private Long seriesId;
private Long sportUserId;
private String name;
private String idCard;
private String phone;
private Integer sex;
private BigDecimal height;
private BigDecimal weight;
private Integer ftp;
private Long areaId;
}
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.vo.SeriesAreaVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesNoticeVO;
import org.apache.ibatis.annotations.Param;
......@@ -12,5 +14,9 @@ public interface SeriesBusinessMapper {
List<SeriesNoticeVO> getSeriesNotice(@Param("seriesId") Long seriesId);
Boolean checkUserSeriesIsApplied(@Param("seriesId") Long seriesId,@Param("sportUserId") Long sportUserId);
Boolean checkUserSeriesIsApplied(@Param("seriesId") Long seriesId, @Param("sportUserId") Long sportUserId);
List<SeriesAreaVO> getSeriesAreaList(@Param("seriesId") Long seriesId);
SeriesApply getLatestUserSeriesApplyInfo(@Param("sportUserId") Long sportUserId);
}
......@@ -2,9 +2,13 @@ package com.antai.sport.http.server.server.api.business.series.service;
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.mapper.SeriesMapper;
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.series.converter.SeriesConverter;
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 org.springframework.stereotype.Service;
......@@ -18,6 +22,8 @@ public class SeriesService {
@Resource
private SeriesMapper seriesMapper;
@Resource
private SportUserMapper sportUserMapper;
@Resource
private SeriesConverter seriesConverter;
......@@ -49,7 +55,19 @@ public class SeriesService {
result.setNoticeList(seriesBusinessMapper.getSeriesNotice(id));
result.setApplied(seriesBusinessMapper.checkUserSeriesIsApplied(id, sportUserId));
return result;
}
public SeriesApplyPreLoadVO getSeresApplyPreLoadInfo(Long sportUserId, Long seriesId) {
SportUser sportUser = sportUserMapper.selectById(sportUserId);
SeriesApplyPreLoadVO result = seriesConverter.toSeriesApplyPreLoadVO(sportUser);
result.setAreaList(seriesBusinessMapper.getSeriesAreaList(seriesId));
SeriesApply seriesApply = seriesBusinessMapper.getLatestUserSeriesApplyInfo(sportUserId);
if(seriesApply!=null){
result.setRealName(seriesApply.getName());
result.setIdCard(seriesApply.getIdcard());
}
return result;
}
......
package com.antai.sport.http.server.server.api.business.series.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@ApiModel("报名信息预加载对象")
@Data
public class SeriesApplyPreLoadVO {
@ApiModelProperty("头像")
private String avatar;
@ApiModelProperty("玩家昵称")
private String nickname;
@ApiModelProperty("性别 1.男 2.女")
private Integer sex;
@ApiModelProperty("身高")
private BigDecimal height;
@ApiModelProperty("体重")
private BigDecimal weight;
@ApiModelProperty("功率")
private Integer ftp;
@ApiModelProperty("电话号码")
private String phone;
@ApiModelProperty("真实姓名")
private String realName;
@ApiModelProperty("身份证号")
private String idCard;
@ApiModelProperty("赛区列表")
private List<SeriesAreaVO> areaList;
}
package com.antai.sport.http.server.server.api.business.series.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("系列赛赛区")
@Data
public class SeriesAreaVO {
@ApiModelProperty("赛区id")
private Long id;
@ApiModelProperty("赛区名称")
private String name;
}
......@@ -23,4 +23,12 @@
<select id="checkUserSeriesIsApplied" resultType="java.lang.Boolean">
select count(1)>0 from series_apply where series_id = #{seriesId} and sport_user_id = #{sportUserId}
</select>
<select id="getSeriesAreaList" resultType="com.antai.sport.http.server.server.api.business.series.vo.SeriesAreaVO">
select id,name from series_area where series_id = #{seriesId} order by show_order
</select>
<select id="getLatestUserSeriesApplyInfo" resultType="com.antai.sport.http.server.repository.series.entity.SeriesApply">
select * from series_apply where sport_user_id = #{sportUserId} order by id desc limit 1
</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