Commit fae17287 authored by liming's avatar liming

日常赛报名列表查询

parent be0640c6
package com.antai.sport.http.server.server.api.business.simplematch.controller; package com.antai.sport.http.server.server.api.business.simplematch.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.simplematch.dto.ReqSimpleMatchInit; import com.antai.sport.http.server.server.api.business.simplematch.dto.*;
import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchRegist;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchBanner;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchList;
import com.antai.sport.http.server.server.api.business.simplematch.service.SimpleMatchService; import com.antai.sport.http.server.server.api.business.simplematch.service.SimpleMatchService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -55,4 +52,10 @@ public class SimpleMatchController { ...@@ -55,4 +52,10 @@ public class SimpleMatchController {
simpleMatchService.regist(param); simpleMatchService.regist(param);
return success(); return success();
} }
@ApiOperation("赛事明细")
@PostMapping("/info")
public ResponseEntity<Result<RespSimpleMatchInfo>> matchInfo(@RequestBody ReqMatchInfo param) {
return success(simpleMatchService.matchInfo(param));
}
} }
...@@ -4,6 +4,7 @@ import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatch; ...@@ -4,6 +4,7 @@ import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatch;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchBanner; import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchBanner;
import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchInit; import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchInit;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchBanner; import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchBanner;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchInfo;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import java.util.List; import java.util.List;
...@@ -13,4 +14,6 @@ public interface SimpleMatchConverter { ...@@ -13,4 +14,6 @@ public interface SimpleMatchConverter {
SimpleMatch toSimpleMatch(ReqSimpleMatchInit data); SimpleMatch toSimpleMatch(ReqSimpleMatchInit data);
List<RespSimpleMatchBanner> toRespBannerList(List<SimpleMatchBanner> bannerList); List<RespSimpleMatchBanner> toRespBannerList(List<SimpleMatchBanner> bannerList);
RespSimpleMatchInfo toRespSimpleMatchInfo(SimpleMatch source);
} }
package com.antai.sport.http.server.server.api.business.simplematch.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("赛事详情查询对象")
public class ReqMatchInfo {
@ApiModelProperty("比赛id")
private Long matchId;
@ApiModelProperty("玩家id")
private Long playerId;
}
package com.antai.sport.http.server.server.api.business.simplematch.dto;
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 RespSimpleMatchInfo {
@ApiModelProperty("比赛id")
public Long id;
@ApiModelProperty("比赛名称")
public String name;
@ApiModelProperty("logo")
private String logo;
@ApiModelProperty("地图")
private String map;
@ApiModelProperty("赛道")
private String path;
@ApiModelProperty("允许进入时间 yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime entryTime;
@ApiModelProperty("开始比赛时间 yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime startTime;
@ApiModelProperty("比赛结束时间 yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime endTime;
@ApiModelProperty("长度")
public BigDecimal distance;
@ApiModelProperty("爬坡高度")
public BigDecimal climbDistance;
@ApiModelProperty("是否已报名,只有当按用户查询时有效")
public Boolean registered;
@ApiModelProperty("报名数量")
public Integer registeredNum;
}
...@@ -9,15 +9,11 @@ import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchBann ...@@ -9,15 +9,11 @@ import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchBann
import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchMapper; import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchMapper;
import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchPlayerRegistLogMapper; import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchPlayerRegistLogMapper;
import com.antai.sport.http.server.server.api.business.simplematch.converter.SimpleMatchConverter; import com.antai.sport.http.server.server.api.business.simplematch.converter.SimpleMatchConverter;
import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchInit; import com.antai.sport.http.server.server.api.business.simplematch.dto.*;
import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchRegist;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchBanner;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchList;
import com.antai.sport.http.server.server.api.business.simplematch.mapper.SimpleMatchBusinessMapper; import com.antai.sport.http.server.server.api.business.simplematch.mapper.SimpleMatchBusinessMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -117,4 +113,23 @@ public class SimpleMatchService { ...@@ -117,4 +113,23 @@ public class SimpleMatchService {
registLog.setCreateTime(LocalDateTime.now()); registLog.setCreateTime(LocalDateTime.now());
simpleMatchPlayerRegistLogMapper.insert(registLog); simpleMatchPlayerRegistLogMapper.insert(registLog);
} }
/**
* 查询赛事详情
*
* @param param
* @return
*/
public RespSimpleMatchInfo matchInfo(ReqMatchInfo param) {
SimpleMatch match = simpleMatchMapper.selectById(param.getMatchId());
RespSimpleMatchInfo matchResp = simpleMatchConverter.toRespSimpleMatchInfo(match);
QueryWrapper<SimpleMatchPlayerRegistLog> countQuery = new QueryWrapper<>();
countQuery.eq("match_id", param.getMatchId());
Integer registeredNum = simpleMatchPlayerRegistLogMapper.selectCount(countQuery);
matchResp.setRegisteredNum(registeredNum);
countQuery.eq("player_id", param.getPlayerId());
Boolean registered = simpleMatchPlayerRegistLogMapper.selectCount(countQuery) > 0;
matchResp.setRegistered(registered);
return matchResp;
}
} }
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