Commit e5fa6bf1 authored by liming's avatar liming

系列赛报名

parent 078fd6b7
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -51,7 +51,7 @@ public class SeriesApply implements Serializable {
/**
* 身份证
*/
private String idcard;
private String idCard;
/**
* 手机号
......
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.dto.SeriesApplyDTO;
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;
......@@ -8,10 +9,7 @@ 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.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
......@@ -40,11 +38,18 @@ public class SeriesController {
}
@GetMapping("apply/preload/{seriesId}/{sportUserId}")
@ApiOperation(value = "预加载报名信息方法")
public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo(
@PathVariable("seriesId") Long seriesId,
@PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeresApplyPreLoadInfo(sportUserId, seriesId));
}
@PostMapping("apply")
@ApiOperation(value = "报名方法")
public ResponseEntity<Result> seriesApply(@RequestBody SeriesApplyDTO dto){
seriesService.seriesApply(dto);
return success();
}
}
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.series.entity.SeriesApply;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesApplyDTO;
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;
......@@ -13,4 +15,6 @@ public interface SeriesConverter {
SeriesDetailsVO toSeriesDetailVO(Series series,Integer status);
SeriesApplyPreLoadVO toSeriesApplyPreLoadVO(SportUser sportUser);
SeriesApply toSeriesApply(SeriesApplyDTO source);
}
package com.antai.sport.http.server.server.api.business.series.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
......@@ -8,14 +9,24 @@ import java.math.BigDecimal;
@ApiModel("赛事报名对象")
@Data
public class SeriesApplyDTO {
@ApiModelProperty("系列赛id")
private Long seriesId;
@ApiModelProperty("玩家id")
private Long sportUserId;
@ApiModelProperty("玩家姓名")
private String name;
@ApiModelProperty("身份证")
private String idCard;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("性别")
private Integer sex;
@ApiModelProperty("身高(cm)")
private BigDecimal height;
@ApiModelProperty("体重(kg)")
private BigDecimal weight;
@ApiModelProperty("FTP")
private Integer ftp;
@ApiModelProperty("赛区id")
private Long areaId;
}
......@@ -17,7 +17,7 @@ public interface SeriesBusinessMapper {
List<SeriesRoundVO> getSeriesRound(@Param("seriesId") Long seriesId);
Boolean checkUserSeriesIsApplied(@Param("seriesId") Long seriesId, @Param("sportUserId") Long sportUserId);
Boolean checkExistUserSeriesApply(@Param("seriesId") Long seriesId, @Param("sportUserId") Long sportUserId);
List<SeriesAreaVO> getSeriesAreaList(@Param("seriesId") Long seriesId);
......
......@@ -3,14 +3,17 @@ 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.SeriesApplyMapper;
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.dto.SeriesApplyDTO;
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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -23,6 +26,8 @@ public class SeriesService {
@Resource
private SeriesMapper seriesMapper;
@Resource
private SeriesApplyMapper seriesApplyMapper;
@Resource
private SportUserMapper sportUserMapper;
@Resource
......@@ -53,7 +58,7 @@ public class SeriesService {
}
SeriesDetailsVO result = seriesConverter.toSeriesDetailVO(series, status);
result.setNoticeList(seriesBusinessMapper.getSeriesNotice(id));
result.setApplied(seriesBusinessMapper.checkUserSeriesIsApplied(id, sportUserId));
result.setApplied(seriesBusinessMapper.checkExistUserSeriesApply(id, sportUserId));
result.setRoundList(seriesBusinessMapper.getSeriesRound(id));
return result;
}
......@@ -65,11 +70,21 @@ public class SeriesService {
SeriesApply seriesApply = seriesBusinessMapper.getLatestUserSeriesApplyInfo(sportUserId);
if(seriesApply!=null){
result.setRealName(seriesApply.getName());
result.setIdCard(seriesApply.getIdcard());
result.setIdCard(seriesApply.getIdCard());
}
return result;
}
public void seriesApply(SeriesApplyDTO dto) {
if(seriesBusinessMapper.checkExistUserSeriesApply(dto.getSeriesId(),dto.getSportUserId())){
throw new BusinessException("您已经报名当前比赛,无需重复报名");
}
SeriesApply seriesApply = seriesConverter.toSeriesApply(dto);
seriesApply.setCreateTime(LocalDateTime.now());
seriesApplyMapper.insert(seriesApply);
}
}
......@@ -29,7 +29,7 @@
order by show_order
</select>
<select id="checkUserSeriesIsApplied" resultType="java.lang.Boolean">
<select id="checkExistUserSeriesApply" resultType="java.lang.Boolean">
select count(1)>0 from series_apply where series_id = #{seriesId} and sport_user_id = #{sportUserId}
</select>
......
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