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 76ee6c5..9607684 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java @@ -189,16 +189,34 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf model.setMarkerName(queryDto.getMarkerName()); model.setMarkerType(queryDto.getMarkerType()); } - + // 直接通过 XML 关联 SQL 查询所有可用标注 List markers = iAirlineMarkerDomain.selectAllAvailableMarkers(model); - + if (markers == null || markers.isEmpty()) { return List.of(); } - - // 转换为 DTO 并返回 - return AirlineMarkerServiceConvert.fromList(markers); + + // 获取所有标注分组关系,建立 markerId -> groupId 的映射 + AirlineMarkerGroupInfo groupInfoQuery = new AirlineMarkerGroupInfo(); + List groupInfos = iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(groupInfoQuery); + java.util.Map markerGroupMap = new java.util.HashMap<>(); + if (groupInfos != null) { + for (AirlineMarkerGroupInfo info : groupInfos) { + markerGroupMap.put(info.getMarkerId(), info.getGroupId()); + } + } + + // 转换为 DTO 并设置 groupId + java.util.List result = new java.util.ArrayList<>(); + for (AirlineMarker marker : markers) { + AirlineMarkerDTO dto = AirlineMarkerServiceConvert.from(marker); + if (markerGroupMap.containsKey(marker.getId())) { + dto.setGroupId(markerGroupMap.get(marker.getId())); + } + result.add(dto); + } + return result; } @Override