feat:增加批量移动接口,优化查询接口逻辑
This commit is contained in:
parent
7c77837cf5
commit
e761efb850
|
|
@ -1,18 +1,18 @@
|
||||||
package com.ruoyi.airline.controller;
|
package com.ruoyi.airline.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.airline.api.domain.AirlineMarkerGroupDetailVO;
|
||||||
import com.ruoyi.airline.api.domain.AirlineMarkerVO;
|
import com.ruoyi.airline.api.domain.AirlineMarkerVO;
|
||||||
import com.ruoyi.airline.controller.convert.AirlineMarkerControllerConvert;
|
import com.ruoyi.airline.controller.convert.AirlineMarkerControllerConvert;
|
||||||
|
import com.ruoyi.airline.controller.convert.AirlineMarkerGroupDetailControllerConvert;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerService;
|
||||||
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||||
|
import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO;
|
||||||
import com.ruoyi.common.core.web.controller.BaseController;
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.web.page.TableDataInfo;
|
|
||||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
@ -122,8 +122,9 @@ public class AirlineMarkerController extends BaseController {
|
||||||
@GetMapping("/{groupId}")
|
@GetMapping("/{groupId}")
|
||||||
@Operation(summary = "按照空域分组查询所有的标准信息")
|
@Operation(summary = "按照空域分组查询所有的标准信息")
|
||||||
public AjaxResult getInfo(@PathVariable Long groupId) {
|
public AjaxResult getInfo(@PathVariable Long groupId) {
|
||||||
List<AirlineMarkerDTO> dto = iAirlineMarkerGroupInfoService.selectMarkersByGroupId(groupId);
|
AirlineMarkerGroupInfoDTO dto = iAirlineMarkerGroupInfoService.selectMarkersByGroupId(groupId);
|
||||||
List<AirlineMarkerVO> result = AirlineMarkerControllerConvert.fromList(dto);
|
// 使用转换类进行转换
|
||||||
|
AirlineMarkerGroupDetailVO result = AirlineMarkerGroupDetailControllerConvert.from(dto);
|
||||||
return success(result);
|
return success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
package com.ruoyi.airline.controller.convert;
|
||||||
|
|
||||||
|
import com.ruoyi.airline.api.domain.AirlineMarkerGroupDetailVO;
|
||||||
|
import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO;
|
||||||
|
import com.ruoyi.common.core.utils.BaseConvert;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标注分组详情Controller转换类
|
||||||
|
* 用于API VO和Service DTO之间的转换
|
||||||
|
*
|
||||||
|
* @author 拓恒
|
||||||
|
*/
|
||||||
|
public class AirlineMarkerGroupDetailControllerConvert extends BaseConvert<AirlineMarkerGroupInfoDTO, AirlineMarkerGroupDetailVO>
|
||||||
|
{
|
||||||
|
private static final AirlineMarkerGroupDetailControllerConvert INSTANCE = new AirlineMarkerGroupDetailControllerConvert();
|
||||||
|
|
||||||
|
private AirlineMarkerGroupDetailControllerConvert() {
|
||||||
|
super(AirlineMarkerGroupInfoDTO.class, AirlineMarkerGroupDetailVO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AirlineMarkerGroupDetailVO from(AirlineMarkerGroupInfoDTO dto) {
|
||||||
|
return INSTANCE.innerFrom(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AirlineMarkerGroupInfoDTO to(AirlineMarkerGroupDetailVO vo) {
|
||||||
|
return INSTANCE.innerTo(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AirlineMarkerGroupDetailVO innerFrom(AirlineMarkerGroupInfoDTO dto) {
|
||||||
|
if (dto == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
AirlineMarkerGroupDetailVO vo = new AirlineMarkerGroupDetailVO();
|
||||||
|
vo.setGroupId(dto.getGroupId());
|
||||||
|
if (dto.getGroupInfos() != null) {
|
||||||
|
vo.setAirspaceList(dto.getGroupInfos().stream()
|
||||||
|
.map(AirlineMarkerControllerConvert::from)
|
||||||
|
.collect(java.util.stream.Collectors.toList()));
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AirlineMarkerGroupInfoDTO innerTo(AirlineMarkerGroupDetailVO vo) {
|
||||||
|
if (vo == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
AirlineMarkerGroupInfoDTO dto = new AirlineMarkerGroupInfoDTO();
|
||||||
|
dto.setGroupId(vo.getGroupId());
|
||||||
|
if (vo.getAirspaceList() != null) {
|
||||||
|
dto.setGroupInfos(vo.getAirspaceList().stream()
|
||||||
|
.map(AirlineMarkerControllerConvert::to)
|
||||||
|
.collect(java.util.stream.Collectors.toList()));
|
||||||
|
}
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,12 @@ public interface IAirlineMarkerGroupInfoService {
|
||||||
|
|
||||||
int batchDeleteMarker(List<Long> markerIds);
|
int batchDeleteMarker(List<Long> markerIds);
|
||||||
|
|
||||||
List<AirlineMarkerDTO> selectMarkersByGroupId(Long groupId);
|
/**
|
||||||
|
* 根据分组ID查询标注列表
|
||||||
|
* @param groupId 分组ID
|
||||||
|
* @return 标注分组详情
|
||||||
|
*/
|
||||||
|
AirlineMarkerGroupInfoDTO selectMarkersByGroupId(Long groupId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户下所有可用标注
|
* 获取用户下所有可用标注
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ public class AirlineMarkerGroupInfoServiceConvert extends BaseConvert<AirlineMar
|
||||||
AirlineMarkerGroupInfoDTO dto = new AirlineMarkerGroupInfoDTO();
|
AirlineMarkerGroupInfoDTO dto = new AirlineMarkerGroupInfoDTO();
|
||||||
dto.setId(model.getId());
|
dto.setId(model.getId());
|
||||||
dto.setGroupId(model.getGroupId());
|
dto.setGroupId(model.getGroupId());
|
||||||
dto.setMarkerId(model.getMarkerId());
|
|
||||||
dto.setCreateBy(model.getCreateBy());
|
dto.setCreateBy(model.getCreateBy());
|
||||||
dto.setCreateTime(model.getCreateTime());
|
dto.setCreateTime(model.getCreateTime());
|
||||||
dto.setUpdateBy(model.getUpdateBy());
|
dto.setUpdateBy(model.getUpdateBy());
|
||||||
|
|
@ -65,7 +64,6 @@ public class AirlineMarkerGroupInfoServiceConvert extends BaseConvert<AirlineMar
|
||||||
AirlineMarkerGroupInfo model = new AirlineMarkerGroupInfo();
|
AirlineMarkerGroupInfo model = new AirlineMarkerGroupInfo();
|
||||||
model.setId(dto.getId());
|
model.setId(dto.getId());
|
||||||
model.setGroupId(dto.getGroupId());
|
model.setGroupId(dto.getGroupId());
|
||||||
model.setMarkerId(dto.getMarkerId());
|
|
||||||
model.setCreateBy(dto.getCreateBy());
|
model.setCreateBy(dto.getCreateBy());
|
||||||
model.setCreateTime(dto.getCreateTime());
|
model.setCreateTime(dto.getCreateTime());
|
||||||
model.setUpdateBy(dto.getUpdateBy());
|
model.setUpdateBy(dto.getUpdateBy());
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ public class AirlineAreaGroupDTO extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
private List<AirlineAreaDTO> groupInfos;
|
private List<AirlineAreaDTO> groupInfos;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 空域数量
|
* 空域数量
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import lombok.EqualsAndHashCode;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标注分组明细表 airline_marker_group_info
|
* 标注分组明细表 airline_marker_group_info
|
||||||
*
|
*
|
||||||
|
|
@ -24,17 +26,13 @@ public class AirlineMarkerGroupInfoDTO extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
private Long groupId;
|
private Long groupId;
|
||||||
|
|
||||||
/**
|
private List<AirlineMarkerDTO> groupInfos;
|
||||||
* 标注id
|
|
||||||
*/
|
|
||||||
private Long markerId;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||||
.append("id", getId())
|
.append("id", getId())
|
||||||
.append("groupId", getGroupId())
|
.append("groupId", getGroupId())
|
||||||
.append("markerId", getMarkerId())
|
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.ruoyi.airline.domain.model.AirlineMarkerGroupInfo;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
||||||
import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert;
|
import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert;
|
||||||
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||||
|
import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO;
|
||||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -97,16 +98,26 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AirlineMarkerDTO> selectMarkersByGroupId(Long groupId) {
|
public AirlineMarkerGroupInfoDTO selectMarkersByGroupId(Long groupId) {
|
||||||
|
AirlineMarkerGroupInfoDTO dto = new AirlineMarkerGroupInfoDTO();
|
||||||
|
dto.setGroupId(groupId);
|
||||||
|
|
||||||
// 先获取该分组下的所有标注ID
|
// 先获取该分组下的所有标注ID
|
||||||
List<Long> markerIds = iAirlineMarkerGroupInfoDomain.selectMarkerIdsByGroupId(groupId);
|
AirlineMarkerGroupInfo airlineMarkerGroupInfo = new AirlineMarkerGroupInfo();
|
||||||
if (markerIds == null || markerIds.isEmpty()) {
|
airlineMarkerGroupInfo.setGroupId(groupId);
|
||||||
return List.of();
|
List<AirlineMarkerGroupInfo> airlineMarkerGroupInfos= iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(airlineMarkerGroupInfo);
|
||||||
|
List<Long> markerIds = airlineMarkerGroupInfos.stream().map(AirlineMarkerGroupInfo::getMarkerId).toList();
|
||||||
|
|
||||||
|
if (markerIds != null && !markerIds.isEmpty()) {
|
||||||
|
// 根据ID列表查询标注详情
|
||||||
|
List<AirlineMarker> markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds);
|
||||||
|
if (markers != null && !markers.isEmpty()) {
|
||||||
|
List<AirlineMarkerDTO> markerDTOs = AirlineMarkerServiceConvert.fromList(markers);
|
||||||
|
dto.setGroupInfos(markerDTOs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 根据ID列表查询标注详情
|
|
||||||
List<AirlineMarker> markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds);
|
return dto;
|
||||||
// 转换为DTO并返回
|
|
||||||
return AirlineMarkerServiceConvert.fromList(markers);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue