diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java b/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java index e90d418..b019ece 100644 --- a/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java +++ b/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java @@ -1,18 +1,18 @@ package com.ruoyi.airline.controller; +import com.ruoyi.airline.api.domain.AirlineMarkerGroupDetailVO; import com.ruoyi.airline.api.domain.AirlineMarkerVO; 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.IAirlineMarkerService; 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.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.security.utils.SecurityUtils; import io.swagger.v3.oas.annotations.Operation; 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.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -122,8 +122,9 @@ public class AirlineMarkerController extends BaseController { @GetMapping("/{groupId}") @Operation(summary = "按照空域分组查询所有的标准信息") public AjaxResult getInfo(@PathVariable Long groupId) { - List dto = iAirlineMarkerGroupInfoService.selectMarkersByGroupId(groupId); - List result = AirlineMarkerControllerConvert.fromList(dto); + AirlineMarkerGroupInfoDTO dto = iAirlineMarkerGroupInfoService.selectMarkersByGroupId(groupId); + // 使用转换类进行转换 + AirlineMarkerGroupDetailVO result = AirlineMarkerGroupDetailControllerConvert.from(dto); return success(result); } diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerGroupDetailControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerGroupDetailControllerConvert.java new file mode 100644 index 0000000..98a3919 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerGroupDetailControllerConvert.java @@ -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 +{ + 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; + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java index b842343..57816b4 100644 --- a/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java @@ -18,7 +18,12 @@ public interface IAirlineMarkerGroupInfoService { int batchDeleteMarker(List markerIds); - List selectMarkersByGroupId(Long groupId); + /** + * 根据分组ID查询标注列表 + * @param groupId 分组ID + * @return 标注分组详情 + */ + AirlineMarkerGroupInfoDTO selectMarkersByGroupId(Long groupId); /** * 获取用户下所有可用标注 diff --git a/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerGroupInfoServiceConvert.java b/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerGroupInfoServiceConvert.java index f3723a5..24a37a7 100644 --- a/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerGroupInfoServiceConvert.java +++ b/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerGroupInfoServiceConvert.java @@ -49,7 +49,6 @@ public class AirlineMarkerGroupInfoServiceConvert extends BaseConvert groupInfos; + + /** * 空域数量 */ diff --git a/src/main/java/com/ruoyi/airline/service/dto/AirlineMarkerGroupInfoDTO.java b/src/main/java/com/ruoyi/airline/service/dto/AirlineMarkerGroupInfoDTO.java index 6e6989a..60043cb 100644 --- a/src/main/java/com/ruoyi/airline/service/dto/AirlineMarkerGroupInfoDTO.java +++ b/src/main/java/com/ruoyi/airline/service/dto/AirlineMarkerGroupInfoDTO.java @@ -6,6 +6,8 @@ import lombok.EqualsAndHashCode; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.util.List; + /** * 标注分组明细表 airline_marker_group_info * @@ -24,17 +26,13 @@ public class AirlineMarkerGroupInfoDTO extends BaseEntity { */ private Long groupId; - /** - * 标注id - */ - private Long markerId; + private List groupInfos; @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("groupId", getGroupId()) - .append("markerId", getMarkerId()) .toString(); } } diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java index c74d62c..0b57d28 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.airline.domain.model.AirlineMarkerGroupInfo; import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService; import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert; import com.ruoyi.airline.service.dto.AirlineMarkerDTO; +import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO; import com.ruoyi.common.security.utils.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -97,16 +98,26 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf } @Override - public List selectMarkersByGroupId(Long groupId) { + public AirlineMarkerGroupInfoDTO selectMarkersByGroupId(Long groupId) { + AirlineMarkerGroupInfoDTO dto = new AirlineMarkerGroupInfoDTO(); + dto.setGroupId(groupId); + // 先获取该分组下的所有标注ID - List markerIds = iAirlineMarkerGroupInfoDomain.selectMarkerIdsByGroupId(groupId); - if (markerIds == null || markerIds.isEmpty()) { - return List.of(); + AirlineMarkerGroupInfo airlineMarkerGroupInfo = new AirlineMarkerGroupInfo(); + airlineMarkerGroupInfo.setGroupId(groupId); + List airlineMarkerGroupInfos= iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(airlineMarkerGroupInfo); + List markerIds = airlineMarkerGroupInfos.stream().map(AirlineMarkerGroupInfo::getMarkerId).toList(); + + if (markerIds != null && !markerIds.isEmpty()) { + // 根据ID列表查询标注详情 + List markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds); + if (markers != null && !markers.isEmpty()) { + List markerDTOs = AirlineMarkerServiceConvert.fromList(markers); + dto.setGroupInfos(markerDTOs); + } } - // 根据ID列表查询标注详情 - List markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds); - // 转换为DTO并返回 - return AirlineMarkerServiceConvert.fromList(markers); + + return dto; } @Override