From f2b97009ab26fcf7ff6c56d86e1b4ab691db21c6 Mon Sep 17 00:00:00 2001 From: gyb Date: Wed, 25 Feb 2026 15:16:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E7=A9=BA=E5=9F=9F?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AirlineAreaGroupController.java | 138 +++++++++++++++++ .../convert/AirlineAreaControllerConvert.java | 91 ++++++++++++ .../AirlineAreaGroupControllerConvert.java | 52 +++++++ ...rlineAreaGroupDetailControllerConvert.java | 81 ++++++++++ .../domain/api/IAirlineAreaDomain.java | 25 ++++ .../domain/api/IAirlineAreaGroupDomain.java | 36 +++++ .../api/IAirlineAreaGroupInfoDomain.java | 23 +++ .../convert/AirlineAreaDomainConvert.java | 43 ++++++ .../AirlineAreaGroupDomainConvert.java | 43 ++++++ .../AirlineAreaGroupInfoDomainConvert.java | 43 ++++++ .../domain/impl/AirlineAreaDomainImpl.java | 58 ++++++++ .../impl/AirlineAreaGroupDomainImpl.java | 64 ++++++++ .../impl/AirlineAreaGroupInfoDomainImpl.java | 56 +++++++ .../airline/domain/model/AirlineArea.java | 59 ++++++++ .../domain/model/AirlineAreaGroup.java | 53 +++++++ .../domain/model/AirlineAreaGroupInfo.java | 40 +++++ .../mapper/AirlineAreaGroupInfoMapper.java | 21 +++ .../mapper/AirlineAreaGroupMapper.java | 25 ++++ .../airline/mapper/AirlineAreaMapper.java | 25 ++++ .../mapper/entity/AirlineAreaEntity.java | 52 +++++++ .../mapper/entity/AirlineAreaGroupEntity.java | 40 +++++ .../entity/AirlineAreaGroupInfoEntity.java | 40 +++++ .../api/IAirlineAreaGroupInfoService.java | 21 +++ .../service/api/IAirlineAreaGroupService.java | 56 +++++++ .../service/api/IAirlineAreaService.java | 23 +++ .../AirlineAreaGroupInfoServiceConvert.java | 44 ++++++ .../AirlineAreaGroupServiceConvert.java | 44 ++++++ .../convert/AirlineAreaServiceConvert.java | 44 ++++++ .../airline/service/dto/AirlineAreaDTO.java | 58 ++++++++ .../service/dto/AirlineAreaGroupDTO.java | 53 +++++++ .../service/dto/AirlineAreaGroupInfoDTO.java | 40 +++++ .../impl/AirlineAreaGroupInfoServiceImpl.java | 53 +++++++ .../impl/AirlineAreaGroupServiceImpl.java | 139 ++++++++++++++++++ .../service/impl/AirlineAreaServiceImpl.java | 59 ++++++++ .../db/migration/V2__Create_area_tables.sql | 48 ++++++ .../airline/AirlineAreaGroupInfoMapper.xml | 62 ++++++++ .../mapper/airline/AirlineAreaGroupMapper.xml | 88 +++++++++++ .../mapper/airline/AirlineAreaMapper.xml | 83 +++++++++++ 38 files changed, 2023 insertions(+) create mode 100644 src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java create mode 100644 src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java create mode 100644 src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupControllerConvert.java create mode 100644 src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupDetailControllerConvert.java create mode 100644 src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaDomain.java create mode 100644 src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupDomain.java create mode 100644 src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupInfoDomain.java create mode 100644 src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaDomainConvert.java create mode 100644 src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupDomainConvert.java create mode 100644 src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupInfoDomainConvert.java create mode 100644 src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaDomainImpl.java create mode 100644 src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupDomainImpl.java create mode 100644 src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupInfoDomainImpl.java create mode 100644 src/main/java/com/ruoyi/airline/domain/model/AirlineArea.java create mode 100644 src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroup.java create mode 100644 src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroupInfo.java create mode 100644 src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupInfoMapper.java create mode 100644 src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupMapper.java create mode 100644 src/main/java/com/ruoyi/airline/mapper/AirlineAreaMapper.java create mode 100644 src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaEntity.java create mode 100644 src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupEntity.java create mode 100644 src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupInfoEntity.java create mode 100644 src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupInfoService.java create mode 100644 src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java create mode 100644 src/main/java/com/ruoyi/airline/service/api/IAirlineAreaService.java create mode 100644 src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupInfoServiceConvert.java create mode 100644 src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupServiceConvert.java create mode 100644 src/main/java/com/ruoyi/airline/service/convert/AirlineAreaServiceConvert.java create mode 100644 src/main/java/com/ruoyi/airline/service/dto/AirlineAreaDTO.java create mode 100644 src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupDTO.java create mode 100644 src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupInfoDTO.java create mode 100644 src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupInfoServiceImpl.java create mode 100644 src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java create mode 100644 src/main/java/com/ruoyi/airline/service/impl/AirlineAreaServiceImpl.java create mode 100644 src/main/resources/db/migration/V2__Create_area_tables.sql create mode 100644 src/main/resources/mapper/airline/AirlineAreaGroupInfoMapper.xml create mode 100644 src/main/resources/mapper/airline/AirlineAreaGroupMapper.xml create mode 100644 src/main/resources/mapper/airline/AirlineAreaMapper.xml diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java b/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java new file mode 100644 index 0000000..fcc576f --- /dev/null +++ b/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController.java @@ -0,0 +1,138 @@ +package com.ruoyi.airline.controller; + +import com.ruoyi.airline.api.domain.AirlineAreaGroupDetailVO; +import com.ruoyi.airline.api.domain.AirlineAreaGroupVO; +import com.ruoyi.airline.api.domain.AirlineAreaVO; +import com.ruoyi.airline.controller.convert.AirlineAreaControllerConvert; +import com.ruoyi.airline.controller.convert.AirlineAreaGroupControllerConvert; +import com.ruoyi.airline.controller.convert.AirlineAreaGroupDetailControllerConvert; +import com.ruoyi.airline.service.api.IAirlineAreaGroupService; +import com.ruoyi.airline.service.dto.AirlineAreaDTO; +import com.ruoyi.airline.service.dto.AirlineAreaGroupDTO; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.security.utils.SecurityUtils; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 空域分组 + * + * @author 拓恒 + */ +@RestController +@RequestMapping("/areaGroup") +@Tag(name = "空域分组管理") +public class AirlineAreaGroupController extends BaseController { + + private static final Logger log = LoggerFactory.getLogger(AirlineAreaGroupController.class); + + @Autowired + private IAirlineAreaGroupService iAirlineAreaGroupService; + + /** + * 获取空域分组列表,根据用户Id查询分组 + * + * @param airlineAreaGroupVO 查询条件 + */ + @GetMapping() + @Operation(summary = "获取所有的空域分组") + public TableDataInfo index(AirlineAreaGroupVO airlineAreaGroupVO) { + startPage(); + airlineAreaGroupVO.setUserId(SecurityUtils.getUserId()); + AirlineAreaGroupDTO dto = AirlineAreaGroupControllerConvert.to(airlineAreaGroupVO); + List list = iAirlineAreaGroupService.selectGroupList(dto); + List result = AirlineAreaGroupControllerConvert.toApiDomainList(list); + return getDataTable(result); + } + + + /** + * 新增分组 + */ + @PostMapping + @Operation(summary = "新增分组") + public AjaxResult add(@Validated @RequestBody AirlineAreaGroupVO group) { + group.setUserId(SecurityUtils.getUserId()); + AirlineAreaGroupDTO dto = AirlineAreaGroupControllerConvert.to(group); + if (iAirlineAreaGroupService.checkGroupNameUnique(dto)) { + return error("新增分组'" + group.getGroupName() + "'失败,分组名称已存在"); + } + return toAjax(iAirlineAreaGroupService.insertGroup(dto)); + } + + /** + * 修改分组 + */ + @PutMapping + @Operation(summary = "修改分组") + public AjaxResult edit(@Validated @RequestBody AirlineAreaGroupVO group) { + group.setUserId(SecurityUtils.getUserId()); + AirlineAreaGroupDTO dto = AirlineAreaGroupControllerConvert.to(group); + if (iAirlineAreaGroupService.checkGroupNameUnique(dto)) { + return error("修改分组'" + group.getGroupName() + "'失败,分组名称已存在"); + } + return toAjax(iAirlineAreaGroupService.updateGroup(dto)); + } + + /** + * 删除分组,前端校验分组下是否有空域弹出确认删除提示,如果确认会将分组及空域一起删除。 + */ + @DeleteMapping("/delete/{groupId}") + @Operation(summary = "删除分组") + public AjaxResult removeByQueryParam(@PathVariable Long groupId) { + return toAjax(iAirlineAreaGroupService.deletegroupById(SecurityUtils.getUserId(), groupId)); + } + /** + * 按照空域分组查询所有的空域信息(包含坐标点信息) + * + * @param groupId 分组ID + * @return 空域分组详情 + */ + @GetMapping("/airspaceList/{groupId}") + @Operation(summary = "按照空域分组查询所有的空域信息") + public AjaxResult selectAirspaceListByGroupId(@PathVariable Long groupId) { + AirlineAreaGroupDTO dto = iAirlineAreaGroupService.selectAirspaceListByGroupId(SecurityUtils.getUserId(), groupId); + // 使用转换类进行转换 + AirlineAreaGroupDetailVO result = AirlineAreaGroupDetailControllerConvert.from(dto); + return success(result); + } + + /** + * 修改空域信息(包含坐标点信息) + * + * @param area 空域信息 + * @return 修改结果 + */ + @PutMapping("/updateArea") + @Operation(summary = "修改空域信息") + public AjaxResult updateAreaWithPoints(@Validated @RequestBody AirlineAreaVO area) { + // 使用转换类进行转换 + AirlineAreaDTO dto = AirlineAreaControllerConvert.to(area); + return toAjax(iAirlineAreaGroupService.updateAreaWithPoints(dto)); + } + + /** + * 在指定分组下新增空域(包含坐标点信息) + * + * @param groupId 分组ID + * @param area 空域信息 + * @return 新增结果 + */ + @PostMapping("/addArea/{groupId}") + @Operation(summary = "在指定分组下新增空域") + public AjaxResult addAreaWithGroup(@PathVariable Long groupId, @Validated @RequestBody AirlineAreaVO area) { + // 使用转换类进行转换 + AirlineAreaDTO dto = AirlineAreaControllerConvert.to(area); + return toAjax(iAirlineAreaGroupService.insertAreaWithGroup(groupId, dto)); + } + +} diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java new file mode 100644 index 0000000..04346a7 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConvert.java @@ -0,0 +1,91 @@ +package com.ruoyi.airline.controller.convert; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.airline.api.domain.AirlineAreaVO; +import com.ruoyi.airline.service.dto.AirlineAreaDTO; +import com.ruoyi.common.core.utils.BaseConvert; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +/** + * 空域Controller转换类 + * 用于API VO和Service DTO之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaControllerConvert extends BaseConvert +{ + private static final Logger log = LoggerFactory.getLogger(AirlineAreaControllerConvert.class); + private static final ObjectMapper objectMapper = new ObjectMapper(); + + private static final AirlineAreaControllerConvert INSTANCE = new AirlineAreaControllerConvert(); + + private AirlineAreaControllerConvert() { + super(AirlineAreaDTO.class, AirlineAreaVO.class); + } + + public static AirlineAreaVO from(AirlineAreaDTO dto) + { + return INSTANCE.innerFrom(dto); + } + + public static AirlineAreaDTO to(AirlineAreaVO vo) + { + return INSTANCE.innerTo(vo); + } + + public static List fromList(List dtoList) + { + return INSTANCE.innerFromList(dtoList); + } + + public static List toList(List voList) + { + return INSTANCE.innerToList(voList); + } + + @Override + protected AirlineAreaVO innerFrom(AirlineAreaDTO dto) { + if (dto == null) { + return null; + } + AirlineAreaVO vo = new AirlineAreaVO(); + vo.setId(dto.getId()); + vo.setName(dto.getName()); + vo.setAreaType(dto.getAreaType()); + vo.setStatus(dto.getStatus()); + vo.setRemark(dto.getRemark()); + // 这里不需要将字符串转换为 List,因为通常是从前端到后端的转换 + return vo; + } + + @Override + protected AirlineAreaDTO innerTo(AirlineAreaVO vo) { + if (vo == null) { + return null; + } + AirlineAreaDTO dto = new AirlineAreaDTO(); + dto.setId(vo.getId()); + dto.setName(vo.getName()); + dto.setAreaType(vo.getAreaType()); + dto.setStatus(vo.getStatus()); + dto.setRemark(vo.getRemark()); + + // 将 List 转换为字符串 + if (vo.getPoints() != null && !vo.getPoints().isEmpty()) { + try { + String pointsJson = objectMapper.writeValueAsString(vo.getPoints()); + dto.setPoints(pointsJson); + } catch (JsonProcessingException e) { + log.error("转换坐标点信息失败: {}", e.getMessage()); + } + } + + return dto; + } + +} diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupControllerConvert.java new file mode 100644 index 0000000..c418575 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupControllerConvert.java @@ -0,0 +1,52 @@ +package com.ruoyi.airline.controller.convert; + +import com.ruoyi.airline.api.domain.AirlineAreaGroupVO; +import com.ruoyi.airline.service.dto.AirlineAreaGroupDTO; +import com.ruoyi.common.core.utils.BaseConvert; + +import java.util.List; + +/** + * 空域分组Controller转换类 + * 用于Controller VO和Service DTO之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaGroupControllerConvert extends BaseConvert +{ + + private static final AirlineAreaGroupControllerConvert INSTANCE = new AirlineAreaGroupControllerConvert(); + + private AirlineAreaGroupControllerConvert() { + super(AirlineAreaGroupDTO.class, AirlineAreaGroupVO.class); + } + + public static AirlineAreaGroupVO from(AirlineAreaGroupDTO dto) + { + return INSTANCE.innerFrom(dto); + } + + public static AirlineAreaGroupDTO to(AirlineAreaGroupVO vo) + { + return INSTANCE.innerTo(vo); + } + + public static List fromList(List dtoList) + { + return INSTANCE.innerFromList(dtoList); + } + + public static List toList(List voList) + { + return INSTANCE.innerToList(voList); + } + + public static List toApiDomainList(List dtoList) { + if (dtoList == null) { + return null; + } + return fromList(dtoList); + } + +} diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupDetailControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupDetailControllerConvert.java new file mode 100644 index 0000000..a85127b --- /dev/null +++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaGroupDetailControllerConvert.java @@ -0,0 +1,81 @@ +package com.ruoyi.airline.controller.convert; + +import com.ruoyi.airline.api.domain.AirlineAreaGroupDetailVO; +import com.ruoyi.airline.service.dto.AirlineAreaDTO; +import com.ruoyi.airline.service.dto.AirlineAreaGroupDTO; +import com.ruoyi.common.core.utils.BaseConvert; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; + +/** + * 空域分组详情Controller转换类 + * 用于Service DTO和API VO之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaGroupDetailControllerConvert extends BaseConvert +{ + private static final Logger log = LoggerFactory.getLogger(AirlineAreaGroupDetailControllerConvert.class); + + private static final AirlineAreaGroupDetailControllerConvert INSTANCE = new AirlineAreaGroupDetailControllerConvert(); + + private AirlineAreaGroupDetailControllerConvert() { + super(AirlineAreaGroupDTO.class, AirlineAreaGroupDetailVO.class); + } + + public static AirlineAreaGroupDetailVO from(AirlineAreaGroupDTO dto) + { + return INSTANCE.innerFrom(dto); + } + + public static AirlineAreaGroupDTO to(AirlineAreaGroupDetailVO vo) + { + return INSTANCE.innerTo(vo); + } + + public static List fromList(List dtoList) + { + return INSTANCE.innerFromList(dtoList); + } + + public static List toList(List voList) + { + return INSTANCE.innerToList(voList); + } + + @Override + protected AirlineAreaGroupDetailVO innerFrom(AirlineAreaGroupDTO dto) { + if (dto == null) { + return null; + } + AirlineAreaGroupDetailVO result = new AirlineAreaGroupDetailVO(); + result.setGroupId(dto.getGroupId()); + + if (dto.getGroupInfos() != null && !dto.getGroupInfos().isEmpty()) { + List airspaceList = new ArrayList<>(); + for (AirlineAreaDTO area : dto.getGroupInfos()) { + // 使用 AirlineAreaControllerConvert 进行转换 + com.ruoyi.airline.api.domain.AirlineAreaVO vo = AirlineAreaControllerConvert.from(area); + airspaceList.add(vo); + } + result.setAirspaceList(airspaceList); + } + return result; + } + + @Override + protected AirlineAreaGroupDTO innerTo(AirlineAreaGroupDetailVO vo) { + if (vo == null) { + return null; + } + AirlineAreaGroupDTO dto = new AirlineAreaGroupDTO(); + dto.setGroupId(vo.getGroupId()); + // 这里不需要转换 airspaceList 到 groupInfos,因为通常是从服务层到控制层的转换 + return dto; + } + +} diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaDomain.java new file mode 100644 index 0000000..5f4b457 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaDomain.java @@ -0,0 +1,25 @@ +package com.ruoyi.airline.domain.api; + +import com.ruoyi.airline.domain.model.AirlineArea; + +import java.util.List; + +/** + * 空域管理 + * + * @author 拓恒 + */ +public interface IAirlineAreaDomain { + + int insertArea(AirlineArea model); + + int updateArea(AirlineArea model); + + int deleteArea(AirlineArea model); + + List selectAreaList(AirlineArea model); + + AirlineArea selectAreaById(Long id); + + List selectAreaListByIds(List ids); +} diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupDomain.java new file mode 100644 index 0000000..b0ecbb3 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupDomain.java @@ -0,0 +1,36 @@ +package com.ruoyi.airline.domain.api; + +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.domain.model.AirlineAreaGroup; + +import java.util.List; + +/** + * 空域分组管理 + * + * @author 拓恒 + */ +public interface IAirlineAreaGroupDomain { + + /** + * 软删除 + * @param model + * @return + */ + int deletegroup(AirlineAreaGroup model); + + /** + * 检查当前用户下分组名称是否唯一 + * @param model + * @return + */ + boolean checkgroupNameUnique(AirlineAreaGroup model); + + int updateGroup(AirlineAreaGroup model); + + int insertGroup(AirlineAreaGroup model); + + List selectGroupList(AirlineAreaGroup model); + + List selectAirlineListByUserId(AirlineArea model); +} diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupInfoDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupInfoDomain.java new file mode 100644 index 0000000..759074f --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineAreaGroupInfoDomain.java @@ -0,0 +1,23 @@ +package com.ruoyi.airline.domain.api; + +import com.ruoyi.airline.domain.model.AirlineAreaGroupInfo; + +import java.util.List; + +/** + * 空域分组明细管理 + * + * @author 拓恒 + */ +public interface IAirlineAreaGroupInfoDomain { + + int insertGroupInfo(AirlineAreaGroupInfo model); + + int deleteGroupInfo(AirlineAreaGroupInfo model); + + List selectGroupInfoList(AirlineAreaGroupInfo model); + + List selectAreaIdsByGroupId(Long groupId); + + List selectGroupInfoListById(Long groupId); +} diff --git a/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaDomainConvert.java b/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaDomainConvert.java new file mode 100644 index 0000000..4eca626 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaDomainConvert.java @@ -0,0 +1,43 @@ +package com.ruoyi.airline.domain.convert; + +import com.ruoyi.common.core.utils.BaseConvert; +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.mapper.entity.AirlineAreaEntity; + +import java.util.List; + +/** + * 空域Domain转换类 + * 用于Domain模型和Mapper实体之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaDomainConvert extends BaseConvert +{ + private static final AirlineAreaDomainConvert INSTANCE = new AirlineAreaDomainConvert(); + + private AirlineAreaDomainConvert() { + super(AirlineAreaEntity.class, AirlineArea.class); + } + + public static AirlineArea from(AirlineAreaEntity entity) + { + return INSTANCE.innerFrom(entity); + } + + public static AirlineAreaEntity to(AirlineArea model) + { + return INSTANCE.innerTo(model); + } + + public static List fromList(List entityList) + { + return INSTANCE.innerFromList(entityList); + } + + public static List toList(List modelList) + { + return INSTANCE.innerToList(modelList); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupDomainConvert.java b/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupDomainConvert.java new file mode 100644 index 0000000..d7d9272 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupDomainConvert.java @@ -0,0 +1,43 @@ +package com.ruoyi.airline.domain.convert; + +import com.ruoyi.common.core.utils.BaseConvert; +import com.ruoyi.airline.domain.model.AirlineAreaGroup; +import com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity; + +import java.util.List; + +/** + * 空域分组Domain转换类 + * 用于Domain模型和Mapper实体之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaGroupDomainConvert extends BaseConvert +{ + private static final AirlineAreaGroupDomainConvert INSTANCE = new AirlineAreaGroupDomainConvert(); + + private AirlineAreaGroupDomainConvert() { + super(AirlineAreaGroupEntity.class, AirlineAreaGroup.class); + } + + public static AirlineAreaGroup from(AirlineAreaGroupEntity entity) + { + return INSTANCE.innerFrom(entity); + } + + public static AirlineAreaGroupEntity to(AirlineAreaGroup model) + { + return INSTANCE.innerTo(model); + } + + public static List fromList(List entityList) + { + return INSTANCE.innerFromList(entityList); + } + + public static List toList(List modelList) + { + return INSTANCE.innerToList(modelList); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupInfoDomainConvert.java b/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupInfoDomainConvert.java new file mode 100644 index 0000000..9393e13 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/convert/AirlineAreaGroupInfoDomainConvert.java @@ -0,0 +1,43 @@ +package com.ruoyi.airline.domain.convert; + +import com.ruoyi.common.core.utils.BaseConvert; +import com.ruoyi.airline.domain.model.AirlineAreaGroupInfo; +import com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity; + +import java.util.List; + +/** + * 空域分组明细Domain转换类 + * 用于Domain模型和Mapper实体之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaGroupInfoDomainConvert extends BaseConvert +{ + private static final AirlineAreaGroupInfoDomainConvert INSTANCE = new AirlineAreaGroupInfoDomainConvert(); + + private AirlineAreaGroupInfoDomainConvert() { + super(AirlineAreaGroupInfoEntity.class, AirlineAreaGroupInfo.class); + } + + public static AirlineAreaGroupInfo from(AirlineAreaGroupInfoEntity entity) + { + return INSTANCE.innerFrom(entity); + } + + public static AirlineAreaGroupInfoEntity to(AirlineAreaGroupInfo model) + { + return INSTANCE.innerTo(model); + } + + public static List fromList(List entityList) + { + return INSTANCE.innerFromList(entityList); + } + + public static List toList(List modelList) + { + return INSTANCE.innerToList(modelList); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaDomainImpl.java new file mode 100644 index 0000000..8bee6d4 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaDomainImpl.java @@ -0,0 +1,58 @@ +package com.ruoyi.airline.domain.impl; + +import com.ruoyi.airline.domain.api.IAirlineAreaDomain; +import com.ruoyi.airline.domain.convert.AirlineAreaDomainConvert; +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.mapper.AirlineAreaMapper; +import com.ruoyi.airline.mapper.entity.AirlineAreaEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 空域管理 + * + * @author 拓恒 + */ +@Component +public class AirlineAreaDomainImpl implements IAirlineAreaDomain { + + @Autowired + private AirlineAreaMapper airlineAreaMapper; + + @Override + public int insertArea(AirlineArea model) { + AirlineAreaEntity entity = AirlineAreaDomainConvert.to(model); + return airlineAreaMapper.insertArea(entity); + } + + @Override + public int updateArea(AirlineArea model) { + AirlineAreaEntity entity = AirlineAreaDomainConvert.to(model); + return airlineAreaMapper.updateArea(entity); + } + + @Override + public int deleteArea(AirlineArea model) { + AirlineAreaEntity entity = AirlineAreaDomainConvert.to(model); + return airlineAreaMapper.deleteArea(entity); + } + + @Override + public List selectAreaList(AirlineArea model) { + AirlineAreaEntity entity = AirlineAreaDomainConvert.to(model); + return AirlineAreaDomainConvert.fromList(airlineAreaMapper.selectAreaList(entity)); + } + + @Override + public AirlineArea selectAreaById(Long id) { + AirlineAreaEntity entity = airlineAreaMapper.selectAreaById(id); + return AirlineAreaDomainConvert.from(entity); + } + + @Override + public List selectAreaListByIds(List ids) { + return AirlineAreaDomainConvert.fromList(airlineAreaMapper.selectAreaListByIds(ids)); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupDomainImpl.java new file mode 100644 index 0000000..5ac9a47 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupDomainImpl.java @@ -0,0 +1,64 @@ +package com.ruoyi.airline.domain.impl; + +import com.ruoyi.airline.domain.api.IAirlineAreaGroupDomain; +import com.ruoyi.airline.domain.convert.AirlineAreaGroupDomainConvert; +import com.ruoyi.airline.domain.convert.AirlineAreaDomainConvert; +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.domain.model.AirlineAreaGroup; +import com.ruoyi.airline.mapper.AirlineAreaGroupMapper; +import com.ruoyi.airline.mapper.entity.AirlineAreaEntity; +import com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 空域分组管理 + * + * @author 拓恒 + */ +@Component +public class AirlineAreaGroupDomainImpl implements IAirlineAreaGroupDomain { + + @Autowired + private AirlineAreaGroupMapper airlineAreaGroupMapper; + + @Override + public int deletegroup(AirlineAreaGroup model) { + model.setDelFlag(1L); + AirlineAreaGroupEntity entity = AirlineAreaGroupDomainConvert.to(model); + return airlineAreaGroupMapper.deletegroup(entity); + } + + @Override + public boolean checkgroupNameUnique(AirlineAreaGroup model) { + AirlineAreaGroupEntity entity = AirlineAreaGroupDomainConvert.to(model); + return airlineAreaGroupMapper.checkgroupNameUnique(entity) > 0; + } + + @Override + public int updateGroup(AirlineAreaGroup model) { + AirlineAreaGroupEntity entity = AirlineAreaGroupDomainConvert.to(model); + return airlineAreaGroupMapper.updateGroup(entity); + } + + @Override + public int insertGroup(AirlineAreaGroup model) { + AirlineAreaGroupEntity entity = AirlineAreaGroupDomainConvert.to(model); + return airlineAreaGroupMapper.insertGroup(entity); + } + + @Override + public List selectGroupList(AirlineAreaGroup model) { + AirlineAreaGroupEntity entity = AirlineAreaGroupDomainConvert.to(model); + return AirlineAreaGroupDomainConvert.fromList(airlineAreaGroupMapper.selectGroupList(entity)); + } + + @Override + public List selectAirlineListByUserId(AirlineArea model) { + // 这里需要在 AirlineAreaGroupMapper 中添加对应的方法 + // 暂时返回空列表,后续需要实现 + return null; + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupInfoDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupInfoDomainImpl.java new file mode 100644 index 0000000..a5f7fd5 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineAreaGroupInfoDomainImpl.java @@ -0,0 +1,56 @@ +package com.ruoyi.airline.domain.impl; + +import com.ruoyi.airline.domain.api.IAirlineAreaGroupInfoDomain; +import com.ruoyi.airline.domain.convert.AirlineAreaGroupInfoDomainConvert; +import com.ruoyi.airline.domain.model.AirlineAreaGroupInfo; +import com.ruoyi.airline.mapper.AirlineAreaGroupInfoMapper; +import com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 空域分组明细管理 + * + * @author 拓恒 + */ +@Component +public class AirlineAreaGroupInfoDomainImpl implements IAirlineAreaGroupInfoDomain { + + @Autowired + private AirlineAreaGroupInfoMapper airlineAreaGroupInfoMapper; + + @Override + public int insertGroupInfo(AirlineAreaGroupInfo model) { + model.setDelFlag(0L); + AirlineAreaGroupInfoEntity entity = AirlineAreaGroupInfoDomainConvert.to(model); + return airlineAreaGroupInfoMapper.insertGroupInfo(entity); + } + + @Override + public int deleteGroupInfo(AirlineAreaGroupInfo model) { + model.setDelFlag(1L); + AirlineAreaGroupInfoEntity entity = AirlineAreaGroupInfoDomainConvert.to(model); + return airlineAreaGroupInfoMapper.deleteGroupInfo(entity); + } + + @Override + public List selectGroupInfoList(AirlineAreaGroupInfo model) { + AirlineAreaGroupInfoEntity entity = AirlineAreaGroupInfoDomainConvert.to(model); + return AirlineAreaGroupInfoDomainConvert.fromList(airlineAreaGroupInfoMapper.selectGroupInfoList(entity)); + } + + @Override + public List selectAreaIdsByGroupId(Long groupId) { + return airlineAreaGroupInfoMapper.selectAreaIdsByGroupId(groupId); + } + + @Override + public List selectGroupInfoListById(Long groupId) { + AirlineAreaGroupInfo model = new AirlineAreaGroupInfo(); + model.setGroupId(groupId); + AirlineAreaGroupInfoEntity entity = AirlineAreaGroupInfoDomainConvert.to(model); + return AirlineAreaGroupInfoDomainConvert.fromList(airlineAreaGroupInfoMapper.selectGroupInfoList(entity)); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/model/AirlineArea.java b/src/main/java/com/ruoyi/airline/domain/model/AirlineArea.java new file mode 100644 index 0000000..3a25b17 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/model/AirlineArea.java @@ -0,0 +1,59 @@ +package com.ruoyi.airline.domain.model; + +import com.ruoyi.common.core.web.domain.BaseEntity; +import com.ruoyi.common.core.web.domain.ExBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域 + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineArea extends ExBaseEntity { + /** + * 主键ID + */ + private Long id; + + /** + * 空域名称 + */ + private String name; + + /** + * 空域类型 + */ + private String areaType; + + /** + * 1 启用 0 停用。默认启用。 + */ + private Integer status; + + /** + * 空域点列表 + */ + private String points; + + /** + * 备注 + */ + private String remark; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("areaType", getAreaType()) + .append("status", getStatus()) + .append("points", getPoints()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroup.java b/src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroup.java new file mode 100644 index 0000000..d3875cc --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroup.java @@ -0,0 +1,53 @@ +package com.ruoyi.airline.domain.model; + +import com.ruoyi.common.core.web.domain.ExBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.List; + +/** + * 空域分组 + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaGroup extends ExBaseEntity { + /** + * 用户ID + */ + private Long groupId; + + /** + * 分组名称 + */ + private String groupName; + + /** + * 用户ID,分组自带用户归属。后期权限都是基于用户ID进行 + */ + private Long userId; + + /** + * 组关联的空域 + */ + private List groupInfos; + + /** + * 空域数量 + */ + private Integer areaCount; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("groupId", getGroupId()) + .append("groupName", getGroupName()) + .append("userId", getUserId()) + .append("areaCount", getAreaCount()) + .toString(); + } +} diff --git a/src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroupInfo.java b/src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroupInfo.java new file mode 100644 index 0000000..7179120 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/domain/model/AirlineAreaGroupInfo.java @@ -0,0 +1,40 @@ +package com.ruoyi.airline.domain.model; + +import com.ruoyi.common.core.web.domain.ExBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域分组明细 + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaGroupInfo extends ExBaseEntity { + /** + * id,主键 + */ + private Long id; + + /** + * 用户ID + */ + private Long groupId; + + /** + * 空域id + */ + private Long areaId; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("groupId", getGroupId()) + .append("areaId", getAreaId()) + .toString(); + } +} diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupInfoMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupInfoMapper.java new file mode 100644 index 0000000..da2fc5a --- /dev/null +++ b/src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupInfoMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.airline.mapper; + +import com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity; + +import java.util.List; + +/** + * 空域分组明细表 airline_area_group_info + * + * @author 拓恒 + */ +public interface AirlineAreaGroupInfoMapper { + + int insertGroupInfo(AirlineAreaGroupInfoEntity entity); + + int deleteGroupInfo(AirlineAreaGroupInfoEntity entity); + + List selectGroupInfoList(AirlineAreaGroupInfoEntity entity); + + List selectAreaIdsByGroupId(Long groupId); +} diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupMapper.java new file mode 100644 index 0000000..644da90 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/mapper/AirlineAreaGroupMapper.java @@ -0,0 +1,25 @@ +package com.ruoyi.airline.mapper; + +import com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity; + +import java.util.List; + +/** + * 空域分组表 airline_area_group + * + * @author 拓恒 + */ +public interface AirlineAreaGroupMapper { + + int checkgroupNameUnique(AirlineAreaGroupEntity model); + + int deletegroup(AirlineAreaGroupEntity entity); + + int updateGroup(AirlineAreaGroupEntity entity); + + int insertGroup(AirlineAreaGroupEntity entity); + + List selectGroupList(AirlineAreaGroupEntity entity); + + AirlineAreaGroupEntity selectGroupById(Long groupId); +} diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineAreaMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineAreaMapper.java new file mode 100644 index 0000000..3c3ac6e --- /dev/null +++ b/src/main/java/com/ruoyi/airline/mapper/AirlineAreaMapper.java @@ -0,0 +1,25 @@ +package com.ruoyi.airline.mapper; + +import com.ruoyi.airline.mapper.entity.AirlineAreaEntity; + +import java.util.List; + +/** + * 空域列表 airline_area + * + * @author 拓恒 + */ +public interface AirlineAreaMapper { + + int insertArea(AirlineAreaEntity entity); + + int updateArea(AirlineAreaEntity entity); + + int deleteArea(AirlineAreaEntity entity); + + List selectAreaList(AirlineAreaEntity entity); + + AirlineAreaEntity selectAreaById(Long id); + + List selectAreaListByIds(List ids); +} diff --git a/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaEntity.java b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaEntity.java new file mode 100644 index 0000000..29d38be --- /dev/null +++ b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaEntity.java @@ -0,0 +1,52 @@ +package com.ruoyi.airline.mapper.entity; + +import com.ruoyi.common.core.web.domain.ExBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域列表 airline_area + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaEntity extends ExBaseEntity { + /** + * 主键ID + */ + private Long id; + + /** + * 空域名称 + */ + private String name; + + /** + * 空域类型 + */ + private String areaType; + + /** + * 1 启用 0 停用。默认启用。 + */ + private Integer status; + + /** + * 空域点列表 + */ + private String points; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("areaType", getAreaType()) + .append("status", getStatus()) + .append("points", getPoints()) + .toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupEntity.java b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupEntity.java new file mode 100644 index 0000000..f44dd83 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupEntity.java @@ -0,0 +1,40 @@ +package com.ruoyi.airline.mapper.entity; + +import com.ruoyi.common.core.web.domain.ExBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域分组表 airline_area_group + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaGroupEntity extends ExBaseEntity { + /** + * 用户ID + */ + private Long groupId; + + /** + * 分组名称 + */ + private String groupName; + + /** + * 用户ID,分组自带用户归属。后期权限都是基于用户ID进行 + */ + private Long userId; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("groupId", getGroupId()) + .append("groupName", getGroupName()) + .append("userId", getUserId()) + .toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupInfoEntity.java b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupInfoEntity.java new file mode 100644 index 0000000..09b8445 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineAreaGroupInfoEntity.java @@ -0,0 +1,40 @@ +package com.ruoyi.airline.mapper.entity; + +import com.ruoyi.common.core.web.domain.ExBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域分组明细表 airline_area_group_info + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaGroupInfoEntity extends ExBaseEntity { + /** + * id,主键 + */ + private Long id; + + /** + * 用户ID + */ + private Long groupId; + + /** + * 空域id + */ + private Long areaId; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("groupId", getGroupId()) + .append("areaId", getAreaId()) + .toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupInfoService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupInfoService.java new file mode 100644 index 0000000..564861c --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupInfoService.java @@ -0,0 +1,21 @@ +package com.ruoyi.airline.service.api; + +import com.ruoyi.airline.service.dto.AirlineAreaGroupInfoDTO; + +import java.util.List; + +/** + * 空域分组明细管理 + * + * @author 拓恒 + */ +public interface IAirlineAreaGroupInfoService { + + int insertGroupInfo(AirlineAreaGroupInfoDTO groupInfo); + + int deleteGroupInfo(Long userId, Long groupId, Long areaId); + + List selectGroupInfoList(AirlineAreaGroupInfoDTO dto); + + List selectAreaIdsByGroupId(Long groupId); +} diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java new file mode 100644 index 0000000..274af16 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaGroupService.java @@ -0,0 +1,56 @@ +package com.ruoyi.airline.service.api; + +import com.ruoyi.airline.service.dto.AirlineAreaDTO; +import com.ruoyi.airline.service.dto.AirlineAreaGroupDTO; + +import java.util.List; + +/** + * 空域分组管理 + * + * @author 拓恒 + */ +public interface IAirlineAreaGroupService { + + int deletegroupById(Long userId, Long groupId); + + /** + * 检查名称是否已经存在 + * @param group + * @return + */ + boolean checkGroupNameUnique(AirlineAreaGroupDTO group); + + int updateGroup(AirlineAreaGroupDTO group); + + int insertGroup(AirlineAreaGroupDTO group); + + List selectGroupList(AirlineAreaGroupDTO dto); + +// AirlineAreaGroupDTO selectAirLineListsByGroupId(Long userId, Long groupId); + +// List selectAirlineListByUserId(AirlineAreaDTO dto); + + /** + * 按照空域分组查询所有的空域信息(包含坐标点信息) + * @param userId 用户ID + * @param groupId 分组ID + * @return 空域分组详情 + */ + AirlineAreaGroupDTO selectAirspaceListByGroupId(Long userId, Long groupId); + + /** + * 修改空域信息(包含坐标点信息) + * @param area 空域信息 + * @return 修改结果 + */ + int updateAreaWithPoints(AirlineAreaDTO area); + + /** + * 在指定分组下新增空域 + * @param groupId 分组ID + * @param area 空域信息 + * @return 新增结果 + */ + int insertAreaWithGroup(Long groupId, AirlineAreaDTO area); +} diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaService.java new file mode 100644 index 0000000..64d8c48 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineAreaService.java @@ -0,0 +1,23 @@ +package com.ruoyi.airline.service.api; + +import com.ruoyi.airline.service.dto.AirlineAreaDTO; + +import java.util.List; + +/** + * 空域管理 + * + * @author 拓恒 + */ +public interface IAirlineAreaService { + + int insertArea(AirlineAreaDTO area); + + int updateArea(AirlineAreaDTO area); + + int deleteArea(Long id); + + List selectAreaList(AirlineAreaDTO dto); + + AirlineAreaDTO selectAreaById(Long id); +} diff --git a/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupInfoServiceConvert.java b/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupInfoServiceConvert.java new file mode 100644 index 0000000..22eefd1 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupInfoServiceConvert.java @@ -0,0 +1,44 @@ +package com.ruoyi.airline.service.convert; + +import com.ruoyi.common.core.utils.BaseConvert; +import com.ruoyi.airline.domain.model.AirlineAreaGroupInfo; +import com.ruoyi.airline.service.dto.AirlineAreaGroupInfoDTO; + +import java.util.List; + +/** + * 空域分组明细Domain转换类 + * 用于Domain模型和Service DTO之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaGroupInfoServiceConvert extends BaseConvert +{ + + private static final AirlineAreaGroupInfoServiceConvert INSTANCE = new AirlineAreaGroupInfoServiceConvert(); + + private AirlineAreaGroupInfoServiceConvert() { + super(AirlineAreaGroupInfo.class, AirlineAreaGroupInfoDTO.class); + } + + public static AirlineAreaGroupInfoDTO from(AirlineAreaGroupInfo model) + { + return INSTANCE.innerFrom(model); + } + + public static AirlineAreaGroupInfo to(AirlineAreaGroupInfoDTO dto) + { + return INSTANCE.innerTo(dto); + } + + public static List fromList(List modelList) + { + return INSTANCE.innerFromList(modelList); + } + + public static List toList(List dtoList) + { + return INSTANCE.innerToList(dtoList); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupServiceConvert.java b/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupServiceConvert.java new file mode 100644 index 0000000..736d915 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaGroupServiceConvert.java @@ -0,0 +1,44 @@ +package com.ruoyi.airline.service.convert; + +import com.ruoyi.common.core.utils.BaseConvert; +import com.ruoyi.airline.domain.model.AirlineAreaGroup; +import com.ruoyi.airline.service.dto.AirlineAreaGroupDTO; + +import java.util.List; + +/** + * 空域分组Domain转换类 + * 用于Domain模型和Service DTO之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaGroupServiceConvert extends BaseConvert +{ + + private static final AirlineAreaGroupServiceConvert INSTANCE = new AirlineAreaGroupServiceConvert(); + + private AirlineAreaGroupServiceConvert() { + super(AirlineAreaGroup.class, AirlineAreaGroupDTO.class); + } + + public static AirlineAreaGroupDTO from(AirlineAreaGroup model) + { + return INSTANCE.innerFrom(model); + } + + public static AirlineAreaGroup to(AirlineAreaGroupDTO dto) + { + return INSTANCE.innerTo(dto); + } + + public static List fromList(List modelList) + { + return INSTANCE.innerFromList(modelList); + } + + public static List toList(List dtoList) + { + return INSTANCE.innerToList(dtoList); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaServiceConvert.java b/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaServiceConvert.java new file mode 100644 index 0000000..1802146 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/convert/AirlineAreaServiceConvert.java @@ -0,0 +1,44 @@ +package com.ruoyi.airline.service.convert; + +import com.ruoyi.common.core.utils.BaseConvert; +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.service.dto.AirlineAreaDTO; + +import java.util.List; + +/** + * 空域Domain转换类 + * 用于Domain模型和Service DTO之间的转换 + * + * @author ruoyi + * @date 2026-02-25 + */ +public class AirlineAreaServiceConvert extends BaseConvert +{ + + private static final AirlineAreaServiceConvert INSTANCE = new AirlineAreaServiceConvert(); + + private AirlineAreaServiceConvert() { + super(AirlineArea.class, AirlineAreaDTO.class); + } + + public static AirlineAreaDTO from(AirlineArea model) + { + return INSTANCE.innerFrom(model); + } + + public static AirlineArea to(AirlineAreaDTO dto) + { + return INSTANCE.innerTo(dto); + } + + public static List fromList(List modelList) + { + return INSTANCE.innerFromList(modelList); + } + + public static List toList(List dtoList) + { + return INSTANCE.innerToList(dtoList); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaDTO.java b/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaDTO.java new file mode 100644 index 0000000..fa4cfb4 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaDTO.java @@ -0,0 +1,58 @@ +package com.ruoyi.airline.service.dto; + +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域列表 airline_area + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaDTO extends BaseEntity { + /** + * 主键ID + */ + private Long id; + + /** + * 空域名称 + */ + private String name; + + /** + * 空域类型 + */ + private String areaType; + + /** + * 1 启用 0 停用。默认启用。 + */ + private Integer status; + + /** + * 空域点列表 + */ + private String points; + + /** + * 备注 + */ + private String remark; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("areaType", getAreaType()) + .append("status", getStatus()) + .append("points", getPoints()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupDTO.java b/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupDTO.java new file mode 100644 index 0000000..11d23a0 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupDTO.java @@ -0,0 +1,53 @@ +package com.ruoyi.airline.service.dto; + +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.List; + +/** + * 空域分组表 airline_area_group + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaGroupDTO extends BaseEntity { + /** + * 用户ID + */ + private Long groupId; + + /** + * 分组名称 + */ + private String groupName; + + /** + * 用户ID,分组自带用户归属。后期权限都是基于用户ID进行 + */ + private Long userId; + + /** + * 组关联的空域 + */ + private List groupInfos; + + /** + * 空域数量 + */ + private Integer areaCount; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("groupId", getGroupId()) + .append("groupName", getGroupName()) + .append("userId", getUserId()) + .append("areaCount", getAreaCount()) + .toString(); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupInfoDTO.java b/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupInfoDTO.java new file mode 100644 index 0000000..2fb0243 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/dto/AirlineAreaGroupInfoDTO.java @@ -0,0 +1,40 @@ +package com.ruoyi.airline.service.dto; + +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 空域分组明细表 airline_area_group_info + * + * @author 拓恒 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AirlineAreaGroupInfoDTO extends BaseEntity { + /** + * id,主键 + */ + private Long id; + + /** + * 用户ID + */ + private Long groupId; + + /** + * 空域id + */ + private Long areaId; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("groupId", getGroupId()) + .append("areaId", getAreaId()) + .toString(); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupInfoServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupInfoServiceImpl.java new file mode 100644 index 0000000..b94e552 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupInfoServiceImpl.java @@ -0,0 +1,53 @@ +package com.ruoyi.airline.service.impl; + +import com.ruoyi.airline.domain.api.IAirlineAreaGroupInfoDomain; +import com.ruoyi.airline.domain.model.AirlineAreaGroupInfo; +import com.ruoyi.airline.service.api.IAirlineAreaGroupInfoService; +import com.ruoyi.airline.service.convert.AirlineAreaGroupInfoServiceConvert; +import com.ruoyi.airline.service.dto.AirlineAreaGroupInfoDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 空域分组明细Service实现类 + * + * @author ruoyi + * @date 2026-02-25 + */ +@Service +public class AirlineAreaGroupInfoServiceImpl implements IAirlineAreaGroupInfoService { + + private static final Logger log = LoggerFactory.getLogger(AirlineAreaGroupInfoServiceImpl.class); + + @Autowired + private IAirlineAreaGroupInfoDomain iAirlineAreaGroupInfoDomain; + + @Override + public int insertGroupInfo(AirlineAreaGroupInfoDTO groupInfo) { + AirlineAreaGroupInfo model = AirlineAreaGroupInfoServiceConvert.to(groupInfo); + return iAirlineAreaGroupInfoDomain.insertGroupInfo(model); + } + + @Override + public int deleteGroupInfo(Long userId, Long groupId, Long areaId) { + AirlineAreaGroupInfo model = new AirlineAreaGroupInfo(); + model.setGroupId(groupId); + model.setAreaId(areaId); + return iAirlineAreaGroupInfoDomain.deleteGroupInfo(model); + } + + @Override + public List selectGroupInfoList(AirlineAreaGroupInfoDTO dto) { + AirlineAreaGroupInfo model = AirlineAreaGroupInfoServiceConvert.to(dto); + return AirlineAreaGroupInfoServiceConvert.fromList(iAirlineAreaGroupInfoDomain.selectGroupInfoList(model)); + } + + @Override + public List selectAreaIdsByGroupId(Long groupId) { + return iAirlineAreaGroupInfoDomain.selectAreaIdsByGroupId(groupId); + } +} diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java new file mode 100644 index 0000000..3017cc0 --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaGroupServiceImpl.java @@ -0,0 +1,139 @@ +package com.ruoyi.airline.service.impl; + +import com.alibaba.nacos.client.naming.utils.CollectionUtils; +import com.ruoyi.airline.domain.api.IAirlineAreaDomain; +import com.ruoyi.airline.domain.api.IAirlineAreaGroupDomain; +import com.ruoyi.airline.domain.api.IAirlineAreaGroupInfoDomain; +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.domain.model.AirlineAreaGroup; +import com.ruoyi.airline.domain.model.AirlineAreaGroupInfo; +import com.ruoyi.airline.service.api.IAirlineAreaGroupService; +import com.ruoyi.airline.service.convert.AirlineAreaGroupInfoServiceConvert; +import com.ruoyi.airline.service.convert.AirlineAreaGroupServiceConvert; +import com.ruoyi.airline.service.convert.AirlineAreaServiceConvert; +import com.ruoyi.airline.service.dto.AirlineAreaDTO; +import com.ruoyi.airline.service.dto.AirlineAreaGroupDTO; +import com.ruoyi.airline.service.dto.AirlineAreaGroupInfoDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 空域分组Service实现类 + * + * @author ruoyi + * @date 2026-02-25 + */ +@Service +public class AirlineAreaGroupServiceImpl implements IAirlineAreaGroupService { + + private static final Logger log = LoggerFactory.getLogger(AirlineAreaGroupServiceImpl.class); + + @Autowired + private IAirlineAreaGroupDomain iAirlineAreaGroupDomain; + + @Autowired + private IAirlineAreaGroupInfoDomain iAirlineAreaGroupInfoDomain; + + @Autowired + private IAirlineAreaDomain iAirlineAreaDomain; + + @Override + public int deletegroupById(Long userId, Long groupId) { + // 1、删除空域分组明细 + AirlineAreaGroupInfoDTO dto = new AirlineAreaGroupInfoDTO(); + dto.setGroupId(groupId); + AirlineAreaGroupInfo model = AirlineAreaGroupInfoServiceConvert.to(dto); + iAirlineAreaGroupInfoDomain.deleteGroupInfo(model); + + // 2、删除分组 + AirlineAreaGroup model2 = new AirlineAreaGroup(); + model2.setGroupId(groupId); + model2.setUserId(userId); + return iAirlineAreaGroupDomain.deletegroup(model2); + } + + @Override + public boolean checkGroupNameUnique(AirlineAreaGroupDTO group) { + AirlineAreaGroup model = AirlineAreaGroupServiceConvert.to(group); + return iAirlineAreaGroupDomain.checkgroupNameUnique(model); + } + + @Override + public int updateGroup(AirlineAreaGroupDTO group) { + AirlineAreaGroup model = AirlineAreaGroupServiceConvert.to(group); + return iAirlineAreaGroupDomain.updateGroup(model); + } + + @Override + public int insertGroup(AirlineAreaGroupDTO group) { + AirlineAreaGroup model = AirlineAreaGroupServiceConvert.to(group); + return iAirlineAreaGroupDomain.insertGroup(model); + } + + @Override + public List selectGroupList(AirlineAreaGroupDTO dto) { + AirlineAreaGroup model = AirlineAreaGroupServiceConvert.to(dto); + return AirlineAreaGroupServiceConvert.fromList(iAirlineAreaGroupDomain.selectGroupList(model)); + } + +// @Override +// public AirlineAreaGroupDTO selectAirLineListsByGroupId(Long userId, Long groupId) { +// AirlineAreaGroupDTO dto = new AirlineAreaGroupDTO(); +// dto.setUserId(userId); +// dto.setGroupId(groupId); +// List airlineAreaGroupInfoDTOS = iAirlineAreaGroupInfoDomain.selectGroupInfoListById(groupId); +// if (!CollectionUtils.isEmpty(airlineAreaGroupInfoDTOS)) { +// List ids = airlineAreaGroupInfoDTOS.stream().map(AirlineAreaGroupInfo::getAreaId).toList(); +// List airlineAreaDTOS = iAirlineAreaDomain.selectAreaListByIds(ids); +// dto.setGroupInfos(AirlineAreaServiceConvert.fromList(airlineAreaDTOS)); +// } +// return dto; +// } + +// @Override +// public List selectAirlineListByUserId(AirlineAreaDTO dto) { +// AirlineArea model = AirlineAreaServiceConvert.to(dto); +// return AirlineAreaServiceConvert.fromList(iAirlineAreaGroupDomain.selectAirlineListByUserId(model)); +// } + + @Override + public AirlineAreaGroupDTO selectAirspaceListByGroupId(Long userId, Long groupId) { + AirlineAreaGroupDTO dto = new AirlineAreaGroupDTO(); + dto.setUserId(userId); + dto.setGroupId(groupId); + List airlineAreaGroupInfoList = iAirlineAreaGroupInfoDomain.selectGroupInfoListById(groupId); + if (!CollectionUtils.isEmpty(airlineAreaGroupInfoList)) { + List ids = airlineAreaGroupInfoList.stream().map(AirlineAreaGroupInfo::getAreaId).toList(); + List airlineAreaList = iAirlineAreaDomain.selectAreaListByIds(ids); + dto.setGroupInfos(AirlineAreaServiceConvert.fromList(airlineAreaList)); + } + return dto; + } + + @Override + public int updateAreaWithPoints(AirlineAreaDTO area) { + AirlineArea model = AirlineAreaServiceConvert.to(area); + return iAirlineAreaDomain.updateArea(model); + } + + @Override + public int insertAreaWithGroup(Long groupId, AirlineAreaDTO area) { + // 1、保存空域信息 + AirlineArea model = AirlineAreaServiceConvert.to(area); + int result = iAirlineAreaDomain.insertArea(model); + + // 2、保存空域分组信息 + if (result > 0) { + AirlineAreaGroupInfo groupInfo = new AirlineAreaGroupInfo(); + groupInfo.setGroupId(groupId); + groupInfo.setAreaId(model.getId()); + iAirlineAreaGroupInfoDomain.insertGroupInfo(groupInfo); + } + + return result; + } +} diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaServiceImpl.java new file mode 100644 index 0000000..312d24c --- /dev/null +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineAreaServiceImpl.java @@ -0,0 +1,59 @@ +package com.ruoyi.airline.service.impl; + +import com.ruoyi.airline.domain.api.IAirlineAreaDomain; +import com.ruoyi.airline.domain.model.AirlineArea; +import com.ruoyi.airline.service.api.IAirlineAreaService; +import com.ruoyi.airline.service.convert.AirlineAreaServiceConvert; +import com.ruoyi.airline.service.dto.AirlineAreaDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 空域Service实现类 + * + * @author ruoyi + * @date 2026-02-25 + */ +@Service +public class AirlineAreaServiceImpl implements IAirlineAreaService { + + private static final Logger log = LoggerFactory.getLogger(AirlineAreaServiceImpl.class); + + @Autowired + private IAirlineAreaDomain iAirlineAreaDomain; + + @Override + public int insertArea(AirlineAreaDTO area) { + AirlineArea model = AirlineAreaServiceConvert.to(area); + return iAirlineAreaDomain.insertArea(model); + } + + @Override + public int updateArea(AirlineAreaDTO area) { + AirlineArea model = AirlineAreaServiceConvert.to(area); + return iAirlineAreaDomain.updateArea(model); + } + + @Override + public int deleteArea(Long id) { + AirlineArea model = new AirlineArea(); + model.setId(id); + return iAirlineAreaDomain.deleteArea(model); + } + + @Override + public List selectAreaList(AirlineAreaDTO dto) { + AirlineArea model = AirlineAreaServiceConvert.to(dto); + return AirlineAreaServiceConvert.fromList(iAirlineAreaDomain.selectAreaList(model)); + } + + @Override + public AirlineAreaDTO selectAreaById(Long id) { + AirlineArea model = iAirlineAreaDomain.selectAreaById(id); + return AirlineAreaServiceConvert.from(model); + } +} diff --git a/src/main/resources/db/migration/V2__Create_area_tables.sql b/src/main/resources/db/migration/V2__Create_area_tables.sql new file mode 100644 index 0000000..7545b94 --- /dev/null +++ b/src/main/resources/db/migration/V2__Create_area_tables.sql @@ -0,0 +1,48 @@ + -- 创建空域列表 +CREATE TABLE IF NOT EXISTS airline_area ( + id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', + name VARCHAR(255) NOT NULL COMMENT '空域名称', + area_type VARCHAR(255) COMMENT '空域类型', + status INT(11) DEFAULT 1 COMMENT '1 启用 0 停用。默认启用。', + points JSON COMMENT '空域点列表', + create_by VARCHAR(64) DEFAULT '' COMMENT '创建者', + create_time DATETIME COMMENT '创建时间', + update_by VARCHAR(64) DEFAULT '' COMMENT '更新者', + update_time DATETIME COMMENT '更新时间', + remark VARCHAR(500) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (id) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='空域列表'; + +-- 创建空域分组表 +CREATE TABLE IF NOT EXISTS airline_area_group ( + group_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID', + group_name VARCHAR(255) NOT NULL COMMENT '分组名称', + user_id BIGINT(20) NOT NULL COMMENT '用户ID,分组自带用户归属。后期权限都是基于用户ID进行', + del_flag BIGINT(20) DEFAULT 0 COMMENT '删除标识,0.未删除(默认);1,已删除', + deleted_by VARCHAR(64) DEFAULT '' COMMENT '删除者', + deleted_time DATETIME COMMENT '删除时间', + create_by VARCHAR(64) DEFAULT '' COMMENT '创建者', + create_time DATETIME COMMENT '创建时间', + update_by VARCHAR(64) DEFAULT '' COMMENT '更新者', + update_time DATETIME COMMENT '更新时间', + remark VARCHAR(500) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (group_id) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='空域分组表'; + +-- 创建空域分组明细表 +CREATE TABLE IF NOT EXISTS airline_area_group_info ( + id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'id,主键', + group_id BIGINT(20) NOT NULL COMMENT '用户ID', + area_id BIGINT(20) NOT NULL COMMENT '空域id', + del_flag BIGINT(20) DEFAULT 0 COMMENT '删除标识,0.未删除(默认);1,已删除', + deleted_by VARCHAR(64) DEFAULT '' COMMENT '删除者', + deleted_time DATETIME COMMENT '删除时间', + create_by VARCHAR(64) DEFAULT '' COMMENT '创建者', + create_time DATETIME COMMENT '创建时间', + update_by VARCHAR(64) DEFAULT '' COMMENT '更新者', + update_time DATETIME COMMENT '更新时间', + remark VARCHAR(500) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (id), + INDEX idx_group_id (group_id), + INDEX idx_area_id (area_id) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='空域分组明细表'; diff --git a/src/main/resources/mapper/airline/AirlineAreaGroupInfoMapper.xml b/src/main/resources/mapper/airline/AirlineAreaGroupInfoMapper.xml new file mode 100644 index 0000000..3662699 --- /dev/null +++ b/src/main/resources/mapper/airline/AirlineAreaGroupInfoMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + insert into airline_area_group_info (group_id, area_id, create_by, create_time, update_by, update_time, del_flag) + values (#{groupId}, #{areaId}, #{createBy}, now(), #{updateBy}, now(), 0) + + + + + update airline_area_group_info + set del_flag = 1, + deleted_by = #{deletedBy}, + deleted_time = now() + where group_id = #{groupId} + + and area_id = #{areaId} + + + + + + + + + + diff --git a/src/main/resources/mapper/airline/AirlineAreaGroupMapper.xml b/src/main/resources/mapper/airline/AirlineAreaGroupMapper.xml new file mode 100644 index 0000000..6cee267 --- /dev/null +++ b/src/main/resources/mapper/airline/AirlineAreaGroupMapper.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + update airline_area_group + set del_flag = 1, + deleted_by = #{deletedBy}, + deleted_time = now() + where group_id = #{groupId} + + and user_id = #{userId} + + + + + + update airline_area_group + set group_name = #{groupName}, + update_by = #{updateBy}, + update_time = now() + where group_id = #{groupId} + and del_flag = 0 + + and user_id = #{userId} + + + + + + insert into airline_area_group (group_name, user_id, create_by, create_time, update_by, update_time, del_flag) + values (#{groupName}, #{userId}, #{createBy}, now(), #{updateBy}, now(), 0) + + + + + + + + + diff --git a/src/main/resources/mapper/airline/AirlineAreaMapper.xml b/src/main/resources/mapper/airline/AirlineAreaMapper.xml new file mode 100644 index 0000000..57f7db9 --- /dev/null +++ b/src/main/resources/mapper/airline/AirlineAreaMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + insert into airline_area (name, area_type, status, points, create_by, create_time, update_by, update_time, remark) + values (#{name}, #{areaType}, #{status}, #{points}, #{createBy}, now(), #{updateBy}, now(), #{remark}) + + + + + update airline_area + set name = #{name}, + area_type = #{areaType}, + status = #{status}, + points = #{points}, + update_by = #{updateBy}, + update_time = now(), + remark = #{remark} + where id = #{id} + + + + + update airline_area + set status = 0, + update_by = #{updateBy}, + update_time = now() + where id = #{id} + + + + + + + + + + + +