From 3f87e669d551bdf1f500c772967411f05d3e1b92 Mon Sep 17 00:00:00 2001 From: gyb Date: Mon, 16 Mar 2026 08:31:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=A0=87=E6=B3=A8?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AirlineMarkerController.java | 70 +++++++----- .../api/IAirlineMarkerGroupInfoService.java | 4 +- .../service/api/IAirlineMarkerService.java | 5 +- .../AirlineMarkerGroupInfoServiceImpl.java | 11 +- .../impl/AirlineMarkerServiceImpl.java | 106 +++++++----------- .../mapper/airline/AirlineMarkerMapper.xml | 5 + 6 files changed, 98 insertions(+), 103 deletions(-) diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java b/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java index 005da98..2e32f77 100644 --- a/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java +++ b/src/main/java/com/ruoyi/airline/controller/AirlineMarkerController.java @@ -40,23 +40,13 @@ public class AirlineMarkerController extends BaseController { @Operation(summary = "获取标注列表") public TableDataInfo list(AirlineMarkerVO airlineMarkerVO) { startPage(); + airlineMarkerVO.setCreateBy(SecurityUtils.getUserId().toString()); AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(airlineMarkerVO); List list = iAirlineMarkerService.selectMarkerList(dto); List result = AirlineMarkerControllerConvert.fromList(list); return getDataTable(result); } - /** - * 获取标注详情 - */ - @GetMapping("/marmerList/{id}") - @Operation(summary = "获取标注详情") - public AjaxResult getInfo(@PathVariable Long id) { - AirlineMarkerDTO dto = iAirlineMarkerService.selectMarkerById(id); - AirlineMarkerVO result = AirlineMarkerControllerConvert.from(dto); - return success(result); - } - /** * 新增标注 */ @@ -69,17 +59,6 @@ public class AirlineMarkerController extends BaseController { return toAjax(iAirlineMarkerService.insertMarker(dto)); } - /** - * 修改标注 - */ - @PutMapping - @Operation(summary = "修改标注") - public AjaxResult edit(@Validated @RequestBody AirlineMarkerVO marker) { - marker.setUpdateBy(SecurityUtils.getUserId().toString()); - AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(marker); - return toAjax(iAirlineMarkerService.updateMarker(dto)); - } - /** * 删除标注(软删除) */ @@ -93,16 +72,45 @@ public class AirlineMarkerController extends BaseController { } /** - * 按照分组ID查询标注列表 - * - * @param groupId 分组ID - * @return 标注列表 + * 获取标注详情 */ - @GetMapping("/markerList/{groupId}") - @Operation(summary = "按照分组ID查询标注列表") - public AjaxResult selectMarkerListByGroupId(@PathVariable Long groupId) { - List dtos = iAirlineMarkerService.selectMarkerListByGroupId(groupId); - List result = AirlineMarkerControllerConvert.fromList(dtos); + @GetMapping("/{groupId}") + @Operation(summary = "按照空域分组查询所有的标准信息") + public AjaxResult getInfo(@PathVariable Long groupId) { + List dto = iAirlineMarkerService.selectMarkerById(groupId); + List result = AirlineMarkerControllerConvert.fromList(dto); return success(result); } + + + /** + * 修改标注 + */ + @PutMapping + @Operation(summary = "修改标注") + public AjaxResult edit(@Validated @RequestBody AirlineMarkerVO marker) { + marker.setUpdateBy(SecurityUtils.getUserId().toString()); + AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(marker); + return toAjax(iAirlineMarkerService.updateMarker(dto)); + } + + + /** + * 批量删除标注 + * + * @param markerIds 标注ID列表 + * @return 删除结果 + */ + @DeleteMapping("/batchDeleteMarker") + @Operation(summary = "批量删除标注") + public AjaxResult batchDeleteMarker(@RequestBody List markerIds) { + if (markerIds == null || markerIds.isEmpty()) { + return error("没有需要删除的标注"); + } + int result = iAirlineMarkerService.batchDeleteMarker(markerIds); + if (result > 0) { + return success("删除成功,共删除 " + result + " 个标注"); + } + return error("删除失败"); + } } 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 dc91f34..504b5ec 100644 --- a/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerGroupInfoService.java @@ -13,9 +13,11 @@ public interface IAirlineMarkerGroupInfoService { int insertMarkerGroupInfo(AirlineMarkerGroupInfoDTO groupInfo); - int deleteMarkerGroupInfo(Long userId, Long groupId, Long markerId); + int deleteMarkerGroupInfo(Long groupId, Long markerId); List selectMarkerGroupInfoList(AirlineMarkerGroupInfoDTO dto); List selectMarkerIdsByGroupId(Long groupId); + + int deleteByMarkerId(Long markerId); } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerService.java index 6170a53..d191890 100644 --- a/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerService.java +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineMarkerService.java @@ -19,7 +19,8 @@ public interface IAirlineMarkerService { List selectMarkerList(AirlineMarkerDTO dto); - AirlineMarkerDTO selectMarkerById(Long id); + List selectMarkerById(Long id); - List selectMarkerListByGroupId(Long groupId); + + int batchDeleteMarker(List markerIds); } 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 0a299e0..26e6252 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerGroupInfoServiceImpl.java @@ -5,6 +5,7 @@ import com.ruoyi.airline.domain.model.AirlineMarkerGroupInfo; import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService; import com.ruoyi.airline.service.convert.AirlineMarkerGroupInfoServiceConvert; import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO; +import com.ruoyi.common.security.utils.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -32,11 +33,12 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf } @Override - public int deleteMarkerGroupInfo(Long userId, Long groupId, Long markerId) { + public int deleteMarkerGroupInfo(Long groupId, Long markerId) { AirlineMarkerGroupInfo model = new AirlineMarkerGroupInfo(); model.setGroupId(groupId); model.setMarkerId(markerId); - model.setDeletedBy(userId != null ? userId.toString() : ""); + String userId = SecurityUtils.getUserId().toString(); + model.setDeletedBy(userId); return iAirlineMarkerGroupInfoDomain.deleteMarkerGroupInfo(model); } @@ -50,4 +52,9 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf public List selectMarkerIdsByGroupId(Long groupId) { return iAirlineMarkerGroupInfoDomain.selectMarkerIdsByGroupId(groupId); } + + @Override + public int deleteByMarkerId(Long markerId) { + return iAirlineMarkerGroupInfoDomain.deleteByMarkerId(markerId); + } } diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerServiceImpl.java index f4d8807..6277f0e 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineMarkerServiceImpl.java @@ -53,95 +53,67 @@ public class AirlineMarkerServiceImpl implements IAirlineMarkerService { @Override public int updateMarker(AirlineMarkerDTO dto) { AirlineMarker model = AirlineMarkerServiceConvert.to(dto); - int result = iAirlineMarkerDomain.updateMarker(model); - - // 处理分组关系 - if (result > 0 && dto.getGroupId() != null) { - // 先删除旧的关系 - iAirlineMarkerGroupInfoService.deleteMarkerGroupInfo(0L, null, dto.getId()); - // 再创建新的关系 - AirlineMarkerGroupInfoDTO groupInfo = new AirlineMarkerGroupInfoDTO(); - groupInfo.setGroupId(dto.getGroupId()); - groupInfo.setMarkerId(dto.getId()); - groupInfo.setCreateBy(dto.getUpdateBy()); - groupInfo.setUpdateBy(dto.getUpdateBy()); - iAirlineMarkerGroupInfoService.insertMarkerGroupInfo(groupInfo); - } - - return result; + return iAirlineMarkerDomain.updateMarker(model); } @Override public int deleteMarker(AirlineMarkerDTO dto) { - // 获取当前用户 ID - Long currentUserId = SecurityUtils.getUserId(); - + AirlineMarker marker = AirlineMarkerServiceConvert.to(dto); // 先删除分组关系 - iAirlineMarkerGroupInfoService.deleteMarkerGroupInfo(currentUserId, dto.getGroupId(), dto.getId()); - - // 再删除标注(软删除) - AirlineMarker model = new AirlineMarker(); - model.setId(dto.getId()); - model.setUpdateBy(currentUserId.toString()); - return iAirlineMarkerDomain.deleteMarker(model); + iAirlineMarkerGroupInfoService.deleteMarkerGroupInfo(dto.getGroupId(), dto.getId()); + // 再置失效 + return iAirlineMarkerDomain.deleteMarker(marker); } @Override public List selectMarkerList(AirlineMarkerDTO dto) { - - AirlineMarkerGroupInfoDTO groupInfoDTO = new AirlineMarkerGroupInfoDTO(); - groupInfoDTO.setGroupId(dto.getGroupId()); - List groupInfos = iAirlineMarkerGroupInfoService.selectMarkerGroupInfoList(groupInfoDTO); - - List result = new ArrayList<>(); + // TODO 需要修改为查所有生效的 AirlineMarker marker = AirlineMarkerServiceConvert.to(dto); + List airlineMarker = iAirlineMarkerDomain.selectMarkerList(marker); + return AirlineMarkerServiceConvert.fromList(airlineMarker); + } - // 为每个标注设置分组ID - for (AirlineMarkerGroupInfoDTO markerDto : groupInfos) { - // 查询分组关系 - marker.setId(markerDto.getId()); - AirlineMarker airlineMarker = iAirlineMarkerDomain.selectMarker(marker); - AirlineMarkerDTO airlineMarkerDTO = AirlineMarkerServiceConvert.from(airlineMarker); - airlineMarkerDTO.setGroupId(groupInfos.get(0).getGroupId()); - result.add(airlineMarkerDTO); + + @Override + public List selectMarkerById(Long groupId) { + AirlineMarkerGroupInfoDTO groupInfoDTO = new AirlineMarkerGroupInfoDTO(); + groupInfoDTO.setGroupId(groupId); + List groupInfos = iAirlineMarkerGroupInfoService.selectMarkerGroupInfoList(groupInfoDTO); + List result= new ArrayList<>(); + for (AirlineMarkerGroupInfoDTO groupInfo : groupInfos) { + AirlineMarker model = iAirlineMarkerDomain.selectMarkerById(groupInfo.getMarkerId()); + AirlineMarkerDTO dto = AirlineMarkerServiceConvert.from(model); + dto.setGroupId(groupId); + result.add(dto); } return result; } - @Override - public AirlineMarkerDTO selectMarkerById(Long id) { - AirlineMarker model = iAirlineMarkerDomain.selectMarkerById(id); - AirlineMarkerDTO dto = AirlineMarkerServiceConvert.from(model); - - // 查询分组关系 - AirlineMarkerGroupInfoDTO groupInfoDTO = new AirlineMarkerGroupInfoDTO(); - groupInfoDTO.setMarkerId(id); - List groupInfos = iAirlineMarkerGroupInfoService.selectMarkerGroupInfoList(groupInfoDTO); - if (!groupInfos.isEmpty()) { - dto.setGroupId(groupInfos.get(0).getGroupId()); - } - - return dto; - } @Override - public List selectMarkerListByGroupId(Long groupId) { - // 通过分组ID查询标注ID列表 - List markerIds = iAirlineMarkerGroupInfoService.selectMarkerIdsByGroupId(groupId); - - // 如果没有标注,返回空列表 + public int batchDeleteMarker(List markerIds) { if (markerIds == null || markerIds.isEmpty()) { - return java.util.Collections.emptyList(); + return 0; } - // 通过标注ID列表查询标注详情 - List markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds); - List dtos = AirlineMarkerServiceConvert.fromList(markers); + int deletedCount = 0; + for (Long markerId : markerIds) { - // 为每个标注设置分组ID - dtos.forEach(dto -> dto.setGroupId(groupId)); + // 先删除分组关系 + iAirlineMarkerGroupInfoService.deleteByMarkerId(markerId); + + // 再置失效 + AirlineMarker marker = new AirlineMarker(); + marker.setId(markerId); + marker.setUpdateBy(SecurityUtils.getUserId().toString()); + int result = iAirlineMarkerDomain.deleteMarker(marker); + if (result > 0) { + deletedCount++; + } + + } - return dtos; + return deletedCount; } } diff --git a/src/main/resources/mapper/airline/AirlineMarkerMapper.xml b/src/main/resources/mapper/airline/AirlineMarkerMapper.xml index 1a61dbc..b629102 100644 --- a/src/main/resources/mapper/airline/AirlineMarkerMapper.xml +++ b/src/main/resources/mapper/airline/AirlineMarkerMapper.xml @@ -59,6 +59,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, marker_name, marker_type, status, color, icon, font_size, coordinates, description, create_by, create_time, update_by, update_time, remark from airline_marker + status = 1 + + and id = #{id} + and marker_name like concat('%', #{markerName}, '%') @@ -86,6 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + and status = 1