123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- package com.fdkankan.contro.controller;
- import cn.hutool.core.util.StrUtil;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.fdkankan.common.constant.ErrorCode;
- import com.fdkankan.common.exception.BusinessException;
- import com.fdkankan.contro.bean.SendCallAlgorithmDetail;
- import com.fdkankan.contro.service.IAppCameraFailLogService;
- import com.fdkankan.contro.service.IJmgaService;
- import com.fdkankan.contro.service.ISceneFileBuildService;
- import com.fdkankan.contro.service.ISceneUploadCountService;
- import com.fdkankan.contro.vo.ReportFailLogVO;
- import com.fdkankan.contro.vo.ResponseSceneFile;
- import com.fdkankan.contro.vo.SceneUploadCountParamVO;
- import com.fdkankan.contro.vo.SendCallAlgorithmParam;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.web.response.ResultData;
- import lombok.extern.log4j.Log4j2;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.validation.Valid;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * 场景文件上传模块
- */
- @Log4j2
- @RestController
- @RequestMapping("/api/scene/file")
- public class SceneFileController{
- @Autowired
- private ISceneFileBuildService sceneFileBuildService;
- @Autowired
- private FYunFileServiceInterface fYunFileService;
- @Autowired
- private ISceneUploadCountService sceneUploadCountService;
- @Autowired
- private IAppCameraFailLogService appCameraFailLogService;
- @Autowired
- private IJmgaService jmgaService;
- /**
- * 场景文件上传之前先获取fileId
- * @param params
- * @return
- * @throws Exception
- */
- @PostMapping("preUpload")
- public ResponseSceneFile preUpload(String params) throws Exception {
- return sceneFileBuildService.preUpload(params);
- }
- /**
- * 更新fileid文件的上传状态 - 后端八目上传逻辑
- *
- * @param params
- * @return
- */
- @PostMapping("uploadSuccessBuild")
- public ResultData uploadSuccessBuild(String params) throws Exception {
- return sceneFileBuildService.uploadSuccessBuild(params);
- }
- /**
- *
- *
- * @param params
- * @return
- */
- @PostMapping("turntableUploadSuccess")
- public ResultData turntableUploadSuccess(String params) throws Exception {
- return sceneFileBuildService.turntableUploadSuccess(params);
- }
- @GetMapping("rebuildScene")
- public ResultData rebuildScene(@RequestParam(value = "num") String num,
- @RequestParam(value = "force",defaultValue = "false") Boolean force ,
- @RequestParam(value = "deleteExtras",defaultValue = "true") Boolean deleteExtras,
- @RequestParam(value = "from", defaultValue = "api") String from) throws IOException {
- return sceneFileBuildService.rebuildScene(num,force,deleteExtras, from);
- }
- /**
- * 国际八目相机调用
- * @param params
- * @return
- * @throws Exception
- */
- @PostMapping("getS3UploadUrl")
- public ResultData getS3UploadUrl(String params) throws Exception {
- log.info("getS3UploadUrl 参数:{}",params);
- if (StringUtils.isEmpty(params)) {
- throw new BusinessException(ErrorCode.PARAM_ERROR,"params为空。");
- }
- JSONObject jsonObject = JSON.parseObject(params);
- if(jsonObject == null){
- throw new BusinessException(ErrorCode.PARAM_ERROR,"params为空。");
- }
- JSONArray files = jsonObject.getJSONArray("Files");
- if(files == null){
- throw new BusinessException(ErrorCode.PARAM_ERROR,"params为空。");
- }
- List<String> urls = new ArrayList<>();
- for(int i = 0, len = files.size(); i < len; i++){
- urls.add(files.getJSONObject(i).getString("filename"));
- }
- Map<String, String> uploadS3Url = getUploadS3Url(urls);
- return ResultData.ok(uploadS3Url);
- }
- private Map<String, String> getUploadS3Url(List<String> urls) {
- if(urls == null || urls.size() <= 0){
- return null;
- }
- Map<String, String> map = new HashMap();
- for(String path : urls){
- map.put(path, fYunFileService.getPresignedUrl(path).toString());
- }
- return map;
- }
- // @GetMapping("copyDataAndBuild")
- // public ResultData copyDataAndBuild(@RequestParam(value = "dataSource") String dataSource,@RequestParam(value = "sceneVer") String sceneVer,
- // @RequestParam(value = "sourceBucket") String sourceBucket) throws Exception {
- // return sceneFileBuildService.copyDataAndBuild(sourceBucket,dataSource ,sceneVer);
- // }
- /**
- * 单个文件上传
- * @param file
- * @param params
- * @return
- */
- @PostMapping("upload")
- public ResultData upload(@RequestParam(value = "file",required = false) MultipartFile file,
- String params, @RequestParam(value = "dir", defaultValue = "") String dir) throws Exception {
- return sceneFileBuildService.uploadFile(file, params,dir);
- }
- /**
- * 单个文件上传
- * @param file
- * @param params
- * @return
- */
- @PostMapping("testUpload")
- public ResultData testUpload(@RequestParam(value = "file",required = false) MultipartFile file,
- String params) throws Exception {
- file.transferTo(new File("/home/backend/tomcat/modeling-control/logs/" + file.getOriginalFilename()));
- return ResultData.ok();
- }
- // /**
- // * 本地上传相机原始资源压缩包,通知计算
- // * @return
- // * @throws Exception
- // */
- // @PostMapping("sendCallAlgorithm")
- // public ResultData sendCallAlgorithm(@RequestBody @Validated SendCallAlgorithmParam param) throws Exception {
- // return sceneFileBuildService.sendCallAlgorithm(param);
- // }
- /**
- * 本地上传相机原始资源压缩包,通知计算
- * @param params
- * @return
- * @throws Exception
- */
- @PostMapping("test1")
- public ResultData test1(@RequestBody Map<String,Object> params) throws Exception {
- log.info("test1场景计算进度:{}", JSON.toJSONString(params));
- return ResultData.ok();
- }
- /**
- * 本地上传相机原始资源压缩包,通知计算
- * @param params
- * @return
- * @throws Exception
- */
- @PostMapping("test2")
- public ResultData test2(@RequestBody Map<String,Object> params) throws Exception {
- log.info("test2场景计算进度:{}", JSON.toJSONString(params));
- return ResultData.ok();
- }
- // @PostMapping("upload_bd")
- // public ResultData uploadBd(MultipartFile file){
- //
- // }
- @PostMapping("sendCallAlgorithm")
- public ResultData uploadFile(@RequestBody @Validated SendCallAlgorithmParam param) throws Exception {
- return sceneFileBuildService.uploadFile(param);
- }
- @PostMapping("/noticeBuild")
- public ResultData noticeBuild(SendCallAlgorithmDetail detail) throws Exception {
- if(StrUtil.isEmpty(detail.getUuid())){
- throw new RuntimeException("uuid不能为空");
- }
- return sceneFileBuildService.noticeBuild(detail.getUuid());
- }
- @PostMapping("/send_bd")
- public ResultData noticeBuildBd(String ossHost, String uuid, String dir) throws Exception {
- jmgaService.noticeBuildBd(ossHost, uuid, dir);
- return ResultData.ok();
- }
- /**
- * 记录app触发上传场景
- * @param param
- * @return
- */
- @PostMapping("/increSceneUploadCount")
- public ResultData increSceneUploadCount(@RequestBody @Valid SceneUploadCountParamVO param){
- sceneUploadCountService.increSceneUploadCount(param);
- return ResultData.ok();
- }
- @PostMapping("/reportFailLog")
- public ResultData reportFailLog(@RequestBody @Valid ReportFailLogVO param){
- appCameraFailLogService.reportFailLog(param);
- return ResultData.ok();
- }
- }
|