diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerControllerConvert.java index e08efbd..58635c9 100644 --- a/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerControllerConvert.java +++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineMarkerControllerConvert.java @@ -3,11 +3,8 @@ package com.ruoyi.airline.controller.convert; import com.ruoyi.airline.api.domain.AirlineMarkerVO; import com.ruoyi.airline.service.dto.AirlineMarkerDTO; import com.ruoyi.common.core.utils.BaseConvert; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.List; -import java.util.stream.Collectors; /** * 标注Controller转换类 @@ -17,8 +14,6 @@ import java.util.stream.Collectors; */ public class AirlineMarkerControllerConvert extends BaseConvert { - private static final Logger log = LoggerFactory.getLogger(AirlineMarkerControllerConvert.class); - private static final AirlineMarkerControllerConvert INSTANCE = new AirlineMarkerControllerConvert(); private AirlineMarkerControllerConvert() { @@ -54,20 +49,7 @@ public class AirlineMarkerControllerConvert extends BaseConvert { - AirlineMarkerVO.PointInfo voPoint = new AirlineMarkerVO.PointInfo(); - voPoint.setLatitude(point.getLatitude()); - voPoint.setLongitude(point.getLongitude()); - voPoint.setAsl(point.getAsl()); - return voPoint; - }) - .collect(Collectors.toList())); - } - + vo.setCoordinates(dto.getCoordinates()); vo.setDescription(dto.getDescription()); vo.setGroupId(dto.getGroupId()); vo.setCreateBy(dto.getCreateBy()); @@ -90,20 +72,7 @@ public class AirlineMarkerControllerConvert extends BaseConvert { - AirlineMarkerDTO.PointInfo dtoPoint = new AirlineMarkerDTO.PointInfo(); - dtoPoint.setLatitude(point.getLatitude()); - dtoPoint.setLongitude(point.getLongitude()); - dtoPoint.setAsl(point.getAsl()); - return dtoPoint; - }) - .collect(Collectors.toList())); - } - + dto.setCoordinates(vo.getCoordinates()); dto.setDescription(vo.getDescription()); dto.setGroupId(vo.getGroupId()); dto.setCreateBy(vo.getCreateBy()); @@ -112,4 +81,4 @@ public class AirlineMarkerControllerConvert extends BaseConvert { private static final AirlineMarkerDomainConvert INSTANCE = new AirlineMarkerDomainConvert(); - private static final ObjectMapper objectMapper = new ObjectMapper(); private AirlineMarkerDomainConvert() { super(AirlineMarkerEntity.class, AirlineMarker.class); @@ -52,16 +49,7 @@ public class AirlineMarkerDomainConvert extends BaseConvert - if (entity.getCoordinates() != null) { - try { - model.setCoordinates(objectMapper.readValue(entity.getCoordinates(), objectMapper.getTypeFactory().constructCollectionType(List.class, AirlineMarker.PointInfo.class))); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - } - + model.setCoordinates(entity.getCoordinates()); model.setDescription(entity.getDescription()); model.setCreateBy(entity.getCreateBy()); model.setCreateTime(entity.getCreateTime()); @@ -84,16 +72,7 @@ public class AirlineMarkerDomainConvert extends BaseConvert转换为JSON字符串 - if (model.getCoordinates() != null) { - try { - entity.setCoordinates(objectMapper.writeValueAsString(model.getCoordinates())); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - } - + entity.setCoordinates(model.getCoordinates()); entity.setDescription(model.getDescription()); entity.setCreateBy(model.getCreateBy()); entity.setCreateTime(model.getCreateTime()); @@ -102,4 +81,4 @@ public class AirlineMarkerDomainConvert extends BaseConvert coordinates; + private String coordinates; /** * 简介 @@ -66,24 +64,6 @@ public class AirlineMarker extends ExBaseEntity { */ private String remark; - @Data - public static class PointInfo { - /** - * 纬度 - */ - private Double latitude; - - /** - * 经度 - */ - private Double longitude; - - /** - * 海拔高度 - */ - private Double asl; - } - @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -99,4 +79,4 @@ public class AirlineMarker extends ExBaseEntity { .append("remark", getRemark()) .toString(); } -} +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerServiceConvert.java b/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerServiceConvert.java index d21dba8..a60e6cd 100644 --- a/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerServiceConvert.java +++ b/src/main/java/com/ruoyi/airline/service/convert/AirlineMarkerServiceConvert.java @@ -5,7 +5,6 @@ import com.ruoyi.airline.domain.model.AirlineMarker; import com.ruoyi.airline.service.dto.AirlineMarkerDTO; import java.util.List; -import java.util.stream.Collectors; /** * 标注Service转换类 @@ -51,20 +50,7 @@ public class AirlineMarkerServiceConvert extends BaseConvert { - AirlineMarkerDTO.PointInfo dtoPoint = new AirlineMarkerDTO.PointInfo(); - dtoPoint.setLatitude(point.getLatitude()); - dtoPoint.setLongitude(point.getLongitude()); - dtoPoint.setAsl(point.getAsl()); - return dtoPoint; - }) - .collect(Collectors.toList())); - } - + dto.setCoordinates(model.getCoordinates()); dto.setDescription(model.getDescription()); dto.setCreateBy(model.getCreateBy()); dto.setCreateTime(model.getCreateTime()); @@ -86,20 +72,7 @@ public class AirlineMarkerServiceConvert extends BaseConvert { - AirlineMarker.PointInfo modelPoint = new AirlineMarker.PointInfo(); - modelPoint.setLatitude(point.getLatitude()); - modelPoint.setLongitude(point.getLongitude()); - modelPoint.setAsl(point.getAsl()); - return modelPoint; - }) - .collect(Collectors.toList())); - } - + model.setCoordinates(dto.getCoordinates()); model.setDescription(dto.getDescription()); model.setCreateBy(dto.getCreateBy()); model.setCreateTime(dto.getCreateTime()); @@ -107,4 +80,4 @@ public class AirlineMarkerServiceConvert extends BaseConvert coordinates; + private String coordinates; /** * 简介 @@ -66,24 +64,6 @@ public class AirlineMarkerDTO extends BaseEntity { */ private Long groupId; - @Data - public static class PointInfo { - /** - * 纬度 - */ - private Double latitude; - - /** - * 经度 - */ - private Double longitude; - - /** - * 海拔高度 - */ - private Double asl; - } - @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) 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 a064ac6..76ee6c5 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java @@ -108,22 +108,35 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf public AirlineMarkerGroupInfoDTO selectMarkersByGroupId(Long groupId) { AirlineMarkerGroupInfoDTO dto = new AirlineMarkerGroupInfoDTO(); dto.setGroupId(groupId); - + // 先获取该分组下的所有标注ID 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()) { + // 建立 markerId -> groupId 的映射 + java.util.Map markerGroupMap = new java.util.HashMap<>(); + for (AirlineMarkerGroupInfo info : airlineMarkerGroupInfos) { + markerGroupMap.put(info.getMarkerId(), info.getGroupId()); + } + // 根据ID列表查询标注详情 List markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds); if (markers != null && !markers.isEmpty()) { - List markerDTOs = AirlineMarkerServiceConvert.fromList(markers); + List markerDTOs = new java.util.ArrayList<>(); + for (AirlineMarker marker : markers) { + AirlineMarkerDTO markerDTO = AirlineMarkerServiceConvert.from(marker); + if (markerGroupMap.containsKey(marker.getId())) { + markerDTO.setGroupId(markerGroupMap.get(marker.getId())); + } + markerDTOs.add(markerDTO); + } dto.setGroupInfos(markerDTOs); } } - + return dto; }