diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java index 18e3cac..6bce049 100644 --- a/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java +++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java @@ -80,6 +80,9 @@ public class AirlineAreaControllerConvert extends BaseConvert ids = airlineAreaGroupInfoList.stream().map(AirlineAreaGroupInfo::getAreaId).toList(); List airlineAreaList = iAirlineAreaDomain.selectAreaListByIds(ids); - List areaDTOs = AirlineAreaServiceConvert.fromList(airlineAreaList); - - // 为每个空域添加时间规则 - for (AirlineAreaDTO areaDTO : areaDTOs) { - List timeRules = iAirlineAreaTimeRuleService.selectTimeRuleListByAreaId(areaDTO.getId()); - areaDTO.setTimeRules(timeRules); + + // 建立 areaId -> groupId 的映射 + java.util.Map areaGroupMap = new java.util.HashMap<>(); + for (AirlineAreaGroupInfo info : airlineAreaGroupInfoList) { + areaGroupMap.put(info.getAreaId(), info.getGroupId()); } - // 转换createBy为用户名称 - for (AirlineAreaDTO areaDTO : areaDTOs) { + // 转换空域列表并设置 groupId + List areaDTOs = new java.util.ArrayList<>(); + for (AirlineArea area : airlineAreaList) { + AirlineAreaDTO areaDTO = AirlineAreaServiceConvert.from(area); + // 设置 groupId + if (areaGroupMap.containsKey(area.getId())) { + areaDTO.setGroupId(areaGroupMap.get(area.getId())); + } + + // 为每个空域添加时间规则 + List timeRules = + iAirlineAreaTimeRuleService.selectTimeRuleListByAreaId(areaDTO.getId()); + areaDTO.setTimeRules(timeRules); + + // 转换createBy为用户名称 if (areaDTO.getCreateBy() != null && !areaDTO.getCreateBy().isEmpty()) { try { Long createByUserId = Long.parseLong(areaDTO.getCreateBy()); - com.ruoyi.common.core.domain.R userNameResult = remoteUserService.getUserName(createByUserId, SecurityConstants.INNER); + com.ruoyi.common.core.domain.R userNameResult = + remoteUserService.getUserName(createByUserId, SecurityConstants.INNER); if (userNameResult != null && userNameResult.getCode() == 200) { areaDTO.setCreateByName(userNameResult.getData()); }