Переглянути джерело

2.0.project-jmga-2.2.0-2.0.1

dengsixing 1 місяць тому
батько
коміт
e4832782db

+ 28 - 0
src/main/java/com/fdkankan/contro/controller/JmgaController.java

@@ -0,0 +1,28 @@
+package com.fdkankan.contro.controller;
+
+import com.fdkankan.contro.service.IJmgaService;
+import com.fdkankan.contro.vo.UploadSceneOrigParamVo;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("/api/scene/file/jmga")
+public class JmgaController {
+
+    @Autowired
+    private IJmgaService jmgaService;
+
+    @PostMapping("/uploadSceneOrig")
+    public ResultData uploadSceneOrig(@RequestBody @Valid UploadSceneOrigParamVo param){
+        jmgaService.uploadSceneOrig(param);
+        return ResultData.ok();
+    }
+
+
+}

+ 5 - 17
src/main/java/com/fdkankan/contro/controller/SceneFileController.java

@@ -1,8 +1,6 @@
 package com.fdkankan.contro.controller;
 
-import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -10,6 +8,7 @@ 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;
@@ -32,7 +31,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * 场景文件上传模块
@@ -54,6 +52,9 @@ public class SceneFileController{
     @Autowired
     private IAppCameraFailLogService appCameraFailLogService;
 
+    @Autowired
+    private IJmgaService jmgaService;
+
 
     /**
      * 场景文件上传之前先获取fileId
@@ -223,20 +224,7 @@ public class SceneFileController{
 
     @PostMapping("/send_bd")
     public ResultData noticeBuildBd(String ossHost, String uuid, String dir) throws Exception {
-        String prefix = "http://" + ossHost + "/";
-        String path = "/oss/4dkankan/bd_server/" + dir;
-        List<File> files = FileUtil.loopFiles(path).stream().filter(file -> !file.getAbsolutePath().contains("backup")).collect(Collectors.toList());
-        files.parallelStream().forEach(file ->{
-            String url = prefix.concat(file.getAbsolutePath().substring(1).replace("/4dkankan",""));
-            SendCallAlgorithmDetail detail = new SendCallAlgorithmDetail();
-            detail.setFileName(FileUtil.getName(file.getAbsolutePath()));
-            detail.setUuid(uuid);
-            SendCallAlgorithmParam param = new SendCallAlgorithmParam();
-            param.setFilepath(url);
-            param.setDetails(detail);
-            HttpUtil.post("http://localhost:8085/api/scene/file/sendCallAlgorithm", JSON.toJSONString(param));
-        });
-
+        jmgaService.noticeBuildBd(ossHost, uuid, dir);
         return ResultData.ok();
     }
 

+ 5 - 0
src/main/java/com/fdkankan/contro/service/IJmgaService.java

@@ -1,6 +1,7 @@
 package com.fdkankan.contro.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.contro.vo.UploadSceneOrigParamVo;
 
 import java.util.Map;
 
@@ -12,4 +13,8 @@ public interface IJmgaService {
 
     void checkLackFile(String dataSource);
 
+    void uploadSceneOrig(UploadSceneOrigParamVo param);
+
+    void noticeBuildBd(String ossHost, String uuid, String dir);
+
 }

+ 45 - 0
src/main/java/com/fdkankan/contro/service/impl/JmgaServiceImpl.java

@@ -2,17 +2,23 @@ package com.fdkankan.contro.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.lang.UUID;
+import cn.hutool.core.util.ZipUtil;
+import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.contro.bean.SendCallAlgorithmDetail;
 import com.fdkankan.contro.entity.OrigFileUpload;
 import com.fdkankan.contro.entity.OrigFileUploadBatch;
 import com.fdkankan.contro.service.IJmgaService;
 import com.fdkankan.contro.service.IOrigFileUploadBatchService;
 import com.fdkankan.contro.service.IOrigFileUploadService;
+import com.fdkankan.contro.vo.SendCallAlgorithmParam;
+import com.fdkankan.contro.vo.UploadSceneOrigParamVo;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import lombok.extern.slf4j.Slf4j;
@@ -40,6 +46,8 @@ public class JmgaServiceImpl implements IJmgaService {
     private FYunFileServiceInterface fileServiceInterface;
     @Resource
     private RabbitMqProducer mqProducer;
+    @Resource
+    private FYunFileServiceInterface fYunFileService;
 
     @Override
     public void checkFileWhole(String uuid, String dataSource, JSONObject fdageData) {
@@ -181,4 +189,41 @@ public class JmgaServiceImpl implements IJmgaService {
         throw new BusinessException(ErrorCode.FAILURE_CODE_4001.code(), ErrorCode.FAILURE_CODE_4001.formatMessage(fileName));
     }
 
+    @Override
+    public void uploadSceneOrig(UploadSceneOrigParamVo param) {
+        String uuid = UUID.randomUUID().toString();
+//        String zipName = FileUtil.getName(param.getFilePath());
+        String zipName = uuid + ".zip";
+        String zipDir = "/oss/4dkankan/bd_server/";
+        fYunFileService.downloadFileByCommand(zipDir + zipName, param.getFilePath());
+
+        //解压缩
+        ZipUtil.unzip(new File(zipDir + zipName), new File(zipDir));
+
+//        this.noticeBuildBd();
+
+
+
+
+
+
+
+    }
+
+    @Override
+    public void noticeBuildBd(String ossHost, String uuid, String dir) {
+        String prefix = "http://" + ossHost + "/";
+        String path = "/oss/4dkankan/bd_server/" + dir;
+        List<File> files = FileUtil.loopFiles(path).stream().filter(file -> !file.getAbsolutePath().contains("backup")).collect(Collectors.toList());
+        files.parallelStream().forEach(file ->{
+            String url = prefix.concat(file.getAbsolutePath().substring(1).replace("/4dkankan",""));
+            SendCallAlgorithmDetail detail = new SendCallAlgorithmDetail();
+            detail.setFileName(FileUtil.getName(file.getAbsolutePath()));
+            detail.setUuid(uuid);
+            SendCallAlgorithmParam param = new SendCallAlgorithmParam();
+            param.setFilepath(url);
+            param.setDetails(detail);
+            HttpUtil.post("http://127.0.0.1:8085/api/scene/file/sendCallAlgorithm", JSON.toJSONString(param));
+        });
+    }
 }

+ 1 - 0
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -994,6 +994,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             scenePlusExt.setModelKind(modelKind);
         }
 
+
         if (pic != null && pic.length() > 5) {
             scenePlusExt.setThumb(pic);
         } else {

+ 17 - 0
src/main/java/com/fdkankan/contro/vo/UploadSceneOrigParamVo.java

@@ -0,0 +1,17 @@
+package com.fdkankan.contro.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class UploadSceneOrigParamVo {
+
+    @NotBlank(message = "原始资源路径不能为空")
+    private String filePath;
+
+    @NotNull(message = "userId不能为空")
+    private Long userId;
+
+}