feat:航线管理,优化接口描述,临时去除接口权限

This commit is contained in:
高大 2026-01-24 16:17:41 +08:00
parent 105836f2b8
commit 551d5149b6
11 changed files with 37 additions and 144 deletions

View File

@ -23,6 +23,11 @@
<artifactId>tuoheng-api-airline</artifactId> <artifactId>tuoheng-api-airline</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-api-system</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos --> <!-- SpringCloud Alibaba Nacos -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>

View File

@ -1,43 +0,0 @@
package com.ruoyi.airline.controller;
import com.ruoyi.airline.api.domain.AirlineDataVO;
import com.ruoyi.airline.service.api.IAirlineDataService;
import com.ruoyi.airline.service.dto.AirlineDataDTO;
import com.ruoyi.airline.controller.convert.AirlineDataControllerConvert;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 航线数据Controller
*
* @author ruoyi
* @date 2026-01-17
*/
@RestController
@RequestMapping("/airline/data")
public class AirlineDataController extends BaseController
{
@Autowired
private IAirlineDataService airlineDataService;
/**
* 查询航线数据列表
*/
@RequiresPermissions("system:dept:query")
@GetMapping()
public TableDataInfo list(AirlineDataVO airlineDataVO)
{
AirlineDataDTO dto = AirlineDataControllerConvert.toDTO(airlineDataVO);
startPage();
List<AirlineDataDTO> list = airlineDataService.selectAirlineDataList(dto);
return getDataTable(AirlineDataControllerConvert.toVOList(list));
}
}

View File

