feat:航线管理,优化接口描述,临时去除接口权限
This commit is contained in:
parent
105836f2b8
commit
551d5149b6
5
pom.xml
5
pom.xml
|
|
@ -23,6 +23,11 @@
|
|||
<artifactId>tuoheng-api-airline</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-api-system</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- SpringCloud Alibaba Nacos -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo;
|
|||
import com.ruoyi.common.log.annotation.Log;
|
||||
import com.ruoyi.common.log.enums.BusinessType;
|
||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -45,9 +46,10 @@ public class AirlineFileController extends BaseController {
|
|||
* @param entity 实体对象
|
||||
* @return
|
||||
*/
|
||||
@RequiresPermissions("airline:file:edit")
|
||||
// @RequiresPermissions("airline:file:edit")
|
||||
@Log(title = "修改航线属性", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/edit")
|
||||
@Operation(summary = "编辑航线文件描述信息")
|
||||
public AjaxResult edit(@RequestBody AirlineFileVO entity) {
|
||||
AirlineFileDTO dto = AirlineFileControllerConvert.toDTO(entity);
|
||||
return success(airlineFileService.save(dto));
|
||||
|
|
@ -62,9 +64,10 @@ public class AirlineFileController extends BaseController {
|
|||
*
|
||||
* @param vo
|
||||
*/
|
||||
@RequiresPermissions("airline:file:parseAndUpload")
|
||||
// @RequiresPermissions("airline:file:parseAndUpload")
|
||||
@Log(title = "创建航线", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/parseAndUpload")
|
||||
@PostMapping("/createOrUpdate")
|
||||
@Operation(summary = "编辑航线文件内容,生产航点新文件")
|
||||
public AjaxResult createOrUpdate(@RequestBody AirlineFileVO vo) {
|
||||
AirlineFileDTO airlineFile = AirlineFileControllerConvert.toDTO(vo);
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class AirlineFileGroupController extends BaseController {
|
|||
* @param airlineFileVO 查询条件
|
||||
* @return
|
||||
*/
|
||||
@RequiresPermissions("airline:group:list")
|
||||
// @RequiresPermissions("airline:group:list")
|
||||
@GetMapping()
|
||||
@Operation(summary = "获取所有的航线分组")
|
||||
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}")
|
||||
@Operation(summary = "根据分组ID 获取分组详情信息")
|
||||
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)
|
||||
@PostMapping
|
||||
@Operation(summary = "新增分组")
|
||||
|
|
@ -81,7 +81,7 @@ public class AirlineFileGroupController extends BaseController {
|
|||
/**
|
||||
* 修改分组
|
||||
*/
|
||||
@RequiresPermissions("airline:group:edit")
|
||||
// @RequiresPermissions("airline:group:edit")
|
||||
@Log(title = "修改分组", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
@Operation(summary = "修改分组")
|
||||
|
|
@ -97,7 +97,7 @@ public class AirlineFileGroupController extends BaseController {
|
|||
/**
|
||||
* 删除分组,前端校验分组下是否有航线弹出确认删除提示,如果确认会将分组及航线一起删除。
|
||||
*/
|
||||
@RequiresPermissions("airline:group:remove")
|
||||
// @RequiresPermissions("airline:group:remove")
|
||||
@Log(title = "删除分组", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{groupId}")
|
||||
@Operation(summary = "删除分组")
|
||||
|
|
|
|||
|
|
@ -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.page.TableDataInfo;
|
||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -45,6 +46,7 @@ public class AirlineFileGroupInfoController extends BaseController {
|
|||
*/
|
||||
@RequiresPermissions("airline:groupInfo:list")
|
||||
@GetMapping()
|
||||
@Operation(summary = "编辑航线文件内容,生产航点新文件")
|
||||
public TableDataInfo selectGroupInfoListById(Long groupId) {
|
||||
startPage();
|
||||
List<AirlineFileGroupInfoDTO> list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
|
||||
|
|
@ -61,6 +63,7 @@ public class AirlineFileGroupInfoController extends BaseController {
|
|||
* @param file
|
||||
*/
|
||||
@PostMapping("/parseAndUpload")
|
||||
@Operation(summary = " kmz航线文件,并转换成waypoint上传 ,仅仅返航URL")
|
||||
public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, Long groupId) throws IOException {
|
||||
AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file);
|
||||
AirlineFileDTO result = iAirlineFileService.save(dto);
|
||||
|
|
@ -77,6 +80,7 @@ public class AirlineFileGroupInfoController extends BaseController {
|
|||
* @return
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
@Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
|
||||
public AjaxResult add(@RequestBody AirlineFileGroupInfoVO vo) throws IOException {
|
||||
if (vo.getGroupId() == null) {
|
||||
throw new BaseException("分组ID不能为空");
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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.ExBaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
|
|
@ -11,6 +12,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
|||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AirlineFileGroup extends ExBaseEntity {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ 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;
|
||||
|
||||
|
|
@ -12,6 +13,7 @@ import java.util.List;
|
|||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AirlineFileGroupDTO extends BaseEntity {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ 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;
|
||||
|
||||
|
|
@ -10,6 +11,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
|||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AirlineFileGroupInfoDTO extends BaseEntity {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -7,12 +7,10 @@ import com.ruoyi.airline.domain.api.IAirlineFileGroupInfoDomain;
|
|||
import com.ruoyi.airline.domain.model.AirlineFile;
|
||||
import com.ruoyi.airline.domain.model.AirlineFileGroup;
|
||||
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.convert.AirlineFileGroupInfoServiceConvert;
|
||||
import com.ruoyi.airline.service.convert.AirlineFileGroupServiceConvert;
|
||||
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.AirlineFileGroupInfoDTO;
|
||||
import com.ruoyi.common.core.exception.base.BaseException;
|
||||
|
|
@ -39,8 +37,6 @@ public class AirlineFileServiceGroupImpl implements IAirlineFileGroupService {
|
|||
|
||||
@Autowired
|
||||
private IAirlineFileGroupInfoDomain iAirlineFileGroupInfoDomain;
|
||||
@Autowired
|
||||
private IAirlineFileGroupInfoService iAirlineFileGroupInfoService;
|
||||
|
||||
@Autowired
|
||||
private IAirlineFileDomain iAirlineFileDomain;
|
||||
|
|
@ -52,7 +48,7 @@ public class AirlineFileServiceGroupImpl implements IAirlineFileGroupService {
|
|||
AirlineFileGroupInfoDTO dto = new AirlineFileGroupInfoDTO();
|
||||
dto.setGroupId(groupId);
|
||||
AirlineFileGroupInfo model = AirlineFileGroupInfoServiceConvert.toModel(dto);
|
||||
int result = iAirlineFileGroupInfoDomain.deleteGroupInfo(model);
|
||||
int result = iAirlineFileGroupInfoDomain.deleteGroupInfo(model);
|
||||
if (result > 0) {
|
||||
// 2、删除分组
|
||||
AirlineFileGroup model2 = new AirlineFileGroup();
|
||||
|
|
@ -61,7 +57,7 @@ public class AirlineFileServiceGroupImpl implements IAirlineFileGroupService {
|
|||
return iAirlineFileGroupDomain.deletegroup(model2);
|
||||
}
|
||||
// TODO 增加事务机制
|
||||
throw new BaseException("删除航线失败");
|
||||
throw new BaseException("删除航线失败");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.ruoyi.airline.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.airline.api.domain.AirLinePointVO;
|
||||
import com.ruoyi.airline.domain.api.IAirlineFileDomain;
|
||||
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.convert.AirlineFileServiceConvert;
|
||||
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.file.service.ISysFileService;
|
||||
import com.ruoyi.system.api.RemoteFileService;
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.ArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
||||
|
|
@ -26,7 +26,6 @@ import java.io.ByteArrayOutputStream;
|
|||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,15 +38,14 @@ import java.util.UUID;
|
|||
public class AirlineFileServiceImpl implements IAirlineFileService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(AirlineFileServiceImpl.class);
|
||||
//
|
||||
// @Autowired
|
||||
// private ISysFileService iSysFileService;
|
||||
|
||||
@Autowired
|
||||
private RemoteFileService remoteFileService;
|
||||
|
||||
@Autowired
|
||||
private IAirlineFileDomain iAirlineFileDomain;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public AirlineFileDTO save(AirlineFileDTO dto) {
|
||||
AirlineFile model = AirlineFileServiceConvert.toModel(dto);
|
||||
|
|
@ -56,8 +54,6 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 上传航线文件,如果是KMZ的需要转换成 waypoint 的,并且需要将 原始航线文件保存。
|
||||
* 并且限制航线修改,因为暂时没做到 从waypoingt 转 KMZ
|
||||
|
|
@ -84,15 +80,12 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
|
|||
}
|
||||
String globalHeight = kmlInfo.getDocument().getFolder().getGlobalHeight();
|
||||
out.write(WayPointUitls.kmz2waypoint(kmlInfo));
|
||||
String fileUrl = "";
|
||||
//TODO String fileUrl = iSysFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
|
||||
R<String> fileUrl = remoteFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
|
||||
AirlineFileDTO dto = new AirlineFileDTO();
|
||||
dto.setFileUrl(fileUrl);
|
||||
dto.setFileUrl(fileUrl.getData());
|
||||
dto.setAirVendor("");
|
||||
dto.setAirType("");
|
||||
|
||||
// 原始文件 目录存储
|
||||
// dto.setFileUrl(fileUrl);
|
||||
|
||||
return dto;
|
||||
|
||||
|
|
@ -126,12 +119,11 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
|
|||
out.write(waypointBuilder.toString().getBytes());
|
||||
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
|
||||
// 上传文件
|
||||
String fileUrl = "";
|
||||
//TODO String fileUrl = iSysFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
|
||||
R<String> fileUrl = remoteFileService.uploadFileByStream(UUID.randomUUID().toString(), "waypoints", out);
|
||||
out.close();
|
||||
in.close();
|
||||
//保存航线文件数据
|
||||
airlineFile.setFileUrl(fileUrl);
|
||||
airlineFile.setFileUrl(fileUrl.getData());
|
||||
airlineFile.setSource("airport");
|
||||
airlineFile.setStatus(airlineFile.getStatus() == null ? 1 : airlineFile.getStatus());
|
||||
AirlineFile model = AirlineFileServiceConvert.toModel(airlineFile);
|
||||
|
|
|
|||
Loading…
Reference in New Issue