diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java b/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java index cc9cf2b..4374550 100644 --- a/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java +++ b/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java @@ -201,4 +201,23 @@ public class AirlineAreaGroupController extends BaseController { List result = AirlineAreaControllerConvert.fromList(list); return success(result); } + + /** + * 批量删除空域 + * + * @param areaIds 空域ID列表 + * @return 删除结果 + */ + @DeleteMapping("/batchDeleteArea") + @Operation(summary = "批量删除空域") + public AjaxResult batchDeleteArea(@RequestBody List areaIds) { + if (areaIds == null || areaIds.isEmpty()) { + return error("没有需要删除的空域"); + } + int result = iAirlineAreaGroupService.batchDeleteArea(areaIds); + if (result > 0) { + return success("删除成功,共删除 " + result + " 个空域"); + } + return error("删除失败"); + } } diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java index a31098c..17291be 100644 --- a/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java @@ -79,4 +79,12 @@ public interface IAirlineAreaGroupService { * @return 空域列表 */ List selectAreaListByUserId(AirlineAreaDTO dto); + + /** + * 批量删除空域 + * + * @param areaIds 空域ID列表 + * @return 删除数量 + */ + int batchDeleteArea(List areaIds); } diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java index c6b9cf2..bd8d63f 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java @@ -233,4 +233,31 @@ public class AirlineAreaGroupServiceImpl implements IAirlineAreaGroupService { return areaDTOs; } + + @Override + public int batchDeleteArea(List areaIds) { + if (CollectionUtils.isEmpty(areaIds)) { + return 0; + } + + int deleteCount = 0; + + for (Long areaId : areaIds) { + // 1、删除空域分组明细关联 + AirlineAreaGroupInfoDTO groupInfoDto = new AirlineAreaGroupInfoDTO(); + groupInfoDto.setAreaId(areaId); + AirlineAreaGroupInfo groupInfoModel = AirlineAreaGroupInfoServiceConvert.to(groupInfoDto); + iAirlineAreaGroupInfoDomain.deleteGroupInfo(groupInfoModel); + + // 2、软删除空域 + AirlineArea areaModel = new AirlineArea(); + areaModel.setId(areaId); + int result = iAirlineAreaDomain.deleteArea(areaModel); + if (result > 0) { + deleteCount++; + } + } + + return deleteCount; + } }