Browse Source

oss 提交

hongchuangyanfa 1 year ago
parent
commit
d591670822

+ 4 - 2
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/AliOssBuilder.java

@@ -22,9 +22,10 @@ import com.aliyun.oss.common.auth.CredentialsProvider;
 import com.aliyun.oss.common.auth.DefaultCredentialProvider;
 import lombok.SneakyThrows;
 import org.springblade.core.oss.OssTemplate;
-import org.springblade.core.oss.AliossTemplate;
 import org.springblade.core.oss.props.OssProperties;
 import org.springblade.core.oss.rule.OssRule;
+import org.springblade.resource.builder.ossre.AliossTemplateRe;
+import org.springblade.resource.builder.ossre.OssTemplateRe;
 import org.springblade.resource.entity.Oss;
 
 /**
@@ -35,7 +36,7 @@ import org.springblade.resource.entity.Oss;
 public class AliOssBuilder {
 
 	@SneakyThrows
-	public static OssTemplate template(Oss oss, OssRule ossRule) {
+	public static OssTemplateRe template(Oss oss, OssRule ossRule) {
 		// 创建ClientConfiguration。ClientConfiguration是OSSClient的配置类,可配置代理、连接超时、最大连接数等参数。
 		ClientConfiguration conf = new ClientConfiguration();
 		// 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。
@@ -57,6 +58,7 @@ public class AliOssBuilder {
 		ossProperties.setBucketName(oss.getBucketName());
 		CredentialsProvider credentialsProvider = new DefaultCredentialProvider(ossProperties.getAccessKey(), ossProperties.getSecretKey());
 		OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), credentialsProvider, conf);
+
 		return new AliossTemplateRe(ossClient, ossProperties, ossRule);
 	}
 

+ 10 - 8
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java

@@ -29,6 +29,7 @@ import org.springblade.core.oss.rule.BladeOssRule;
 import org.springblade.core.oss.rule.OssRule;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.*;
+import org.springblade.resource.builder.ossre.OssTemplateRe;
 import org.springblade.resource.entity.Oss;
 import org.springblade.resource.service.IOssService;
 
@@ -59,7 +60,7 @@ public class OssBuilder {
     /**
      * OssTemplate配置缓存池
      */
-    private final Map<String, OssTemplate> templatePool = new ConcurrentHashMap<>();
+    private final Map<String, OssTemplateRe> templatePool = new ConcurrentHashMap<>();
 
     /**
      * oss配置缓存池
@@ -71,7 +72,7 @@ public class OssBuilder {
      *
      * @return OssTemplate
      */
-    public OssTemplate template() {
+    public OssTemplateRe template() {
         return template(StringPool.EMPTY);
     }
 
@@ -81,11 +82,11 @@ public class OssBuilder {
      * @param code 资源编号
      * @return OssTemplate
      */
-    public OssTemplate template(String code) {
+    public OssTemplateRe template(String code) {
         String tenantId = AuthUtil.getTenantId();
         Oss oss = getOss(tenantId, code);
         Oss ossCached = ossPool.get(tenantId);
-        OssTemplate template = templatePool.get(tenantId);
+        OssTemplateRe template = templatePool.get(tenantId);
         // 若为空或者不一致,则重新加载
         if (Func.hasEmpty(template, ossCached) || !oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
             synchronized (OssBuilder.class) {
@@ -98,20 +99,21 @@ public class OssBuilder {
                     } else {
                         ossRule = new BladeOssRule(Boolean.FALSE);
                     }
-                    if (oss.getCategory() == OssEnum.MINIO.getCategory()) {
+                    /*if (oss.getCategory() == OssEnum.MINIO.getCategory()) {
                         template = MinioOssBuilder.template(oss, ossRule);
                     } else if (oss.getCategory() == OssEnum.QINIU.getCategory()) {
                         template = QiniuOssBuilder.template(oss, ossRule);
-                    } else if (oss.getCategory() == OssEnum.ALI.getCategory()) {
+                    } else if (oss.getCategory() == OssEnum.ALI.getCategory()) {*/
                         template = AliOssBuilder.template(oss, ossRule);
-                    } else if (oss.getCategory() == OssEnum.TENCENT.getCategory()) {
+                    /*} else if (oss.getCategory() == OssEnum.TENCENT.getCategory()) {
                         template = TencentOssBuilder.template(oss, ossRule);
-                    }
+                    }*/
                     templatePool.put(tenantId, template);
                     ossPool.put(tenantId, oss);
                 }
             }
         }
+
         return template;
     }
 

+ 24 - 7
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/AliossTemplateRe.java → blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/ossre/AliossTemplateRe.java

@@ -1,11 +1,9 @@
-package org.springblade.resource.builder.oss;
+package org.springblade.resource.builder.ossre;
 
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.common.utils.BinaryUtil;
-import com.aliyun.oss.model.MatchMode;
-import com.aliyun.oss.model.ObjectMetadata;
-import com.aliyun.oss.model.PolicyConditions;
-import com.aliyun.oss.model.PutObjectResult;
+import com.aliyun.oss.model.*;
+
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.Date;
@@ -14,7 +12,6 @@ import java.util.List;
 import java.util.Map;
 
 import lombok.SneakyThrows;
-import org.springblade.core.oss.OssTemplate;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.oss.model.OssFile;
 import org.springblade.core.oss.props.OssProperties;
@@ -23,7 +20,7 @@ import org.springblade.core.tool.jackson.JsonUtil;
 import org.springframework.util.StringUtils;
 import org.springframework.web.multipart.MultipartFile;
 
-public class AliossTemplateRe implements OssTemplate {
+public class AliossTemplateRe implements OssTemplateRe {
     private final OSSClient ossClient;
     private final OssProperties ossProperties;
     private final OssRule ossRule;
@@ -288,4 +285,24 @@ public class AliossTemplateRe implements OssTemplate {
         this.ossProperties = ossProperties;
         this.ossRule = ossRule;
     }
+
+
+    // OSS 分片上传
+    public UploadPartResult uploadPart(UploadPartRequest request){
+        UploadPartResult uploadPartResult = this.ossClient.uploadPart(request);
+        return uploadPartResult;
+    }
+
+
+    // OSS 分片上传 合成
+    public CompleteMultipartUploadResult completeMultipartUpload(CompleteMultipartUploadRequest request){
+        CompleteMultipartUploadResult uploadPartResult = this.ossClient.completeMultipartUpload(request);
+        return uploadPartResult;
+    }
+
+    // OSS 分片上传 初始化
+    public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request){
+        InitiateMultipartUploadResult initResult = this.ossClient.initiateMultipartUpload(request);
+        return initResult;
+    }
 }

+ 17 - 0
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/ossre/OssTemplateRe.java

@@ -0,0 +1,17 @@
+package org.springblade.resource.builder.ossre;
+
+import com.aliyun.oss.model.*;
+import org.springblade.core.oss.OssTemplate;
+
+
+public interface OssTemplateRe extends OssTemplate {
+
+    // OSS 分片上传
+    UploadPartResult uploadPart(UploadPartRequest request);
+
+    // OSS 分片上传 合成
+    CompleteMultipartUploadResult completeMultipartUpload(CompleteMultipartUploadRequest request);
+
+    // OSS 分片上传 初始化
+    InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request);
+}

+ 62 - 0
blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/UmsAdminLoginLogDO.java

@@ -0,0 +1,62 @@
+package org.springblade.resource.endpoint;
+
+import com.aliyun.oss.model.PartETag;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author zhangtonghao
+ * @create 2022-04-06 15:08
+ */
+@Data
+public class UmsAdminLoginLogDO {
+
+    /**
+     * 初始化任务id
+     */
+    private String taskId;
+
+    /**
+     * 上传文件类型
+     */
+    private String fileType;
+
+    /**
+     * 文件总片数
+     */
+    private Integer fileSlicesNum;
+    /**
+     * 分片编号(1-10000有序的编号,越大的编号位置越靠后)
+     */
+    private Integer sliceNo;
+    /**
+     * 本次请求文件的md5值
+     */
+    private String fileMD5;
+    /**
+     *文件流数据
+     */
+    private byte[] content;
+
+    /**
+     * 文件名称
+     */
+    private String fileName;
+
+    /**
+     * oss初始化分片id
+     */
+    private String ossSlicesId;
+
+    /**
+     * 最小分片大小(分片上传是除最后一片外,其他文件不得小于该值)
+     */
+    private String minSliceSize;
+
+    Map<Integer, PartETag> partETags = new HashMap<>(16);
+
+
+}

+ 16 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Tenant.java

@@ -108,5 +108,21 @@ public class Tenant extends BaseEntity {
 	@ApiModelProperty(value = "授权码")
 	private String licenseKey;
 
+	/**
+	 * 租户标题
+	 */
+	@ApiModelProperty(value = "租户标题")
+	private String tenantTitle;
 
+	/**
+	 * 租户图标
+	 */
+	@ApiModelProperty(value = "租户图标")
+	private String tenantAvatar;
+
+	/**
+	 * 租户图标文字
+	 */
+	@ApiModelProperty(value = "租户图标文字")
+	private String tenantAvatarText;
 }

+ 22 - 21
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -168,8 +168,7 @@ public class TextdictInfoController extends BladeController {
         //获取当前项目下引用相同模板的元素表信息
         List<WbsTreePrivate> wbsTreePrivatesEqual = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
                 .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
-                .eq(WbsTreePrivate::getHtmlUrl, wbsTreePrivate.getHtmlUrl())
-                .eq(WbsTreePrivate::getStatus, 1));
+                .eq(WbsTreePrivate::getHtmlUrl, wbsTreePrivate.getHtmlUrl()));
         List<Long> pKeyIds = wbsTreePrivatesEqual.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
         String pIds = StringUtils.join(pKeyIds, ",");
 
@@ -479,8 +478,8 @@ public class TextdictInfoController extends BladeController {
         //获取当前项目下引用相同模板的元素表信息
         List<WbsTreePrivate> wbsTreePrivatesEqual = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
                 .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
-                .eq(WbsTreePrivate::getExcelId, wbsTreePrivate.getExcelId())
-                .eq(WbsTreePrivate::getStatus, 1));
+                .eq(WbsTreePrivate::getExcelId, wbsTreePrivate.getExcelId()));
+
         List<Long> pKeyIds = wbsTreePrivatesEqual.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
         String ids = StringUtils.join(pKeyIds, ",");
 
@@ -542,10 +541,12 @@ public class TextdictInfoController extends BladeController {
 
         //删除当前类型
         List<String> collect = textDictInfosNewAll.stream().map(TextdictInfo::getTabId).distinct().collect(Collectors.toList());
-        this.textdictInfoService.getBaseMapper().delete(Wrappers.<TextdictInfo>query().lambda()
-                .eq(TextdictInfo::getType, textdictInfo.getType())
-                .in(TextdictInfo::getTabId, collect)
-        );
+        if(collect!=null && collect.size()>=1){
+            this.textdictInfoService.getBaseMapper().delete(Wrappers.<TextdictInfo>query().lambda()
+                    .eq(TextdictInfo::getType, textdictInfo.getType())
+                    .in(TextdictInfo::getTabId, collect)
+            );
+        }
 
         //批量新增
         this.textdictInfoService.saveBatch(textDictInfosNewAll);
@@ -572,20 +573,20 @@ public class TextdictInfoController extends BladeController {
 
         //修改对应合同段的htmlUrl,当前项目下对应合同段的节点
         List<Long> cIdsList = wbsTreePrivatesEqual.stream().map(WbsTreePrivate::getId).distinct().collect(Collectors.toList());
-        List<Long> cPkeyIds = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>lambdaQuery()
-                .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
-                .eq(WbsTreeContract::getExcelId, wbsTreePrivate.getExcelId())
-                .eq(WbsTreeContract::getStatus, 1)
-                .in(WbsTreeContract::getId, cIdsList)
-        ).stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
-
-        String cPkeyIdsStr = StringUtils.join(cPkeyIds, ",");
-        if (StringUtils.isNotEmpty(cPkeyIdsStr)) {
-            String updateSqlC = "update m_wbs_tree_contract set html_url = '" + replace + "' where p_key_id in (" + cPkeyIdsStr + ")";
-            jdbcTemplate.execute(updateSqlC);
+        if(cIdsList!=null && cIdsList.size()>=1){
+            List<Long> cPkeyIds = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>lambdaQuery()
+                    .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
+                    .eq(WbsTreeContract::getExcelId, wbsTreePrivate.getExcelId())
+                    .eq(WbsTreeContract::getStatus, 1)
+                    .in(WbsTreeContract::getId, cIdsList)
+            ).stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
+
+            String cPkeyIdsStr = StringUtils.join(cPkeyIds, ",");
+            if (StringUtils.isNotEmpty(cPkeyIdsStr)) {
+                String updateSqlC = "update m_wbs_tree_contract set html_url = '" + replace + "' where p_key_id in (" + cPkeyIdsStr + ")";
+                jdbcTemplate.execute(updateSqlC);
+            }
         }
-
-
         return R.success("操作成功");
     }
 

+ 3 - 1
blade-service/blade-system/src/main/java/org/springblade/system/controller/TenantController.java

@@ -195,7 +195,9 @@ public class TenantController extends BladeController {
 		if (tenant != null) {
 			kv.set("tenantId", tenant.getTenantId())
 				.set("domain", tenant.getDomainUrl())
-				.set("backgroundUrl", tenant.getBackgroundUrl());
+				.set("tenantTitle", tenant.getTenantTitle())
+				.set("tenantAvatar", tenant.getTenantAvatar())
+				.set("tenantAvatarText", tenant.getTenantAvatarText());
 		}
 		return R.data(kv);
 	}

+ 3 - 1
blade-service/blade-system/src/main/java/org/springblade/system/mapper/TenantMapper.xml

@@ -21,9 +21,11 @@
         <result column="account_number" property="accountNumber"/>
         <result column="expire_time" property="expireTime"/>
         <result column="license_key" property="licenseKey"/>
+        <result column="tenant_avatar" property="tenantAvatar"/>
+        <result column="tenant_title" property="tenantTitle"/>
+        <result column="tenant_avatar_text" property="tenantAvatarText"/>
     </resultMap>
 
-
     <select id="selectTenantPage" resultMap="tenantResultMap">
         select * from blade_tenant where is_deleted = 0
     </select>