Commit 6948a781 authored by liming's avatar liming

赛区管理

parent 96cb4f93
......@@ -2,6 +2,8 @@ package com.antai.sport.http.server.management.api.business.series.controller;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.management.api.annotation.LoginUser;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesAreaDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesAreaSaveDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesListQueryDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesSaveDTO;
import com.antai.sport.http.server.management.api.business.series.service.SeriesService;
......@@ -14,6 +16,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import static com.antai.sport.http.server.common.util.ResultUtil.success;
......@@ -67,4 +70,15 @@ public class SeriesController {
return success();
}
@GetMapping("area/{seriesId}")
public ResponseEntity<Result<List<SeriesAreaDTO>>> getSeriesAreaList(@PathVariable("seriesId") Long seriesId) {
return success(seriesService.getSeriesAreaList(seriesId));
}
@PostMapping("area")
public ResponseEntity<Result> saveSeriesArea(@RequestBody SeriesAreaSaveDTO dto) {
seriesService.saveSeriesArea(dto);
return success();
}
}
package com.antai.sport.http.server.management.api.business.series.converter;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesAreaDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesSaveDTO;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesArea;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.List;
@Mapper(componentModel = "spring")
public interface SeriesConverter {
@Mapping(source = "source.logo",target = "imgUrl")
@Mapping(source = "source.logo", target = "imgUrl")
Series toSeries(SeriesSaveDTO source);
List<SeriesAreaDTO> toSeriesAreaDTO(List<SeriesArea> source);
List<SeriesArea> toSeriesArea(List<SeriesAreaDTO> source);
}
package com.antai.sport.http.server.management.api.business.series.dto;
import lombok.Data;
@Data
public class SeriesAreaDTO {
private Long id;
private String name;
private Integer showOrder;
}
package com.antai.sport.http.server.management.api.business.series.dto;
import lombok.Data;
import java.util.List;
@Data
public class SeriesAreaSaveDTO {
private List<SeriesAreaDTO> areaList;
private List<Long> deleteList;
private Long seriesId;
}
......@@ -2,21 +2,28 @@ package com.antai.sport.http.server.management.api.business.series.service;
import com.antai.sport.http.server.common.exception.BusinessException;
import com.antai.sport.http.server.management.api.business.series.converter.SeriesConverter;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesAreaDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesAreaSaveDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesListQueryDTO;
import com.antai.sport.http.server.management.api.business.series.dto.SeriesSaveDTO;
import com.antai.sport.http.server.management.api.business.series.mapper.SeriesBusinessMapper;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesListPageVO;
import com.antai.sport.http.server.management.api.business.series.vo.SeriesListVO;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesArea;
import com.antai.sport.http.server.repository.series.mapper.SeriesAreaMapper;
import com.antai.sport.http.server.repository.series.mapper.SeriesMapper;
import com.antai.sport.http.server.repository.sys.entity.SysUser;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class SeriesService {
......@@ -24,6 +31,8 @@ public class SeriesService {
private SeriesBusinessMapper seriesBusinessMapper;
@Resource
private SeriesMapper seriesMapper;
@Resource
private SeriesAreaMapper seriesAreaMapper;
@Resource
private SeriesConverter seriesConverter;
......@@ -96,4 +105,36 @@ public class SeriesService {
series.setDeleted(1);
seriesMapper.updateById(series);
}
public List<SeriesAreaDTO> getSeriesAreaList(Long seriesId) {
QueryWrapper<SeriesArea> areaQuery = new QueryWrapper<>();
areaQuery.lambda().eq(SeriesArea::getSeriesId, seriesId).eq(SeriesArea::getDeleted, 0);
List<SeriesArea> areaList = seriesAreaMapper.selectList(areaQuery);
return seriesConverter.toSeriesAreaDTO(areaList);
}
@Transactional
public void saveSeriesArea(SeriesAreaSaveDTO dto) {
List<SeriesArea> areaList = seriesConverter.toSeriesArea(dto.getAreaList());
LocalDateTime now = LocalDateTime.now();
for (SeriesArea item : areaList) {
if (item.getId() > 0) {
item.setUpdateTime(now);
seriesAreaMapper.updateById(item);
} else {
item.setId(null);
item.setSeriesId(dto.getSeriesId());
item.setCreateTime(now);
seriesAreaMapper.insert(item);
}
}
for (Long id : dto.getDeleteList()) {
SeriesArea area = seriesAreaMapper.selectById(id);
if (area != null) {
area.setDeleted(1);
seriesAreaMapper.updateById(area);
}
}
}
}
......@@ -19,7 +19,7 @@
select content,create_time
from series_notice
where status = 20 and deleted = 0
and series_id = #{seriesId}
and series_id = #{seriesId} and deleted = 0
order by create_time desc
</select>
......@@ -37,7 +37,7 @@
</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 id,name from series_area where series_id = #{seriesId} and deleted = 0 order by show_order
</select>
<select id="getLatestUserSeriesApplyInfo" resultType="com.antai.sport.http.server.repository.series.entity.SeriesApply">
......
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