qin 1 жил өмнө
parent
commit
6ee418b3f9

+ 8 - 7
src/main/java/com/poteviohealth/cgp/statistics/controller/OrderController.java

@@ -18,14 +18,13 @@ import com.poteviohealth.cgp.statistics.model.outdto.OrderCostWebOutDTO;
 import com.poteviohealth.cgp.statistics.model.outdto.OrderExcelDTO;
 import com.poteviohealth.cgp.statistics.service.IOrderService;
 import com.poteviohealth.cgp.statistics.utils.ExcelUtils2;
+import com.poteviohealth.cgp.statistics.utils.OssUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.stereotype.Controller;
-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.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -188,12 +187,14 @@ public class OrderController extends BaseWebController {
         return returnVal;
     }
 
-    @PostMapping(value = "/uploadArrayFile")
-    @ApiOperation(httpMethod = "POST", value = "阿里云图片上传")
+    @RequestMapping(value = "/uploadArrayFile", method = RequestMethod.POST)
+    @ApiOperation(value = "阿里云图片上传")
+    @ResponseBody
+    @MethodTime
     public VaultsResponse uploadArrayFile(@RequestBody List<PriceUploadDto> list){
-
         log.info(list);
-        return VaultsResponse.success();
+        OssUtils oss = new OssUtils();
+        return oss.uploadArrayFile(list);
     }
 
     public static void main(String[] args) {

+ 6 - 0
src/main/java/com/poteviohealth/cgp/statistics/model/indto/PriceUploadDto.java

@@ -30,4 +30,10 @@ public class PriceUploadDto {
 
     @ApiModelProperty(value="图片")
     private String base64;
+
+    @ApiModelProperty(value="上传后的地址")
+    private String url;
+
+    @ApiModelProperty(value="类型")
+    private String type;
 }

+ 31 - 11
src/main/java/com/poteviohealth/cgp/statistics/utils/OssUtils.java

@@ -2,12 +2,17 @@ package com.poteviohealth.cgp.statistics.utils;
 
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
+import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.utils.CgpTool;
+import com.poteviohealth.cgp.statistics.model.indto.PriceUploadDto;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.Base64;
 import java.util.List;
 
 /**
@@ -59,25 +64,41 @@ public class OssUtils {
         }
     }
 
-    public List<String> uploadArrayFile(MultipartFile[] files,String key) {
+    private InputStream base64ToInputStream(String base64String) {
+        byte[] bytes = Base64.getDecoder().decode(base64String);
+        return new ByteArrayInputStream(bytes);
+    }
+
+    public VaultsResponse<List<PriceUploadDto>> uploadArrayFile(List<PriceUploadDto> dto) {
+        Long orderId = null;
+        for (PriceUploadDto uploadDto : dto) {
+            if(uploadDto.getOrderId() != null){
+                orderId = uploadDto.getOrderId();
+            }
+        }
+        if(orderId == null){
+            return VaultsResponse.failed("关键参数为空");
+        }
         // 创建OSSClient实例。
         OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);
-        List<String> list = new ArrayList<>();
         try {
             //设置文件名
-            for (MultipartFile file : files) {
-                Integer pos = file.getName().lastIndexOf('.');
+            for (PriceUploadDto uploadDto : dto) {
+                if(StringUtils.isEmpty(uploadDto.getBase64())){
+                    continue;
+                }
+                Integer pos = uploadDto.getUrl().lastIndexOf('.');
                 String suffix = "";
                 if (pos != -1) {
-                    suffix = file.getName().substring(pos);
+                    suffix = uploadDto.getUrl().substring(pos);
                 }
-                String fileName = dir+"/S"+key+"N-"+ CgpTool.generateUUID() +suffix;
+                String fileName = dir+"/S"+orderId+"N-"+ CgpTool.generateUUID() +suffix;
                 // 创建PutObject请求。
-                ossClient.putObject(bucketName, fileName, file.getInputStream());
+                ossClient.putObject(bucketName, fileName, base64ToInputStream(uploadDto.getBase64()));
 
                 String url = "https://" + bucketName + "." + endPoint + "/" + fileName;
                 // System.out.println(url);
-                list.add(url);
+                uploadDto.setUrl(url);
             }
 
         } catch (Exception e) {
@@ -88,8 +109,7 @@ public class OssUtils {
                 ossClient.shutdown();
             }
         }
-        return list;
-
+        return VaultsResponse.success(dto);
     }
 
     public boolean deleteFile(String fileUrl) {