lyhzzz 5 months ago
parent
commit
6d10b304a4

+ 54 - 0
src/main/java/com/fdkankan/manage_jp/config/FyunConfig.java

@@ -0,0 +1,54 @@
+package com.fdkankan.manage_jp.config;
+
+import com.aliyun.oss.HttpMethod;
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.GeneratePresignedUrlRequest;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.context.annotation.Configuration;
+
+import java.net.URL;
+
+@Configuration
+@RefreshScope
+public class FyunConfig {
+
+    @Value("${fyun.type}")
+    public String type;
+    @Value("${fyun.key}")
+    public String key;
+    @Value("${fyun.secret}")
+    public String secret;
+    @Value("${fyun.bucket}")
+    public String bucket;
+    @Value("${fyun.endPoint}")
+    public String endPoint;
+    @Value("${fyun.host}")
+    public String host;
+
+    @Autowired
+    FYunFileServiceInterface fYunFileServiceInterface;
+
+    public OSSClient build(){
+        return new OSSClient(endPoint.replace("-internal",""),key,secret);
+    }
+
+    public URL getPresignedUrl( String url) {
+        if(!"oss".equals(type)){
+            return fYunFileServiceInterface.getPresignedUrl(url);
+        }
+        java.util.Date expiration = new java.util.Date();
+        long expTimeMillis = expiration.getTime();
+        expTimeMillis += 1000 * 60 * 60 * 8;
+        expiration.setTime(expTimeMillis);
+        GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucket, url);
+        generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
+        generatePresignedUrlRequest.setExpiration(expiration);
+        OSSClient build = this.build();
+        URL url1 = build.generatePresignedUrl(generatePresignedUrlRequest);
+        build.shutdown();
+        return url1;
+    }
+}

+ 39 - 0
src/main/java/com/fdkankan/manage_jp/controller/UploadController.java

@@ -6,6 +6,7 @@ import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.manage_jp.common.Constant;
 import com.fdkankan.manage_jp.common.Result;
 import com.fdkankan.manage_jp.common.ResultCode;
+import com.fdkankan.manage_jp.config.FyunConfig;
 import com.fdkankan.manage_jp.exception.BusinessException;
 import com.fdkankan.manage_jp.httpClient.client.FdKKClient;
 import com.fdkankan.manage_jp.httpClient.param.UploadEditSceneParam;
@@ -19,6 +20,8 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
 import java.util.UUID;
 
 @RestController
@@ -85,4 +88,40 @@ public class UploadController extends BaseController{
 
         return Result.success();
     }
+
+
+    @Autowired
+    FyunConfig fyunConfig;
+
+    @PostMapping("/getUploadUrl")
+    public Result getUploadUrl( @RequestParam(value = "fileName",required = false)String fileName) {
+        String newFileName = UUID.randomUUID().toString().replace("-","");
+        String suffix = fileName.substring(fileName.lastIndexOf("."));
+        URL presignedUrl =  fyunConfig.getPresignedUrl("ucenter/e57/" + newFileName + suffix);
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("newFileName",newFileName + suffix);
+        map.put("url",presignedUrl.toString());
+        return Result.success(map);
+    }
+
+    @PostMapping("/relevanceE57")
+    public Result relevanceE57( @RequestParam(value = "isObj",required = false)Integer isObj,
+                                @RequestParam(value = "title",required = false)String title,
+                                @RequestParam(value = "newFileName",required = false)String newFileName ){
+
+        UploadEditSceneParam editSceneParam = new UploadEditSceneParam();
+        editSceneParam.setTitle(title);
+        editSceneParam.setUserId(getUser().getId());
+        editSceneParam.setPath("ucenter/e57/"+newFileName);
+        editSceneParam.setIsObj(isObj);
+        editSceneParam.setOtherType("E57_V4");
+
+        JSONObject jsonObject = fdKKClient.reverseScene(editSceneParam);
+        Integer code = jsonObject.getInteger("code");
+        if(code != 0){
+            log.info("调用失败-toFdCreateScene:{}",jsonObject);
+            throw new BusinessException(ResultCode.UPLOAD_ERROR);
+        }
+        return Result.success();
+    }
 }