package com.dji.sample.patches.controller;
|
|
import com.dji.sample.common.model.CustomClaim;
|
import com.dji.sample.common.model.PaginationData;
|
import com.dji.sample.common.model.ResponseResult;
|
import com.dji.sample.common.util.MinioUrlUtils;
|
import com.dji.sample.log.aspect.SysLogAnnotation;
|
import com.dji.sample.media.model.MediaFileEntity;
|
import com.dji.sample.patches.model.Param.PatchesParam;
|
import com.dji.sample.patches.model.entity.LotInfo;
|
import com.dji.sample.patches.service.GetPatchesService;
|
import com.dji.sample.patches.service.ShpToDataSourceService;
|
import com.dji.sample.patches.service.impl.ShpToDataSourceServiceImpl;
|
import com.dji.sample.territory.service.impl.TbDkjbxxServiceImpl;
|
import com.dji.sample.wayline.model.entity.WaylineFileEntity;
|
import com.dji.sample.wayline.service.IWaylineFileService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.net.URL;
|
import java.sql.SQLException;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
|
|
@RequestMapping("${url.patches.prefix}${url.patches.version}/Patches")
|
@RestController
|
public class PatchesController {
|
@Autowired
|
private GetPatchesService getPatchesService;
|
@Autowired
|
private ShpToDataSourceService shpToDataSourceService;
|
@Autowired
|
private IWaylineFileService waylineFileService;
|
@Autowired
|
private TbDkjbxxServiceImpl tbDkjbxxService;
|
|
/**
|
* 根据workspaceId获取图斑列表信息
|
*
|
* @param page
|
* @param pageSize
|
* @param workspaceId
|
* @return
|
*/
|
@GetMapping("/listPatches")
|
@SysLogAnnotation(operModul = "图斑", operType = "查询", operDesc = "查询图斑的全部信息")
|
public ResponseResult<PaginationData<LotInfo>> page(@RequestParam Integer page,
|
@RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
|
@RequestParam String workspaceId) {
|
//调用service分页查询
|
PatchesParam param = PatchesParam.builder()
|
.page(page)
|
.workspaceId(workspaceId)
|
.pageSize(pageSize).build();
|
PaginationData<LotInfo> data = getPatchesService.limitGet(param);
|
return ResponseResult.success(data);
|
}
|
|
/**
|
* 删除图斑信息
|
* 本接口不需要接收任何参数,调用成功后会删除相应的补丁信息。
|
*
|
* @return 返回操作结果,如果操作成功,则返回一个成功的响应结果。
|
*/
|
@DeleteMapping("/deletePatches")
|
public ResponseResult del() {
|
getPatchesService.delPatches();
|
return ResponseResult.success();
|
}
|
|
/**
|
* 根据图斑的地块编号获取相对应音视频
|
*
|
* @param page
|
* @param pageSize
|
* @param workspaceId
|
* @param dkbh
|
* @return
|
*/
|
@GetMapping("/listPhoto")
|
public ResponseResult<PaginationData<MediaFileEntity>> GetPatchesPhoto(@RequestParam(name = "page", defaultValue = "1") Integer page,
|
@RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
|
@RequestParam String workspaceId,
|
@RequestParam String dkbh) {
|
try {
|
PatchesParam param = PatchesParam.builder()
|
.page(page)
|
.workspaceId(workspaceId)
|
.pageSize(pageSize).build();
|
PaginationData<MediaFileEntity> paginationData = getPatchesService.getPhoto(param, dkbh);
|
return ResponseResult.success(paginationData);
|
} catch (Exception e) {
|
e.printStackTrace(); // 记录异常信息到控制台
|
return ResponseResult.error("未匹配到相关图片"); // 返回错误信息,可以根据实际情况自定义
|
}
|
}
|
|
/**
|
* 上传图斑文件,解析文件并入库,再生成航线并返回
|
*
|
* @param file
|
* @param workspaceId
|
* @param waylineName
|
* @param airportLat
|
* @param airportLon
|
* @param request
|
* @return
|
* @throws Exception
|
*/
|
@PostMapping("/uploadLot")
|
public ResponseResult getGeo(@RequestParam("file") MultipartFile file,
|
@RequestParam String workspaceId,
|
@RequestParam String waylineName,
|
@RequestParam double airportLat,
|
@RequestParam double airportLon,
|
HttpServletRequest request) throws Exception {
|
MultipartFile multipartFile = shpToDataSourceService.insertGeo(file, workspaceId, waylineName, airportLat, airportLon);
|
CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
|
String creator = customClaim.getUsername();
|
waylineFileService.importKmzFileBack(multipartFile, workspaceId, creator);
|
WaylineFileEntity entity = waylineFileService.selectByName(waylineName);
|
Map<String, String> infoMap = new HashMap<>();
|
URL url = null;
|
try {
|
url = waylineFileService.getObjectUrl(workspaceId, entity.getWaylineId());
|
infoMap.put("url", String.valueOf(MinioUrlUtils.getUrl(url)));
|
infoMap.put("waylineId", entity.getWaylineId());
|
} catch (SQLException e) {
|
throw new RuntimeException(e);
|
}
|
return ResponseResult.success(infoMap);
|
}
|
}
|