feat:增加空域相关功能接口
This commit is contained in:
parent
bd79084fa0
commit
f2b97009ab
|
|
@ -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<AirlineAreaGroupDTO> list = iAirlineAreaGroupService.selectGroupList(dto);
|
||||
List<AirlineAreaGroupVO> 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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AirlineAreaDTO, AirlineAreaVO>
|
||||
{
|
||||
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<AirlineAreaVO> fromList(List<AirlineAreaDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerFromList(dtoList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaDTO> toList(List<AirlineAreaVO> 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<PointInfo>,因为通常是从前端到后端的转换
|
||||
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<PointInfo> 转换为字符串
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupDTO, AirlineAreaGroupVO>
|
||||
{
|
||||
|
||||
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<AirlineAreaGroupVO> fromList(List<AirlineAreaGroupDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerFromList(dtoList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroupDTO> toList(List<AirlineAreaGroupVO> voList)
|
||||
{
|
||||
return INSTANCE.innerToList(voList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroupVO> toApiDomainList(List<AirlineAreaGroupDTO> dtoList) {
|
||||
if (dtoList == null) {
|
||||
return null;
|
||||
}
|
||||
return fromList(dtoList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupDTO, AirlineAreaGroupDetailVO>
|
||||
{
|
||||
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<AirlineAreaGroupDetailVO> fromList(List<AirlineAreaGroupDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerFromList(dtoList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroupDTO> toList(List<AirlineAreaGroupDetailVO> 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<com.ruoyi.airline.api.domain.AirlineAreaVO> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AirlineArea> selectAreaList(AirlineArea model);
|
||||
|
||||
AirlineArea selectAreaById(Long id);
|
||||
|
||||
List<AirlineArea> selectAreaListByIds(List<Long> ids);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroup> selectGroupList(AirlineAreaGroup model);
|
||||
|
||||
List<AirlineArea> selectAirlineListByUserId(AirlineArea model);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfo> selectGroupInfoList(AirlineAreaGroupInfo model);
|
||||
|
||||
List<Long> selectAreaIdsByGroupId(Long groupId);
|
||||
|
||||
List<AirlineAreaGroupInfo> selectGroupInfoListById(Long groupId);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaEntity, AirlineArea>
|
||||
{
|
||||
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<AirlineArea> fromList(List<AirlineAreaEntity> entityList)
|
||||
{
|
||||
return INSTANCE.innerFromList(entityList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaEntity> toList(List<AirlineArea> modelList)
|
||||
{
|
||||
return INSTANCE.innerToList(modelList);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupEntity, AirlineAreaGroup>
|
||||
{
|
||||
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<AirlineAreaGroup> fromList(List<AirlineAreaGroupEntity> entityList)
|
||||
{
|
||||
return INSTANCE.innerFromList(entityList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroupEntity> toList(List<AirlineAreaGroup> modelList)
|
||||
{
|
||||
return INSTANCE.innerToList(modelList);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfoEntity, AirlineAreaGroupInfo>
|
||||
{
|
||||
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<AirlineAreaGroupInfo> fromList(List<AirlineAreaGroupInfoEntity> entityList)
|
||||
{
|
||||
return INSTANCE.innerFromList(entityList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroupInfoEntity> toList(List<AirlineAreaGroupInfo> modelList)
|
||||
{
|
||||
return INSTANCE.innerToList(modelList);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineArea> 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<AirlineArea> selectAreaListByIds(List<Long> ids) {
|
||||
return AirlineAreaDomainConvert.fromList(airlineAreaMapper.selectAreaListByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroup> selectGroupList(AirlineAreaGroup model) {
|
||||
AirlineAreaGroupEntity entity = AirlineAreaGroupDomainConvert.to(model);
|
||||
return AirlineAreaGroupDomainConvert.fromList(airlineAreaGroupMapper.selectGroupList(entity));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AirlineArea> selectAirlineListByUserId(AirlineArea model) {
|
||||
// 这里需要在 AirlineAreaGroupMapper 中添加对应的方法
|
||||
// 暂时返回空列表,后续需要实现
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfo> selectGroupInfoList(AirlineAreaGroupInfo model) {
|
||||
AirlineAreaGroupInfoEntity entity = AirlineAreaGroupInfoDomainConvert.to(model);
|
||||
return AirlineAreaGroupInfoDomainConvert.fromList(airlineAreaGroupInfoMapper.selectGroupInfoList(entity));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> selectAreaIdsByGroupId(Long groupId) {
|
||||
return airlineAreaGroupInfoMapper.selectAreaIdsByGroupId(groupId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AirlineAreaGroupInfo> selectGroupInfoListById(Long groupId) {
|
||||
AirlineAreaGroupInfo model = new AirlineAreaGroupInfo();
|
||||
model.setGroupId(groupId);
|
||||
AirlineAreaGroupInfoEntity entity = AirlineAreaGroupInfoDomainConvert.to(model);
|
||||
return AirlineAreaGroupInfoDomainConvert.fromList(airlineAreaGroupInfoMapper.selectGroupInfoList(entity));
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineArea> 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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfoEntity> selectGroupInfoList(AirlineAreaGroupInfoEntity entity);
|
||||
|
||||
List<Long> selectAreaIdsByGroupId(Long groupId);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupEntity> selectGroupList(AirlineAreaGroupEntity entity);
|
||||
|
||||
AirlineAreaGroupEntity selectGroupById(Long groupId);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaEntity> selectAreaList(AirlineAreaEntity entity);
|
||||
|
||||
AirlineAreaEntity selectAreaById(Long id);
|
||||
|
||||
List<AirlineAreaEntity> selectAreaListByIds(List<Long> ids);
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfoDTO> selectGroupInfoList(AirlineAreaGroupInfoDTO dto);
|
||||
|
||||
List<Long> selectAreaIdsByGroupId(Long groupId);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupDTO> selectGroupList(AirlineAreaGroupDTO dto);
|
||||
|
||||
// AirlineAreaGroupDTO selectAirLineListsByGroupId(Long userId, Long groupId);
|
||||
|
||||
// List<AirlineAreaDTO> 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);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaDTO> selectAreaList(AirlineAreaDTO dto);
|
||||
|
||||
AirlineAreaDTO selectAreaById(Long id);
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfo, AirlineAreaGroupInfoDTO>
|
||||
{
|
||||
|
||||
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<AirlineAreaGroupInfoDTO> fromList(List<AirlineAreaGroupInfo> modelList)
|
||||
{
|
||||
return INSTANCE.innerFromList(modelList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroupInfo> toList(List<AirlineAreaGroupInfoDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerToList(dtoList);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroup, AirlineAreaGroupDTO>
|
||||
{
|
||||
|
||||
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<AirlineAreaGroupDTO> fromList(List<AirlineAreaGroup> modelList)
|
||||
{
|
||||
return INSTANCE.innerFromList(modelList);
|
||||
}
|
||||
|
||||
public static List<AirlineAreaGroup> toList(List<AirlineAreaGroupDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerToList(dtoList);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineArea, AirlineAreaDTO>
|
||||
{
|
||||
|
||||
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<AirlineAreaDTO> fromList(List<AirlineArea> modelList)
|
||||
{
|
||||
return INSTANCE.innerFromList(modelList);
|
||||
}
|
||||
|
||||
public static List<AirlineArea> toList(List<AirlineAreaDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerToList(dtoList);
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaDTO> 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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupInfoDTO> selectGroupInfoList(AirlineAreaGroupInfoDTO dto) {
|
||||
AirlineAreaGroupInfo model = AirlineAreaGroupInfoServiceConvert.to(dto);
|
||||
return AirlineAreaGroupInfoServiceConvert.fromList(iAirlineAreaGroupInfoDomain.selectGroupInfoList(model));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> selectAreaIdsByGroupId(Long groupId) {
|
||||
return iAirlineAreaGroupInfoDomain.selectAreaIdsByGroupId(groupId);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaGroupDTO> 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<AirlineAreaGroupInfo> airlineAreaGroupInfoDTOS = iAirlineAreaGroupInfoDomain.selectGroupInfoListById(groupId);
|
||||
// if (!CollectionUtils.isEmpty(airlineAreaGroupInfoDTOS)) {
|
||||
// List<Long> ids = airlineAreaGroupInfoDTOS.stream().map(AirlineAreaGroupInfo::getAreaId).toList();
|
||||
// List<AirlineArea> airlineAreaDTOS = iAirlineAreaDomain.selectAreaListByIds(ids);
|
||||
// dto.setGroupInfos(AirlineAreaServiceConvert.fromList(airlineAreaDTOS));
|
||||
// }
|
||||
// return dto;
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public List<AirlineAreaDTO> 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<AirlineAreaGroupInfo> airlineAreaGroupInfoList = iAirlineAreaGroupInfoDomain.selectGroupInfoListById(groupId);
|
||||
if (!CollectionUtils.isEmpty(airlineAreaGroupInfoList)) {
|
||||
List<Long> ids = airlineAreaGroupInfoList.stream().map(AirlineAreaGroupInfo::getAreaId).toList();
|
||||
List<AirlineArea> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<AirlineAreaDTO> 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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='空域分组明细表';
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.airline.mapper.AirlineAreaGroupInfoMapper">
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="AirlineAreaGroupInfoResult" type="com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity">
|
||||
<id property="id" column="id" />
|
||||
<result property="groupId" column="group_id" />
|
||||
<result property="areaId" column="area_id" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="deletedBy" column="deleted_by" />
|
||||
<result property="deletedTime" column="deleted_time" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 插入分组明细 -->
|
||||
<insert id="insertGroupInfo" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity">
|
||||
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)
|
||||
</insert>
|
||||
|
||||
<!-- 删除分组明细(软删除) -->
|
||||
<update id="deleteGroupInfo" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity">
|
||||
update airline_area_group_info
|
||||
set del_flag = 1,
|
||||
deleted_by = #{deletedBy},
|
||||
deleted_time = now()
|
||||
where group_id = #{groupId}
|
||||
<if test="areaId != null">
|
||||
and area_id = #{areaId}
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<!-- 查询分组明细列表 -->
|
||||
<select id="selectGroupInfoList" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupInfoEntity" resultMap="AirlineAreaGroupInfoResult">
|
||||
select id, group_id, area_id, create_by, create_time, update_by, update_time, del_flag, deleted_by, deleted_time
|
||||
from airline_area_group_info
|
||||
<where>
|
||||
del_flag = 0
|
||||
<if test="groupId != null">
|
||||
and group_id = #{groupId}
|
||||
</if>
|
||||
<if test="areaId != null">
|
||||
and area_id = #{areaId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 根据分组ID查询空域ID列表 -->
|
||||
<select id="selectAreaIdsByGroupId" parameterType="java.lang.Long" resultType="java.lang.Long">
|
||||
select area_id
|
||||
from airline_area_group_info
|
||||
where group_id = #{groupId}
|
||||
and del_flag = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.airline.mapper.AirlineAreaGroupMapper">
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="AirlineAreaGroupResult" type="com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity">
|
||||
<id property="groupId" column="group_id" />
|
||||
<result property="groupName" column="group_name" />
|
||||
<result property="userId" column="user_id" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="deletedBy" column="deleted_by" />
|
||||
<result property="deletedTime" column="deleted_time" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 检查分组名称是否唯一 -->
|
||||
<select id="checkgroupNameUnique" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity" resultType="java.lang.Integer">
|
||||
select count(1) from airline_area_group
|
||||
where group_name = #{groupName}
|
||||
and del_flag = 0
|
||||
<if test="groupId != null">
|
||||
and group_id != #{groupId}
|
||||
</if>
|
||||
<if test="userId != null">
|
||||
and user_id = #{userId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 删除分组(软删除) -->
|
||||
<update id="deletegroup" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity">
|
||||
update airline_area_group
|
||||
set del_flag = 1,
|
||||
deleted_by = #{deletedBy},
|
||||
deleted_time = now()
|
||||
where group_id = #{groupId}
|
||||
<if test="userId != null">
|
||||
and user_id = #{userId}
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<!-- 更新分组 -->
|
||||
<update id="updateGroup" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity">
|
||||
update airline_area_group
|
||||
set group_name = #{groupName},
|
||||
update_by = #{updateBy},
|
||||
update_time = now()
|
||||
where group_id = #{groupId}
|
||||
and del_flag = 0
|
||||
<if test="userId != null">
|
||||
and user_id = #{userId}
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<!-- 插入分组 -->
|
||||
<insert id="insertGroup" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity">
|
||||
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)
|
||||
</insert>
|
||||
|
||||
<!-- 查询分组列表 -->
|
||||
<select id="selectGroupList" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaGroupEntity" resultMap="AirlineAreaGroupResult">
|
||||
select group_id, group_name, user_id, create_by, create_time, update_by, update_time, del_flag, deleted_by, deleted_time
|
||||
from airline_area_group
|
||||
<where>
|
||||
del_flag = 0
|
||||
<if test="groupName != null and groupName != ''">
|
||||
and group_name like concat('%', #{groupName}, '%')
|
||||
</if>
|
||||
<if test="userId != null">
|
||||
and user_id = #{userId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 根据ID查询分组 -->
|
||||
<select id="selectGroupById" parameterType="java.lang.Long" resultMap="AirlineAreaGroupResult">
|
||||
select group_id, group_name, user_id, create_by, create_time, update_by, update_time, del_flag, deleted_by, deleted_time
|
||||
from airline_area_group
|
||||
where group_id = #{groupId}
|
||||
and del_flag = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.airline.mapper.AirlineAreaMapper">
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="AirlineAreaResult" type="com.ruoyi.airline.mapper.entity.AirlineAreaEntity">
|
||||
<id property="id" column="id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="areaType" column="area_type" />
|
||||
<result property="status" column="status" />
|
||||
<result property="points" column="points" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="remark" column="remark" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 插入空域 -->
|
||||
<insert id="insertArea" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity">
|
||||
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})
|
||||
</insert>
|
||||
|
||||
<!-- 更新空域 -->
|
||||
<update id="updateArea" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity">
|
||||
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>
|
||||
|
||||
<!-- 删除空域 -->
|
||||
<update id="deleteArea" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity">
|
||||
update airline_area
|
||||
set status = 0,
|
||||
update_by = #{updateBy},
|
||||
update_time = now()
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<!-- 查询空域列表 -->
|
||||
<select id="selectAreaList" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity" resultMap="AirlineAreaResult">
|
||||
select id, name, area_type, status, points, create_by, create_time, update_by, update_time, remark
|
||||
from airline_area
|
||||
<where>
|
||||
<if test="name != null and name != ''">
|
||||
and name like concat('%', #{name}, '%')
|
||||
</if>
|
||||
<if test="areaType != null and areaType != ''">
|
||||
and area_type = #{areaType}
|
||||
</if>
|
||||
<if test="status != null">
|
||||
and status = #{status}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 根据ID查询空域 -->
|
||||
<select id="selectAreaById" parameterType="java.lang.Long" resultMap="AirlineAreaResult">
|
||||
select id, name, area_type, status, points, create_by, create_time, update_by, update_time, remark
|
||||
from airline_area
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<!-- 根据ID列表查询空域 -->
|
||||
<select id="selectAreaListByIds" parameterType="java.util.List" resultMap="AirlineAreaResult">
|
||||
select id, name, area_type, status, points, create_by, create_time, update_by, update_time, remark
|
||||
from airline_area
|
||||
where id in
|
||||
<foreach item="id" collection="list" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue