Commit c2d17ae6 authored by liming's avatar liming

系列赛详情接口

parent 0c3f7307
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -27,6 +27,11 @@ public class SeriesNotice implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 通知内容
*/
private String content;
/**
* 系列赛id
*/
......
......@@ -2,11 +2,13 @@ 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.SeriesDetailsVO;
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;
......@@ -28,4 +30,10 @@ public class SeriesController {
return success(seriesService.getSeriesList());
}
@GetMapping("{id}")
@ApiOperation(value = "查询系列赛详情")
public ResponseEntity<Result<SeriesDetailsVO>> getSeriesDetails(@PathVariable("id") Long id) {
return success(seriesService.getSeriesDetails(id));
}
}
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.server.api.business.series.vo.SeriesDetailsVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@Mapper(componentModel = "spring")
public interface SeriesConverter {
@Mapping(source = "status",target = "status")
SeriesDetailsVO toSeriesDetailVO(Series series,Integer status);
}
package com.antai.sport.http.server.server.api.business.series.mapper;
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;
import java.util.List;
public interface SeriesBusinessMapper {
List<SeriesListVO> getSeriesList();
List<SeriesNoticeVO> getSeriesNotice(@Param("seriesId") Long seriesId);
}
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.mapper.SeriesMapper;
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.SeriesDetailsVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesListVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class SeriesService {
@Resource
private SeriesMapper seriesMapper;
@Resource
private SeriesConverter seriesConverter;
@Resource
private SeriesBusinessMapper seriesBusinessMapper;
......@@ -17,4 +29,27 @@ public class SeriesService {
return seriesBusinessMapper.getSeriesList();
}
public SeriesDetailsVO getSeriesDetails(Long id) {
Series series = seriesMapper.selectById(id);
if (series == null) {
throw new BusinessException("您查询的系列赛信息不存在");
}
LocalDateTime now = LocalDateTime.now();
Integer status;
if (series.getFinished()) {
status = 40;
} else if (now.isBefore(series.getApplyStartTime())) {
status = 30;
} else if (now.isAfter(series.getApplyStartTime()) && now.isBefore(series.getApplyEndTime())) {
status = 10;
} else {
status = 20;
}
SeriesDetailsVO result = seriesConverter.toSeriesDetailVO(series, status);
result.setNoticeList(seriesBusinessMapper.getSeriesNotice(id));
return result;
}
}
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;
import java.util.List;
@ApiModel("系列赛详情")
@Data
public class SeriesDetailsVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("描述")
private String description;
@ApiModelProperty("协议")
private String agreement;
@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;
@ApiModelProperty("报名数量")
private Integer applyNum;
@ApiModelProperty("通知列表")
List<SeriesNoticeVO> noticeList;
}
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 SeriesNoticeVO {
@ApiModelProperty("通知内容")
private String content;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDateTime createTime;
}
......@@ -11,4 +11,12 @@
where deleted = 0 and status = 20
) t1 order by t1.status,t1.id desc
</select>
<select id="getSeriesNotice" resultType="com.antai.sport.http.server.server.api.business.series.vo.SeriesNoticeVO">
select content,create_time
from series_notice
where status = 20
and series_id = #{seriesId}
order by create_time 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