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.impl.ShpToDataSourceServiceImpl;
|
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 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 ShpToDataSourceServiceImpl shpToDataSourceServiceImpl;
|
@Autowired
|
private IWaylineFileService waylineFileService;
|
|
@GetMapping("/getPatches")
|
@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);
|
}
|
|
@DeleteMapping("/delPatches")
|
public ResponseResult del() {
|
getPatchesService.delPatches();
|
return ResponseResult.success();
|
}
|
|
@GetMapping("/GetPhoto")
|
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("未匹配到相关图片"); // 返回错误信息,可以根据实际情况自定义
|
}
|
}
|
|
@PostMapping("/getGeo")
|
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 = shpToDataSourceServiceImpl.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);
|
URL url = null;
|
try {
|
url = waylineFileService.getObjectUrl(workspaceId, entity.getWaylineId());
|
} catch (SQLException e) {
|
throw new RuntimeException(e);
|
}
|
return ResponseResult.success(MinioUrlUtils.getUrl(url));
|
}
|
}
|