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 { ...@@ -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; 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.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.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.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;
...@@ -8,10 +9,7 @@ import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO; ...@@ -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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
...@@ -40,11 +38,18 @@ public class SeriesController { ...@@ -40,11 +38,18 @@ public class SeriesController {
} }
@GetMapping("apply/preload/{seriesId}/{sportUserId}") @GetMapping("apply/preload/{seriesId}/{sportUserId}")
@ApiOperation(value = "预加载报名信息方法")
public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo( public ResponseEntity<Result<SeriesApplyPreLoadVO>> getSeresApplyPreLoadInfo(
@PathVariable("seriesId") Long seriesId, @PathVariable("seriesId") Long seriesId,
@PathVariable("sportUserId") Long sportUserId) { @PathVariable("sportUserId") Long sportUserId) {
return success(seriesService.getSeresApplyPreLoadInfo(sportUserId, seriesId)); 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; 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.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.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.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 org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -13,4 +15,6 @@ public interface SeriesConverter { ...@@ -13,4 +15,6 @@ public interface SeriesConverter {
SeriesDetailsVO toSeriesDetailVO(Series series,Integer status); SeriesDetailsVO toSeriesDetailVO(Series series,Integer status);
SeriesApplyPreLoadVO toSeriesApplyPreLoadVO(SportUser sportUser); SeriesApplyPreLoadVO toSeriesApplyPreLoadVO(SportUser sportUser);
SeriesApply toSeriesApply(SeriesApplyDTO source);
} }
package com.antai.sport.http.server.server.api.business.series.dto; package com.antai.sport.http.server.server.api.business.series.dto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -8,14 +9,24 @@ import java.math.BigDecimal; ...@@ -8,14 +9,24 @@ import java.math.BigDecimal;
@ApiModel("赛事报名对象") @ApiModel("赛事报名对象")
@Data @Data
public class SeriesApplyDTO { public class SeriesApplyDTO {
@ApiModelProperty("系列赛id")
private Long seriesId; private Long seriesId;
@ApiModelProperty("玩家id")
private Long sportUserId; private Long sportUserId;
@ApiModelProperty("玩家姓名")
private String name; private String name;
@ApiModelProperty("身份证")
private String idCard; private String idCard;
@ApiModelProperty("手机号码")
private String phone; private String phone;
@ApiModelProperty("性别")
private Integer sex; private Integer sex;
@ApiModelProperty("身高(cm)")
private BigDecimal height; private BigDecimal height;
@ApiModelProperty("体重(kg)")
private BigDecimal weight; private BigDecimal weight;
@ApiModelProperty("FTP")
private Integer ftp; private Integer ftp;
@ApiModelProperty("赛区id")
private Long areaId; private Long areaId;
} }
...@@ -17,7 +17,7 @@ public interface SeriesBusinessMapper { ...@@ -17,7 +17,7 @@ public interface SeriesBusinessMapper {
List<SeriesRoundVO> getSeriesRound(@Param("seriesId") Long seriesId); 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); List<SeriesAreaVO> getSeriesAreaList(@Param("seriesId") Long seriesId);
......
...@@ -3,14 +3,17 @@ package com.antai.sport.http.server.server.api.business.series.service; ...@@ -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.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.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.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.series.converter.SeriesConverter; 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.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.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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -23,6 +26,8 @@ public class SeriesService { ...@@ -23,6 +26,8 @@ public class SeriesService {
@Resource @Resource
private SeriesMapper seriesMapper; private SeriesMapper seriesMapper;
@Resource @Resource
private SeriesApplyMapper seriesApplyMapper;
@Resource
private SportUserMapper sportUserMapper; private SportUserMapper sportUserMapper;
@Resource @Resource
...@@ -53,7 +58,7 @@ public class SeriesService { ...@@ -53,7 +58,7 @@ 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.checkUserSeriesIsApplied(id, sportUserId)); result.setApplied(seriesBusinessMapper.checkExistUserSeriesApply(id, sportUserId));
result.setRoundList(seriesBusinessMapper.getSeriesRound(id)); result.setRoundList(seriesBusinessMapper.getSeriesRound(id));
return result; return result;
} }
...@@ -65,11 +70,21 @@ public class SeriesService { ...@@ -65,11 +70,21 @@ public class SeriesService {
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());
} }
return result; 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 @@ ...@@ -29,7 +29,7 @@
order by show_order order by show_order
</select> </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 count(1)>0 from series_apply where series_id = #{seriesId} and sport_user_id = #{sportUserId}
</select> </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