From c7793d7c7189997a0dde310d8e89d54d6b312114 Mon Sep 17 00:00:00 2001 From: gyb Date: Mon, 16 Mar 2026 14:35:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AirlineMarkerController.java | 12 ++-- .../domain/api/IAirlineMarkerDomain.java | 7 +++ .../domain/impl/AirlineMarkerDomainImpl.java | 6 ++ .../airline/mapper/AirlineMarkerMapper.java | 7 +++ .../api/IAirlineMarkerGroupInfoService.java | 3 +- .../AirlineMarkerGroupInfoServiceImpl.java | 40 ++++-------- .../mapper/airline/AirlineMarkerMapper.xml | 63 ++++++++++++++++--- 7 files changed, 94 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java b/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java index b019ece..257dc2f 100644 --- a/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java +++ b/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java @@ -98,8 +98,10 @@ public class AirlineMarkerController extends BaseController { */ @GetMapping("/user-available") @Operation(summary = "获取用户下所有可用标注") - public AjaxResult getUserAvailableMarkers() { - List dtoList = iAirlineMarkerGroupInfoService.selectUserAvailableMarkers(); + public AjaxResult getUserAvailableMarkers(AirlineMarkerVO vo) { + AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(vo); + dto.setCreateBy(SecurityUtils.getUserId().toString()); + List dtoList = iAirlineMarkerGroupInfoService.selectAllAvailableMarkers(dto); List result = AirlineMarkerControllerConvert.fromList(dtoList); return success(result); } @@ -109,8 +111,10 @@ public class AirlineMarkerController extends BaseController { */ @GetMapping("/all-available") @Operation(summary = "获取全部可用标注") - public AjaxResult getAllAvailableMarkers() { - List dtoList = iAirlineMarkerGroupInfoService.selectAllAvailableMarkers(); + public AjaxResult getAllAvailableMarkers(AirlineMarkerVO vo) { + AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(vo); + dto.setStatus(1); + List dtoList = iAirlineMarkerGroupInfoService.selectAllAvailableMarkers(dto); List result = AirlineMarkerControllerConvert.fromList(dtoList); return success(result); } diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineMarkerDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineMarkerDomain.java index 6a8bfa8..dbb047a 100644 --- a/src/main/java/com/ruoyi/airline/domain/api/IAirlineMarkerDomain.java +++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineMarkerDomain.java @@ -31,4 +31,11 @@ public interface IAirlineMarkerDomain { * @return 标注列表 */ List selectMarkerListByUserId(AirlineMarker model); + + /** + * 查询所有可用标注(关联分组信息表) + * @param model 查询条件 + * @return 标注列表 + */ + List selectAllAvailableMarkers(AirlineMarker model); } diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineMarkerDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineMarkerDomainImpl.java index f79c983..d913faf 100644 --- a/src/main/java/com/ruoyi/airline/domain/impl/AirlineMarkerDomainImpl.java +++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineMarkerDomainImpl.java @@ -78,4 +78,10 @@ public class AirlineMarkerDomainImpl implements IAirlineMarkerDomain { AirlineMarkerEntity entity = AirlineMarkerDomainConvert.to(model); return AirlineMarkerDomainConvert.fromList(airlineMarkerMapper.selectMarkerListByUserId(entity)); } + + @Override + public List selectAllAvailableMarkers(AirlineMarker model) { + AirlineMarkerEntity entity = AirlineMarkerDomainConvert.to(model); + return AirlineMarkerDomainConvert.fromList(airlineMarkerMapper.selectAllAvailableMarkers(entity)); + } } diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineMarkerMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineMarkerMapper.java index d7a43c4..3b345a9 100644 --- a/src/main/java/com/ruoyi/airline/mapper/AirlineMarkerMapper.java +++ b/src/main/java/com/ruoyi/airline/mapper/AirlineMarkerMapper.java @@ -29,4 +29,11 @@ public interface AirlineMarkerMapper { * @return 标注列表 */ List selectMarkerListByUserId(AirlineMarkerEntity entity); + + /** + * 查询所有可用标注(关联分组信息表) + * @param entity 查询条件 + * @return 标注列表 + */ + List selectAllAvailableMarkers(AirlineMarkerEntity entity); } 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 57816b4..398d5f3 100644 --- a/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java @@ -33,9 +33,10 @@ public interface IAirlineMarkerGroupInfoService { /** * 获取全部可用标注 + * @param dto 查询条件 * @return 标注列表 */ - List selectAllAvailableMarkers(); + List selectAllAvailableMarkers(AirlineMarkerDTO dto); /** * 批量移动标注到指定分组 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 0b57d28..0851b64 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java @@ -161,42 +161,24 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf } @Override - public List selectAllAvailableMarkers() { - // 先获取所有未被删除的标注分组关系 - AirlineMarkerGroupInfo groupInfo = new AirlineMarkerGroupInfo(); - // 只查询未被删除的记录(deletedBy 为 null) - List groupInfos = iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(groupInfo); - - if (groupInfos == null || groupInfos.isEmpty()) { - return List.of(); + public List selectAllAvailableMarkers(AirlineMarkerDTO queryDto) { + // 将 DTO 转换为 Model,用于查询条件 + AirlineMarker model = new AirlineMarker(); + if (queryDto != null) { + model.setCreateBy(queryDto.getCreateBy()); + model.setMarkerName(queryDto.getMarkerName()); + model.setMarkerType(queryDto.getMarkerType()); } - // 提取标注ID列表 - List markerIds = groupInfos.stream() - .map(AirlineMarkerGroupInfo::getMarkerId) - .distinct() - .collect(java.util.stream.Collectors.toList()); - - if (markerIds.isEmpty()) { - return List.of(); - } - - // 根据标注ID列表查询标注详情 - List markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds); + // 直接通过 XML 关联 SQL 查询所有可用标注 + List markers = iAirlineMarkerDomain.selectAllAvailableMarkers(model); if (markers == null || markers.isEmpty()) { return List.of(); } - // 过滤出启用的标注 - List availableMarkers = new ArrayList<>(); - for (AirlineMarker airlineMarker : markers) { - if (airlineMarker.getStatus() == 1) { - availableMarkers.add(AirlineMarkerServiceConvert.from(airlineMarker)); - } - } - - return availableMarkers; + // 转换为 DTO 并返回 + return AirlineMarkerServiceConvert.fromList(markers); } @Override diff --git a/src/main/resources/mapper/airline/AirlineMarkerMapper.xml b/src/main/resources/mapper/airline/AirlineMarkerMapper.xml index f3f6d3a..3bcb912 100644 --- a/src/main/resources/mapper/airline/AirlineMarkerMapper.xml +++ b/src/main/resources/mapper/airline/AirlineMarkerMapper.xml @@ -31,17 +31,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update airline_marker - set marker_name = #{markerName}, - marker_type = #{markerType}, - status = #{status}, - color = #{color}, - icon = #{icon}, - font_size = #{fontSize}, - coordinates = #{coordinates}, - description = #{description}, - update_by = #{updateBy}, + + + marker_name = #{markerName}, + + + marker_type = #{markerType}, + + + status = #{status}, + + + color = #{color}, + + + icon = #{icon}, + + + font_size = #{fontSize}, + + + coordinates = #{coordinates}, + + + description = #{description}, + + + update_by = #{updateBy}, + update_time = now(), - remark = #{remark} + + remark = #{remark}, + + where id = #{id} @@ -117,4 +139,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + +