TRX vor 1 Jahr
Ursprung
Commit
6ceb64b532

+ 21 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/upLoadFile/OssController.java

@@ -3,9 +3,12 @@ package com.zhongshu.card.server.core.controller.upLoadFile;
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultContent;
-import com.zhongshu.card.server.core.model.upLoadFile.RemoteFile;
+import com.github.microservice.netdisk.client.model.file.FileItemModel;
+import com.github.microservice.netdisk.client.model.file.FileStoreModel;
+import com.zhongshu.card.server.core.model.upLoadFile.RemoteBusFile;
+import com.zhongshu.card.server.core.model.upLoadFile.RemoteGetTokenFileParam;
 import com.zhongshu.card.server.core.model.upLoadFile.StsToken;
-import com.zhongshu.card.server.core.service.oss.NetDiskOssService;
+import com.zhongshu.card.server.core.service.oss.NetDiskOssBusService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.Valid;
+
 /**
  * @author TRX
  * @date 2024/4/10
@@ -26,14 +31,26 @@ import org.springframework.web.bind.annotation.RestController;
 public class OssController {
 
     @Autowired
-    NetDiskOssService netDiskOssService;
+    NetDiskOssBusService netDiskOssService;
 
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "得到上传文件Token", description = "得到上传文件Token")
     @RequestMapping(value = "getUploadToken", method = {RequestMethod.POST})
-    public ResultContent<StsToken> getUploadToken(@RequestBody RemoteFile remoteFile) {
+    public ResultContent<StsToken> getUploadToken(@RequestBody RemoteBusFile remoteFile) {
         return netDiskOssService.getUploadToken(remoteFile);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到上传文件Token", description = "得到上传文件Token")
+    @RequestMapping(value = "getUploadFileToken", method = {RequestMethod.POST})
+    public ResultContent<com.github.microservice.netdisk.client.model.token.StsToken> getUploadToken(@RequestBody RemoteGetTokenFileParam param) {
+        return netDiskOssService.getUploadFileToken(param);
+    }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "上传完成", description = "上传完成")
+    @RequestMapping(value = "uploadFinish", method = {RequestMethod.POST})
+    public ResultContent<FileStoreModel> uploadFinish(@RequestBody @Valid FileItemModel param) {
+        return netDiskOssService.uploadFinish(param);
+    }
 }

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/model/upLoadFile/RemoteFile.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/model/upLoadFile/RemoteBusFile.java

@@ -14,7 +14,7 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class RemoteFile {
+public class RemoteBusFile {
 
     //账户名
     @Schema(description = "accountId")

+ 52 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/model/upLoadFile/RemoteGetTokenFileParam.java

@@ -0,0 +1,52 @@
+package com.zhongshu.card.server.core.model.upLoadFile;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+
+import java.util.List;
+
+/**
+ * 远程文件
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RemoteGetTokenFileParam {
+
+    @Schema(description = "")
+    private String oid;
+
+    //账户名
+    @Schema(description = "accountId")
+    private String accountId;
+
+    //文件路径
+    @Schema(description = "path", example = "['文件.docx']")
+    private List<String> path;
+
+    public List<String> getPath() {
+        if (ObjectUtils.isNotEmpty(path)) {
+            return path;
+        }
+        return List.of(fileName);
+    }
+
+    @Schema(description = "保留原名称")
+    private Boolean isReserveName = Boolean.FALSE;
+
+    @Schema(description = "fileName 文件名称")
+    private String fileName;
+
+    @Schema(description = "fileNames 文件列表")
+    private List<String> fileNames;
+
+    public List<String> getFileNames() {
+        if (ObjectUtils.isNotEmpty(fileNames)) {
+            return fileNames;
+        }
+        return this.path;
+    }
+}

+ 58 - 8
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/oss/NetDiskOssService.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/oss/NetDiskOssBusService.java

@@ -1,20 +1,24 @@
 package com.zhongshu.card.server.core.service.oss;
 
-import com.google.common.collect.Lists;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultState;
+import com.github.microservice.netdisk.client.model.file.FileItemModel;
+import com.github.microservice.netdisk.client.model.file.FileStoreModel;
+import com.github.microservice.netdisk.client.model.remote.RemoteFile;
+import com.github.microservice.netdisk.client.service.NetDiskOssService;
+import com.google.common.collect.Lists;
 import com.zhongshu.card.client.type.oss.PlatformStoreType;
+import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
-import com.zhongshu.card.server.core.model.upLoadFile.AliObjectStorageStore;
-import com.zhongshu.card.server.core.model.upLoadFile.PlatformFileItem;
-import com.zhongshu.card.server.core.model.upLoadFile.RemoteFile;
-import com.zhongshu.card.server.core.model.upLoadFile.StsToken;
+import com.zhongshu.card.server.core.model.upLoadFile.*;
 import com.zhongshu.card.server.core.model.upLoadFile.oss.ALiObjectStorage;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -28,7 +32,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
-public class NetDiskOssService extends SuperService {
+public class NetDiskOssBusService extends SuperService {
 
     @Autowired
     private AliObjectStorageStore aliObjectStorageStore;
@@ -39,10 +43,46 @@ public class NetDiskOssService extends SuperService {
     @Autowired
     UserCountDao userCountDao;
 
+    @Autowired
+    private NetDiskOssService netDiskOssService;
+
+    @Autowired
+    private OrganizationDao organizationDao;
+
+    public ResultContent<com.github.microservice.netdisk.client.model.token.StsToken> getUploadFileToken(RemoteGetTokenFileParam param) {
+        com.github.microservice.netdisk.client.model.remote.RemoteFile remoteFile = new RemoteFile();
+        UserAccount user = getCurrentUserAccount();
 
+        Boolean isReserveName = param.getIsReserveName();
+        String fileName = param.getFileName();
+        List<String[]> allPaths = buildPathByUser(param.getFileNames(), user);
+        Collection<String[]> paths = allPaths.parallelStream().map((path) -> {
+            return this.toPlatformFileStoreObjectPath(user, path, isReserveName, fileName);
+        }).collect(Collectors.toList());
 
+        remoteFile.setAccountId(param.getOid());
+        remoteFile.setPath(paths);
+        com.github.microservice.netdisk.client.content.ResultContent<com.github.microservice.netdisk.client.model.token.StsToken> content = netDiskOssService.getUploadToken(remoteFile);
+        if (content.getState() == com.github.microservice.netdisk.client.content.ResultState.Success) {
+            return ResultContent.buildSuccess(content.getContent());
+        } else {
+            return ResultContent.buildFail(content.getMsg());
+        }
+    }
 
-    public ResultContent<StsToken> getUploadToken(RemoteFile remoteFile) {
+    public ResultContent<FileStoreModel> uploadFinish(FileItemModel fileItems) {
+        FileItemModel[] arr = new FileItemModel[]{fileItems};
+        com.github.microservice.netdisk.client.content.ResultContent<List<FileStoreModel>> content = netDiskOssService.uploadFinish(arr);
+        if (content.getState() == com.github.microservice.netdisk.client.content.ResultState.Success) {
+            List<FileStoreModel> list = content.getContent();
+            return ResultContent.buildSuccess(list.get(0));
+        } else {
+            return ResultContent.buildFail(content.getMsg());
+        }
+    }
+
+
+    public ResultContent<StsToken> getUploadToken(RemoteBusFile remoteFile) {
 //        PathAssert.validate(remoteFile.getPath());
         String userId = getCurrentUserId();
         UserAccount user = userCountDao.findTopByUserId(userId);
@@ -80,7 +120,7 @@ public class NetDiskOssService extends SuperService {
                 .isReserveName(isReserveName).orgiFileName(fileName).build().toPath(PlatformFileItem.PathType.OSS);
     }
 
-    public List<String[]> buildPathByUser(RemoteFile param, UserAccount user) {
+    public List<String[]> buildPathByUser(RemoteBusFile param, UserAccount user) {
         List<String[]> paths = new ArrayList<>();
         param.getFileNames().forEach(it -> {
             String[] split = it.split("\\.");
@@ -89,4 +129,14 @@ public class NetDiskOssService extends SuperService {
         });
         return paths;
     }
+
+    public List<String[]> buildPathByUser(List<String> fileNames, UserAccount user) {
+        List<String[]> paths = new ArrayList<>();
+        fileNames.forEach(it -> {
+            String[] split = it.split("\\.");
+            List<String> path = Lists.newArrayList(new String[]{user.getId(), UUID.randomUUID().toString() + "." + split[1]});
+            paths.add(path.toArray(new String[0]));
+        });
+        return paths;
+    }
 }

+ 19 - 19
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectPaySettingServiceImpl.java

@@ -455,25 +455,25 @@ public class ProjectPaySettingServiceImpl extends SuperService {
     }
 
     public ResultContent initChangeDefault(String id, String belongOig, String projectOid, PaymentType paymentType) {
-        List<ProjectOrgPaySettingInfo> list = projectPaySettingInfoDao.findByBelongOigAndProjectOidAndChannelType(belongOig, projectOid, paymentType);
-        if (ObjectUtils.isNotEmpty(list)) {
-            List<ProjectOrgPaySettingInfo> _tempList = list.stream().filter(it -> it.getIsDefault() != null && it.getIsDefault()).collect(Collectors.toList());
-            if (ObjectUtils.isNotEmpty(_tempList)) {
-                if (_tempList.size() > 1 && StringUtils.isNotEmpty(id)) {
-                    // 其他的设置为  非默认
-                    _tempList.stream().forEach(it -> {
-                        if (!it.getId().equals(id)) {
-                            it.setIsDefault(Boolean.FALSE);
-                            projectPaySettingInfoDao.save(it);
-                        }
-                    });
-                }
-            } else {
-                ProjectOrgPaySettingInfo first = list.get(0);
-                first.setIsDefault(Boolean.TRUE);
-                projectPaySettingInfoDao.save(first);
-            }
-        }
+//        List<ProjectOrgPaySettingInfo> list = projectPaySettingInfoDao.findByBelongOigAndProjectOidAndChannelType(belongOig, projectOid, paymentType);
+//        if (ObjectUtils.isNotEmpty(list)) {
+//            List<ProjectOrgPaySettingInfo> _tempList = list.stream().filter(it -> it.getIsDefault() != null && it.getIsDefault()).collect(Collectors.toList());
+//            if (ObjectUtils.isNotEmpty(_tempList)) {
+//                if (_tempList.size() > 1 && StringUtils.isNotEmpty(id)) {
+//                    // 其他的设置为  非默认
+//                    _tempList.stream().forEach(it -> {
+//                        if (!it.getId().equals(id)) {
+//                            it.setIsDefault(Boolean.FALSE);
+//                            projectPaySettingInfoDao.save(it);
+//                        }
+//                    });
+//                }
+//            } else {
+//                ProjectOrgPaySettingInfo first = list.get(0);
+//                first.setIsDefault(Boolean.TRUE);
+//                projectPaySettingInfoDao.save(first);
+//            }
+//        }
         upsertPayAccount(projectOid, paymentType);
         return ResultContent.buildSuccess();
     }