package com.ruoyi.airline.controller; import com.ruoyi.airline.api.domain.AirlineFileGroupInfoVO; import com.ruoyi.airline.controller.convert.AirlineFileGroupInfoControllerConvert; import com.ruoyi.airline.service.api.IAirlineFileGroupInfoService; import com.ruoyi.airline.service.api.IAirlineFileService; import com.ruoyi.airline.service.dto.AirlineFileDTO; import com.ruoyi.airline.service.dto.AirlineFileGroupInfoDTO; import com.ruoyi.common.core.exception.base.BaseException; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; /** * 航线分组 * * @author 拓恒 */ @RestController @RequestMapping("/airline/fileGroupInfo") public class AirlineFileGroupInfoController extends BaseController { @Autowired private IAirlineFileGroupInfoService iAirlineFileGroupInfoService; @Autowired private IAirlineFileService iAirlineFileService; /** * 获取航线文件分组列表,根据用户Id查询分组 * * @param groupId 分组ID * @return */ @RequiresPermissions("airline:groupInfo:list") @GetMapping() public TableDataInfo selectGroupInfoListById(Long groupId) { startPage(); List list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId); List result = AirlineFileGroupInfoControllerConvert.toApiDomainList(list); return getDataTable(result); } /** * kmz航线文件,并转换成waypoint上传 ,仅仅返航URL *

* kmz类似zip,一般情况下内部包含kml和wpml两个文件 * * @param file */ @PostMapping("/parseAndUpload") public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, Long groupId) throws IOException { AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file); AirlineFileDTO result = iAirlineFileService.save(dto); AirlineFileGroupInfoDTO infoDTO = new AirlineFileGroupInfoDTO(); infoDTO.setGroupId(groupId); infoDTO.setAirlineId(result.getId()); return success(iAirlineFileGroupInfoService.save(infoDTO)); } /** * 在当前分组下添加初始航线(空的航线) * * @param vo 实体对象 * @return */ @PostMapping("/add") public AjaxResult add(@RequestBody AirlineFileGroupInfoVO vo) throws IOException { if (vo.getGroupId() == null) { throw new BaseException("分组ID不能为空"); } AirlineFileGroupInfoDTO dto = AirlineFileGroupInfoControllerConvert.toDTO(vo); AirlineFileGroupInfoDTO result = iAirlineFileGroupInfoService.save(dto); return success(AirlineFileGroupInfoControllerConvert.toVO(result)); } }