a-tuoheng-airline/src/main/java/com/ruoyi/airline/controller/AirlineAreaGroupController....

205 lines
7.9 KiB
Java
Raw Normal View History

2026-02-25 15:16:28 +08:00
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());
2026-02-26 15:29:13 +08:00
group.setCreateBy(SecurityUtils.getUserId().toString());
group.setUpdateBy(SecurityUtils.getUserId().toString());
2026-02-25 15:16:28 +08:00
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());
2026-02-26 15:29:13 +08:00
group.setUpdateBy(SecurityUtils.getUserId().toString());
2026-02-25 15:16:28 +08:00
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) {
2026-02-26 15:29:13 +08:00
// 设置更新人
area.setUpdateBy(SecurityUtils.getUserId().toString());
2026-02-25 15:16:28 +08:00
// 使用转换类进行转换
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) {
2026-02-26 15:29:13 +08:00
// 设置创建人和更新人
area.setCreateBy(SecurityUtils.getUserId().toString());
area.setUpdateBy(SecurityUtils.getUserId().toString());
2026-02-25 15:16:28 +08:00
// 使用转换类进行转换
AirlineAreaDTO dto = AirlineAreaControllerConvert.to(area);
return toAjax(iAirlineAreaGroupService.insertAreaWithGroup(groupId, dto));
}
/**
* 删除空域软删除
*
* @param areaId 空域ID
* @return 删除结果
*/
@DeleteMapping("/deleteArea/{areaId}")
@Operation(summary = "删除空域")
public AjaxResult deleteArea(@PathVariable Long areaId) {
return toAjax(iAirlineAreaGroupService.deleteArea(areaId));
}
2026-02-26 15:29:13 +08:00
/**
* 批量移动空域到新分组
*
* @param areaIds 空域ID列表
* @param groupId 原分组ID
* @param newGroupId 新分组ID
* @return 移动结果
*/
@PostMapping("/move/{groupId}/{newGroupId}")
@Operation(summary = "批量移动空域到新分组")
public AjaxResult batchMove(@RequestBody List<Long> areaIds, @PathVariable("groupId") Long groupId, @PathVariable("newGroupId") Long newGroupId) {
if (groupId == null) {
return error("原分组ID不能为空");
}
if (newGroupId == null) {
return error("新分组ID不能为空");
}
if (areaIds == null || areaIds.isEmpty()) {
return error("没有需要移动的空域");
}
int result = iAirlineAreaGroupService.batchMoveAreaToNewGroup(areaIds, groupId, newGroupId);
if (result > 0) {
return success("移动成功,共移动 " + result + " 个空域");
}
return error("移动失败");
}
/**
* 根据用户ID查询空域列表支持名称模糊查询
*
* @param area 查询条件
* @return 空域列表
*/
@GetMapping("/areaList")
@Operation(summary = "根据用户ID查询空域列表")
public AjaxResult selectAreaListByUserId(@ModelAttribute AirlineAreaVO area) {
2026-02-26 15:29:13 +08:00
// 设置用户ID
area.setCreateBy(SecurityUtils.getUserId().toString());
// 转换为DTO
AirlineAreaDTO dto = AirlineAreaControllerConvert.to(area);
// 调用服务层方法
List<AirlineAreaDTO> list = iAirlineAreaGroupService.selectAreaListByUserId(dto);
// 转换为VO
List<AirlineAreaVO> result = AirlineAreaControllerConvert.fromList(list);
return success(result);
}
2026-02-25 15:16:28 +08:00
}