@ -11,6 +11,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.annotation.RequiresPermissions;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -45,9 +46,10 @@ public class AirlineFileController extends BaseController {
* @param entity 实体对象 * @param entity 实体对象
* @return * @return
*/ */
@RequiresPermissions("airline:file:edit") // @RequiresPermissions("airline:file:edit")
@Log(title = "修改航线属性", businessType = BusinessType.UPDATE) @Log(title = "修改航线属性", businessType = BusinessType.UPDATE)
@PutMapping("/edit") @PutMapping("/edit")
@Operation(summary = "编辑航线文件描述信息")
public AjaxResult edit(@RequestBody AirlineFileVO entity) { public AjaxResult edit(@RequestBody AirlineFileVO entity) {
AirlineFileDTO dto = AirlineFileControllerConvert.toDTO(entity); AirlineFileDTO dto = AirlineFileControllerConvert.toDTO(entity);
return success(airlineFileService.save(dto)); return success(airlineFileService.save(dto));
@ -62,9 +64,10 @@ public class AirlineFileController extends BaseController {
* *
* @param vo * @param vo
*/ */
@RequiresPermissions("airline:file:parseAndUpload") // @RequiresPermissions("airline:file:parseAndUpload")
@Log(title = "创建航线", businessType = BusinessType.UPDATE) @Log(title = "创建航线", businessType = BusinessType.UPDATE)
@PostMapping("/parseAndUpload") @PostMapping("/createOrUpdate")
@Operation(summary = "编辑航线文件内容,生产航点新文件")
public AjaxResult createOrUpdate(@RequestBody AirlineFileVO vo) { public AjaxResult createOrUpdate(@RequestBody AirlineFileVO vo) {
AirlineFileDTO airlineFile = AirlineFileControllerConvert.toDTO(vo); AirlineFileDTO airlineFile = AirlineFileControllerConvert.toDTO(vo);
try { try {

View File

@ -40,7 +40,7 @@ public class AirlineFileGroupController extends BaseController {
* @param airlineFileVO 查询条件 * @param airlineFileVO 查询条件
* @return * @return
*/ */
@RequiresPermissions("airline:group:list") // @RequiresPermissions("airline:group:list")
@GetMapping() @GetMapping()
@Operation(summary = "获取所有的航线分组") @Operation(summary = "获取所有的航线分组")
public TableDataInfo index(AirlineFileGroupVO airlineFileVO) { public TableDataInfo index(AirlineFileGroupVO airlineFileVO) {
@ -55,7 +55,7 @@ public class AirlineFileGroupController extends BaseController {
/** /**
* 根据分组编号获取详细信息 * 根据分组编号获取详细信息
*/ */
@RequiresPermissions("airline:group:query") // @RequiresPermissions("airline:group:query")
@GetMapping(value = "/{groupId}") @GetMapping(value = "/{groupId}")
@Operation(summary = "根据分组ID 获取分组详情信息") @Operation(summary = "根据分组ID 获取分组详情信息")
public AjaxResult getInfo(@PathVariable Long groupId) { public AjaxResult getInfo(@PathVariable Long groupId) {
@ -65,7 +65,7 @@ public class AirlineFileGroupController extends BaseController {
/** /**
* 新增分组 * 新增分组
*/ */
@RequiresPermissions("airline:group:add") // @RequiresPermissions("airline:group:add")
@Log(title = "新增分组", businessType = BusinessType.INSERT) @Log(title = "新增分组", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
@Operation(summary = "新增分组") @Operation(summary = "新增分组")
@ -81,7 +81,7 @@ public class AirlineFileGroupController extends BaseController {
/** /**
* 修改分组 * 修改分组
*/ */
@RequiresPermissions("airline:group:edit") // @RequiresPermissions("airline:group:edit")
@Log(title = "修改分组", businessType = BusinessType.UPDATE) @Log(title = "修改分组", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
@Operation(summary = "修改分组") @Operation(summary = "修改分组")
@ -97,7 +97,7 @@ public class AirlineFileGroupController extends BaseController {
/** /**
* 删除分组前端校验分组下是否有航线弹出确认删除提示如果确认会将分组及航线一起删除 * 删除分组前端校验分组下是否有航线弹出确认删除提示如果确认会将分组及航线一起删除
*/ */
@RequiresPermissions("airline:group:remove") // @RequiresPermissions("airline:group:remove")
@Log(title = "删除分组", businessType = BusinessType.DELETE) @Log(title = "删除分组", businessType = BusinessType.DELETE)
@DeleteMapping("/{groupId}") @DeleteMapping("/{groupId}")
@Operation(summary = "删除分组") @Operation(summary = "删除分组")

View File

@ -11,6 +11,7 @@ import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.annotation.RequiresPermissions;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -45,6 +46,7 @@ public class AirlineFileGroupInfoController extends BaseController {
*/ */
@RequiresPermissions("airline:groupInfo:list") @RequiresPermissions("airline:groupInfo:list")
@GetMapping() @GetMapping()
@Operation(summary = "编辑航线文件内容,生产航点新文件")
public TableDataInfo selectGroupInfoListById(Long groupId) { public TableDataInfo selectGroupInfoListById(Long groupId) {
startPage(); startPage();
List<AirlineFileGroupInfoDTO> list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId); List<AirlineFileGroupInfoDTO> list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
@ -61,6 +63,7 @@ public class AirlineFileGroupInfoController extends BaseController {
* @param file * @param file
*/ */
@PostMapping("/parseAndUpload") @PostMapping("/parseAndUpload")
@Operation(summary = " kmz航线文件并转换成waypoint上传 ,仅仅返航URL")
public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, Long groupId) throws IOException { public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, Long groupId) throws IOException {
AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file); AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file);
AirlineFileDTO result = iAirlineFileService.save(dto); AirlineFileDTO result = iAirlineFileService.save(dto);
@ -77,6 +80,7 @@ public class AirlineFileGroupInfoController extends BaseController {
* @return * @return
*/ */
@PostMapping("/add") @PostMapping("/add")
@Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
public AjaxResult add(@RequestBody AirlineFileGroupInfoVO vo) throws IOException { public AjaxResult add(@RequestBody AirlineFileGroupInfoVO vo) throws IOException {
if (vo.getGroupId() == null) { if (vo.getGroupId() == null) {
throw new BaseException("分组ID不能为空"); throw new BaseException("分组ID不能为空");

View File

@ -1,70 +0,0 @@
package com.ruoyi.airline.controller;
import com.ruoyi.common.core.domain.R;
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.annotation.InnerAuth;
import com.ruoyi.airline.api.domain.AirlineTempVO;
import com.ruoyi.airline.controller.convert.AirlineTempControllerConvert;
import com.ruoyi.airline.service.api.IAirlineTempService;
import com.ruoyi.airline.service.dto.AirlineTempDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 航线临时表Controller
*
* @author ruoyi
* @date 2026-01-17
*/
@RestController
@RequestMapping("/airline/temp")
public class AirlineTempController extends BaseController
{
@Autowired
private IAirlineTempService airlineTempService;
/**
* 查询航线临时表列表
*/
@GetMapping("/list")
public TableDataInfo list(AirlineTempVO airlineTemp)
{
startPage();
// API Domain Service DTO
AirlineTempDTO dto = AirlineTempControllerConvert.toDTO(airlineTemp);
List<AirlineTempDTO> dtoList = airlineTempService.selectAirlineTempList(dto);
// Service DTO API Domain
List<AirlineTempVO> list = AirlineTempControllerConvert.toApiDomainList(dtoList);
return getDataTable(list);
}
/**
* 获取航线临时表详细信息内部调用
*/
@InnerAuth
@GetMapping(value = "/{id}")
public R<AirlineTempVO> getAirlineById(@PathVariable("id") String id)
{
AirlineTempDTO dto = airlineTempService.selectAirlineTempById(id);
AirlineTempVO airlineTemp = AirlineTempControllerConvert.toVO(dto);
return R.ok(airlineTemp);
}
/**
* 获取航线临时表详细信息外部调用
*/
@GetMapping(value = "/info/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
AirlineTempDTO dto = airlineTempService.selectAirlineTempById(id);
AirlineTempVO airlineTemp = AirlineTempControllerConvert.toVO(dto);
return success(airlineTemp);
}
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.airline.domain.model;
import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.core.web.domain.ExBaseEntity; import com.ruoyi.common.core.web.domain.ExBaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -11,6 +12,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* *
* @author 拓恒 * @author 拓恒
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class AirlineFileGroup extends ExBaseEntity { public class AirlineFileGroup extends ExBaseEntity {
/** /**

View File

@ -2,6 +2,7 @@ package com.ruoyi.airline.service.dto;
import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -12,6 +13,7 @@ import java.util.List;
* *
* @author 拓恒 * @author 拓恒
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class AirlineFileGroupDTO extends BaseEntity { public class AirlineFileGroupDTO extends BaseEntity {
/** /**

View File

@ -2,6 +2,7 @@ package com.ruoyi.airline.service.dto;
import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -10,6 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* *
* @author 拓恒 * @author 拓恒
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class AirlineFileGroupInfoDTO extends BaseEntity { public class AirlineFileGroupInfoDTO extends BaseEntity {
/** /**

View File

@ -7,12 +7,10 @@ import com.ruoyi.airline.domain.api.IAirlineFileGroupInfoDomain;
import com.ruoyi.airline.domain.model.AirlineFile; import com.ruoyi.airline.domain.model.AirlineFile;
import com.ruoyi.airline.domain.model.AirlineFileGroup; import com.ruoyi.airline.domain.model.AirlineFileGroup;
import com.ruoyi.airline.domain.model.AirlineFileGroupInfo; import com.ruoyi.airline.domain.model.AirlineFileGroupInfo;
import com.ruoyi.airline.service.api.IAirlineFileGroupInfoService;
import com.ruoyi.airline.service.api.IAirlineFileGroupService; import com.ruoyi.airline.service.api.IAirlineFileGroupService;
import com.ruoyi.airline.service.convert.AirlineFileGroupInfoServiceConvert; import com.ruoyi.airline.service.convert.AirlineFileGroupInfoServiceConvert;
import com.ruoyi.airline.service.convert.AirlineFileGroupServiceConvert; import com.ruoyi.airline.service.convert.AirlineFileGroupServiceConvert;
import com.ruoyi.airline.service.convert.AirlineFileServiceConvert; import com.ruoyi.airline.service.convert.AirlineFileServiceConvert;
import com.ruoyi.airline.service.dto.AirlineFileDTO;
import com.ruoyi.airline.service.dto.AirlineFileGroupDTO; import com.ruoyi.airline.service.dto.AirlineFileGroupDTO;
import com.ruoyi.airline.service.dto.AirlineFileGroupInfoDTO; import com.ruoyi.airline.service.dto.AirlineFileGroupInfoDTO;
import com.ruoyi.common.core.exception.base.BaseException; import com.ruoyi.common.core.exception.base.BaseException;
@ -39,8 +37,6 @@ public class AirlineFileServiceGroupImpl implements IAirlineFileGroupService {
@Autowired @Autowired
private IAirlineFileGroupInfoDomain iAirlineFileGroupInfoDomain; private IAirlineFileGroupInfoDomain iAirlineFileGroupInfoDomain;
@Autowired
private IAirlineFileGroupInfoService iAirlineFileGroupInfoService;
@Autowired @Autowired
private IAirlineFileDomain iAirlineFileDomain; private IAirlineFileDomain iAirlineFileDomain;

View File

@ -1,6 +1,5 @@
package com.ruoyi.airline.service.impl; package com.ruoyi.airline.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.airline.api.domain.AirLinePointVO; import com.ruoyi.airline.api.domain.AirLinePointVO;
import com.ruoyi.airline.domain.api.IAirlineFileDomain; import com.ruoyi.airline.domain.api.IAirlineFileDomain;
import com.ruoyi.airline.domain.model.AirlineFile; import com.ruoyi.airline.domain.model.AirlineFile;
@ -10,8 +9,9 @@ import com.ruoyi.airline.domain.uitl.WayPointUitls;
import com.ruoyi.airline.service.api.IAirlineFileService; import com.ruoyi.airline.service.api.IAirlineFileService;
import com.ruoyi.airline.service.convert.AirlineFileServiceConvert; import com.ruoyi.airline.service.convert.AirlineFileServiceConvert;
import com.ruoyi.airline.service.dto.AirlineFileDTO; import com.ruoyi.airline.service.dto.AirlineFileDTO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.base.BaseException; import com.ruoyi.common.core.exception.base.BaseException;
//import com.ruoyi.file.service.ISysFileService; import com.ruoyi.system.api.RemoteFileService;
import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveInputStream; import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
@ -26,7 +26,6 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.UUID; import java.util.UUID;
/** /**
@ -39,15 +38,14 @@ import java.util.UUID;
public class AirlineFileServiceImpl implements IAirlineFileService { public class AirlineFileServiceImpl implements IAirlineFileService {
private static final Logger log = LoggerFactory.getLogger(AirlineFileServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(AirlineFileServiceImpl.class);
//
// @Autowired @Autowired
// private ISysFileService iSysFileService; private RemoteFileService remoteFileService;
@Autowired @Autowired
private IAirlineFileDomain iAirlineFileDomain; private IAirlineFileDomain iAirlineFileDomain;
@Override @Override
public AirlineFileDTO save(AirlineFileDTO dto) { public AirlineFileDTO save(AirlineFileDTO dto) {
AirlineFile model = AirlineFileServiceConvert.toModel(dto); AirlineFile model = AirlineFileServiceConvert.toModel(dto);
@ -56,8 +54,6 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
} }
/** /**
* 上传航线文件如果是KMZ的需要转换成 waypoint 并且需要将 原始航线文件保存 * 上传航线文件如果是KMZ的需要转换成 waypoint 并且需要将 原始航线文件保存
* 并且限制航线修改因为暂时没做到 从waypoingt KMZ * 并且限制航线修改因为暂时没做到 从waypoingt KMZ
@ -84,15 +80,12 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
} }
String globalHeight = kmlInfo.getDocument().getFolder().getGlobalHeight(); String globalHeight = kmlInfo.getDocument().getFolder().getGlobalHeight();
out.write(WayPointUitls.kmz2waypoint(kmlInfo)); out.write(WayPointUitls.kmz2waypoint(kmlInfo));
String fileUrl = ""; R<String> fileUrl = remoteFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
//TODO String fileUrl = iSysFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
AirlineFileDTO dto = new AirlineFileDTO(); AirlineFileDTO dto = new AirlineFileDTO();
dto.setFileUrl(fileUrl); dto.setFileUrl(fileUrl.getData());
dto.setAirVendor(""); dto.setAirVendor("");
dto.setAirType(""); dto.setAirType("");
// 原始文件 目录存储
// dto.setFileUrl(fileUrl);
return dto; return dto;
@ -126,12 +119,11 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
out.write(waypointBuilder.toString().getBytes()); out.write(waypointBuilder.toString().getBytes());
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
// 上传文件 // 上传文件
String fileUrl = ""; R<String> fileUrl = remoteFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
//TODO String fileUrl = iSysFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
out.close(); out.close();
in.close(); in.close();
//保存航线文件数据 //保存航线文件数据
airlineFile.setFileUrl(fileUrl); airlineFile.setFileUrl(fileUrl.getData());
airlineFile.setSource("airport"); airlineFile.setSource("airport");
airlineFile.setStatus(airlineFile.getStatus() == null ? 1 : airlineFile.getStatus()); airlineFile.setStatus(airlineFile.getStatus() == null ? 1 : airlineFile.getStatus());
AirlineFile model = AirlineFileServiceConvert.toModel(airlineFile); AirlineFile model = AirlineFileServiceConvert.toModel(airlineFile);