From 96a48a271ba091744907c6a5d75bf211d685ff92 Mon Sep 17 00:00:00 2001 From: zlg <482370576@qq.com> Date: Fri, 5 Jul 2024 09:35:32 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=20bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/controller/SchisandraOssMinioController.java | 5 ++--- .../oss/application/oss/core/minio/MinioOssClient.java | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java index bdbb761..a4e7374 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java @@ -82,12 +82,11 @@ public class SchisandraOssMinioController { * @date: 2024/6/26 13:55 */ @GetMapping("listMinioDir") - public Result listMinioInfo(@RequestParam String target, @RequestParam String userId, @RequestParam String dirName,@RequestParam String bucket) throws Exception { - Preconditions.checkNotNull(target, "不能为空"); + public Result listMinioInfo( @RequestParam String userId, @RequestParam String dirName,@RequestParam String bucket) throws Exception { Preconditions.checkNotNull(userId, "不能为空"); MinioOssClient bean = SpringUtil.getBean(userId); bean.getMinioOssConfig().setBucketName(bucket); - return Result.ok(bean.listDir(target, dirName)); + return Result.ok(bean.listDir(bucket, dirName)); } /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java index 9da19c4..1e6abf9 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java @@ -221,7 +221,7 @@ public class MinioOssClient implements StandardOssClient { info.setName(files[files.length - 1]); info.setPath(item.objectName()); info.setIsDir(item.isDir()); - info.setLength(String.valueOf(item.size())); + info.setLength( DataSizeUtil.format(item.size())); info.setCreateTime(String.valueOf(item.lastModified())); } infos.add(info); From 37829fe78f8f19b054c20f3cf6478551f5aadb8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Fri, 5 Jul 2024 16:01:25 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20ali=E8=8E=B7=E5=8F=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9B=AE=E5=BD=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraOssAliController.java | 22 +++++- .../oss/core/ali/AliOssClient.java | 78 ++++++++++++++++++- .../oss/core/ali/AliOssConfiguration.java | 20 ++++- 3 files changed, 115 insertions(+), 5 deletions(-) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java index 4db0104..ece1ac2 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java @@ -123,6 +123,24 @@ public class SchisandraOssAliController { } + /** + * @description: 获取文件目录信息 + * @param: [target, userId, dirName] + * @return: com.schisandra.oss.common.entity.Result + * @date: 2024/7/5 13:55 + */ + @GetMapping("listAliDir") + public Result listAliDir(@RequestParam String userId,@RequestParam String bucket,@RequestParam String prefix) throws Exception { + Preconditions.checkNotNull(userId, "不能为空"); + AliOssClient bean = SpringUtil.getBean(userId); + bean.getAliOssConfig().setBucketName(bucket); + if(prefix==null) + prefix=""; + return Result.ok(bean.listAliInfo(bucket,prefix)); + } + + + /** * 查找bucket * @param userId @@ -183,8 +201,8 @@ public class SchisandraOssAliController { * @return: void * @date: 2024/6/26 14:34 */ - @PostMapping("uploadMinioFile") - public Result uploadMinioFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { + @PostMapping("uploadAliFile") + public Result uploadAliFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java index 8a46c14..7c7c45b 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.file.FileNameUtil; +import cn.hutool.core.io.unit.DataSizeUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; @@ -31,6 +32,7 @@ import org.springframework.stereotype.Component; import java.io.File; import java.io.InputStream; import java.io.OutputStream; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -52,7 +54,6 @@ public class AliOssClient implements StandardOssClient { private OSS oss; private AliOssConfig aliOssConfig; - public List selectAllBucket() { List buckets = oss.listBuckets(); List names = new ArrayList<>(); @@ -62,6 +63,80 @@ public class AliOssClient implements StandardOssClient { return names; } + /** + * @description: 获取目录文件信息 + * @param: [bucket, dirName] + * @return: java.util.List + * @date: 2024/7/5 13:34 + */ + public String transfer(String before){ + SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); + Date date = new Date(); + try{ + date = sdf.parse(before); + }catch (Exception e){ + e.printStackTrace(); + } + String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); + + return formatStr; + } + + public List listAliInfo(String bucket, String prefix){ + // 列举文件。如果不设置Prefix,则列举存储空间下的所有文件。如果设置Prefix,则列举包含指定前缀的文件。 + ObjectListing objectListing = oss.listObjects(bucket, prefix); + List sums = objectListing.getObjectSummaries(); + List infos = new ArrayList<>(); + if(prefix == ""){ + for(OSSObjectSummary objectSummary : sums){ + OssInfo info = new OssInfo(); + + String[] split_path = objectSummary.getKey().split("/"); + if(split_path.length>=2) + continue; + + String[] split_path_again = split_path[0].split("\\."); + if(split_path_again.length>=2) { + info.setIsDir(false); + }else{ + info.setIsDir(true); + } + info.setName(split_path[0]); + info.setPath(objectSummary.getKey()); + info.setLength(DataSizeUtil.format(objectSummary.getSize())); + + String formatStr = transfer(String.valueOf(objectSummary.getLastModified())); + info.setLastUpdateTime(formatStr); + infos.add(info); + } + + }else{ + for(OSSObjectSummary objectSummary : sums){ + OssInfo info = new OssInfo(); + + int x = prefix.split("/").length; + String[] split_path = objectSummary.getKey().split("/"); + if(split_path.length>=x+2) + continue; + String[] split_path_again = split_path[split_path.length-1].split("\\."); + if(split_path_again.length>=2){ + info.setIsDir(false); + }else{ + info.setIsDir(true); + } + info.setName(split_path[split_path.length-1]); + info.setPath(objectSummary.getKey()); + info.setLength(DataSizeUtil.format(objectSummary.getSize())); + + String formatStr = transfer(String.valueOf(objectSummary.getLastModified())); + info.setLastUpdateTime(formatStr); + infos.add(info); + } + } + return infos; + } + + public String createBucket(String bucketName) { try { @@ -271,5 +346,4 @@ public class AliOssClient implements StandardOssClient { } return ossInfo; } - } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java index e2474b3..c160121 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java @@ -84,9 +84,27 @@ public class AliOssConfiguration { return new AliOssClient(ossClient(aliOssConfig), aliOssConfig); } +// public OSS ossClient(AliOssConfig aliOssConfig) { +// return new OSSClientBuilder().build(aliOssConfig.getEndpoint(), +// aliOssConfig.getAccessKeyId(), +// aliOssConfig.getAccessKeySecret()); +// } public OSS ossClient(AliOssConfig aliOssConfig) { + String securityToken = aliOssConfig.getSecurityToken(); + AliOssClientConfig clientConfiguration = aliOssConfig.getClientConfig(); + if (ObjectUtil.isEmpty(securityToken) && ObjectUtil.isNotEmpty(clientConfiguration)) { + return new OSSClientBuilder().build(aliOssConfig.getEndpoint(), + aliOssConfig.getAccessKeyId(), + aliOssConfig.getAccessKeySecret(), clientConfiguration.toClientConfig()); + } + if (ObjectUtil.isNotEmpty(securityToken) && ObjectUtil.isEmpty(clientConfiguration)) { + return new OSSClientBuilder().build(aliOssConfig.getEndpoint(), + aliOssConfig.getAccessKeyId(), + aliOssConfig.getAccessKeySecret(), securityToken); + } return new OSSClientBuilder().build(aliOssConfig.getEndpoint(), aliOssConfig.getAccessKeyId(), - aliOssConfig.getAccessKeySecret()); + aliOssConfig.getAccessKeySecret(), securityToken, + Optional.ofNullable(clientConfiguration).orElse(new AliOssClientConfig()).toClientConfig()); } } From 1dbc5e1168f82def1935e679acd3a18f86a5f9f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Wed, 10 Jul 2024 14:38:54 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat:=E4=B8=83=E7=89=9B=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml | 7 + .../SchisandraOssFtpController.java | 28 ++- .../SchisandraOssQiniuController.java | 210 +++++++++++++++++- .../dto/SchisandraOssQiniuDTO.java | 2 + .../oss/core/qiniu/QiNiuOssClient.java | 183 +++++++++++++-- .../oss/core/qiniu/QiNiuOssConfiguration.java | 47 +++- .../oss/core/qiniu/model/QiNiuOssConfig.java | 3 +- .../oss/domain/bo/SchisandraOssQiniuBO.java | 1 + .../mapper/SchisandraOssQiniuDao.xml | 1 + 9 files changed, 447 insertions(+), 35 deletions(-) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/pom.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/pom.xml index 961a64b..ad35d0e 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/pom.xml +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/pom.xml @@ -91,5 +91,12 @@ schisandra-cloud-storage-asyncTool 1.4.1-SNAPSHOT + + + com.qiniu + qiniu-java-sdk + 7.13.0 + + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssFtpController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssFtpController.java index 1957524..cffbba8 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssFtpController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssFtpController.java @@ -1,18 +1,21 @@ package com.schisandra.oss.application.controller; +import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssFtpDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssFtpDTO; +import com.schisandra.oss.application.oss.core.ftp.FtpOssClient; +import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssFtpBO; import com.schisandra.oss.domain.service.SchisandraOssFtpDomainService; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.IOException; +import java.io.InputStream; /** * ftp存储配置表 controller @@ -157,4 +160,21 @@ public class SchisandraOssFtpController { } + /** + * @description: 上传文件 + * @param: [schisandraOssFTPDTO] + * @return: void + * @date: 2024/6/26 14:34 + */ + @PostMapping("uploadFtpFile") + public Result uploadAliFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(fileName, "不能为空"); + Preconditions.checkNotNull(bucket, "不能为空"); + // 获取文件输入流 + InputStream is = file.getInputStream(); + FtpOssClient bean = SpringUtil.getBean(userId); + return Result.ok(bean.upLoad(is, fileName, true)); + } + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java index 6243587..e14e112 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java @@ -1,18 +1,25 @@ package com.schisandra.oss.application.controller; +import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssQiniuDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssQiniuDTO; +import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssClient; +import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssConfiguration; +import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; /** * 七牛云对象存储配置表 controller @@ -27,6 +34,201 @@ public class SchisandraOssQiniuController { @Resource private SchisandraOssQiniuDomainService schisandraOssQiniuDomainService; + @Resource + private QiNiuOssConfiguration qiNiuOssConfiguration; + + /** + * @description: 获取文件目录信息 + * @param: [target, userId, dirName] + * @return: com.schisandra.oss.common.entity.Result + * @date: 2024/6/26 13:55 + */ + @GetMapping("listQiniuDir") + public Result listQiniuInfo(@RequestParam String userId, @RequestParam String prefix, @RequestParam String bucket) throws Exception { + Preconditions.checkNotNull(userId, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + return Result.ok(bean.listfile(bucket, prefix)); + } + + /** + * @description: 重命名文件 + * @param: [userId, bucket, oldFileName, newFileName] + * @return: com.schisandra.oss.common.entity.Result + * @author zlg + * @date: 2024/6/27 9:41 + */ + @PostMapping("renameQiniuFile") + public Result renameQiniuFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFileName, @RequestParam String newFileName) throws IOException { + + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(bucket, "不能为空"); + Preconditions.checkNotNull(oldFileName, "不能为空"); + Preconditions.checkNotNull(newFileName, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + try { + bean.rename(oldFileName, newFileName); + }catch (Exception e){ + return Result.fail(e.getMessage()); + } + return Result.ok(); + } + + + /** + * @description: 拷贝文件 + * @param: [userId, bucket, oldFilePath, newFilePath] + * @return: com.schisandra.oss.common.entity.Result + * @author zlg + * @date: 2024/6/27 9:52 + */ + @PostMapping("copyQiniuFile") + public Result copyQiniuFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFilePath, @RequestParam String newFilePath) throws IOException { + + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(bucket, "不能为空"); + Preconditions.checkNotNull(oldFilePath, "不能为空"); + Preconditions.checkNotNull(newFilePath, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + try { + bean.copy(oldFilePath, newFilePath); + }catch (Exception e){ + return Result.fail(e.getMessage()); + } + return Result.ok(); + } + + + /** + * @description: 下载文件 + * @param: [schisandraOssMinioDTO] + * @return: void + * @author sjm + * @date: 2024/7/8 13:56 + */ + @GetMapping("downloadQiniuFile") + public void download_open(@RequestParam String userId,@RequestParam String endpoint, @RequestParam String filename,HttpServletResponse response) throws IOException { + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setEndpoint(endpoint); + ServletOutputStream output = response.getOutputStream(); + + + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "utf-8")); + bean.downLoad_open(output,filename,endpoint); + } + + + /** + * @description: 删除文件 + * @param: [schisandraOssMinioDTO] + * @return: void + * @date: 2024/7/8 14:34 + */ + @PostMapping("deleteQiniuFile") + public Result deleteQiniuFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) { + Preconditions.checkNotNull(bucket, "不能为空"); + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(filePath, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + bean.delete(filePath); + return Result.ok(); + } + + + /** + * @description: 上传文件 + * @param: [schisandraOssMinioDTO] + * @return: void + * @date: 2024/7/8 14:34 + */ + @PostMapping("uploadQiniuFile") + public Result uploadQiniuFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(fileName, "不能为空"); + Preconditions.checkNotNull(bucket, "不能为空"); + // 获取文件输入流 + InputStream is = file.getInputStream(); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + return Result.ok(bean.upLoad(is, fileName, true)); + } + + + /** + * @description: 获取所有bucket + * @param: [userId, bucket] + * @return: com.schisandra.oss.common.entity.Result + * @date: 2024/7/8 17:37 + */ + @GetMapping("seleteBucket") + public Result seleteBucket(@RequestParam String userId) { + Preconditions.checkNotNull(userId, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + return Result.ok(bean.selectAllBucket()); + } + + /** + * @description: 删除bucket + * @param: [userId, bucket] + * @return: com.schisandra.oss.common.entity.Result + * @date: 2024/7/8 17:38 + */ + @PostMapping("deleteBucket") + public Result deleteBucket(@RequestParam String userId, @RequestParam String bucket) { + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(bucket, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + return Result.ok(bean.deleteBucket(bucket)); + } + + /** + * 创建桶createbucket + * @param userId + * @param bucket + * @return + */ + @PostMapping("createBucket") + public Result createBucket(@RequestParam String userId, @RequestParam String bucket,@RequestParam String region) { + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(bucket, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + bean.getQiNiuOssConfig().setBucketName(bucket); + bean.getQiNiuOssConfig().setRegion(region); + try { + return Result.ok(bean.createBucket(bucket,region)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * @description: qiniu 初始化 + * @param: [] + * @return: void + * @date: 2024/7/8 13:34 + */ + @PostMapping("init") + public void initQiniu(@RequestParam String userId) { + if (log.isInfoEnabled()) { + log.info("SchisandraOssMinioController.init.userId:{}", userId); + } + Preconditions.checkNotNull(userId, "用户id不能为空!"); + + Result result = qiNiuOssConfiguration.qiNiuOssClient(userId); + if (result != null) { + log.info("用户: {}-> qiniu 初始化完成!", userId); + } else { + log.error("用户: {}-> qiniu 初始化失败!", userId); + } + } + + /** * 新增七牛云对象存储配置表 diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java index 1c9f97d..b99c743 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java @@ -169,5 +169,7 @@ public class SchisandraOssQiniuDTO implements Serializable { */ private String checkBucket; + private String endpoint; + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java index a237bb8..da46862 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java @@ -4,16 +4,14 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.file.FileNameUtil; +import cn.hutool.core.io.unit.DataSizeUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.qiniu.common.QiniuException; -import com.qiniu.storage.BucketManager; -import com.qiniu.storage.Configuration; -import com.qiniu.storage.DownloadUrl; -import com.qiniu.storage.UploadManager; +import com.qiniu.storage.*; import com.qiniu.storage.model.FileInfo; import com.qiniu.storage.model.FileListing; import com.qiniu.storage.persistent.FileRecorder; @@ -34,21 +32,21 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import okhttp3.OkHttpClient; +import okhttp3.Request; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.*; + +import static com.aliyuncs.utils.Base64Helper.encode; /** + * @author zlg * @description: qiniu oss client * @param: * @return: - * @author zlg * @date: 2024/6/25 14:00 */ @Slf4j @@ -62,11 +60,165 @@ public class QiNiuOssClient implements StandardOssClient { public static final String BUCKET_OBJECT_NAME = "bucketManager"; private Auth auth; + private UploadManager uploadManager; private BucketManager bucketManager; private QiNiuOssConfig qiNiuOssConfig; private Configuration configuration; + /* + * 将时间转换为时间戳 + */ + @SneakyThrows + public static long dateToStamp(String s) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = simpleDateFormat.parse(s); + long ts = date.getTime(); + return ts; + } + + /** + * @description: 获取目录文件信息 + * @param: [bucket, prefix] delimiter 指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。缺省值为空字符串 + * @return: java.util.List + * @date: 2024/6/26 13:34 + */ + public List listfile(String bucket, String prefix) { + String delimiter = ""; + + + BucketManager.FileListIterator fileListIterator = bucketManager.createFileListIterator(bucket, prefix, 1000, delimiter); + List infos = new ArrayList<>(); + while (fileListIterator.hasNext()){ + FileInfo[] items = fileListIterator.next(); + for (FileInfo item : items) { + OssInfo info = new OssInfo(); + info.setPath(item.key); + info.setLength(DataSizeUtil.format(item.fsize)); + + String[] split_path = item.key.split("/"); + String[] split_path1 = split_path[split_path.length-1].split("\\."); + if(split_path.length >= 2 && split_path1.length >= 2){ + info.setIsDir(false); + info.setName(split_path[split_path.length-1]); + }else if(split_path.length >= 2){ + info.setIsDir(true); + info.setName(split_path[split_path.length-1]); + }else if(split_path.length < 2 && split_path1.length < 2){ + info.setIsDir(true); + info.setName(item.key); + }else{ + info.setIsDir(false); + info.setName(item.key); + } + + info.setCreateTime(String.valueOf(item.putTime)); + System.out.println(item.key); + infos.add(info); + } + } + return infos; + } + + /** + * 七牛图片下载 + * + * @param os targetName endpoint + * @param endpoint + * @return + */ + @SneakyThrows + public void downLoad_open(OutputStream os, String targetName,String endpoint) { + String filename = URLEncoder.encode(targetName,"UTF-8").replace("+", "%20"); + DownloadUrl downloadUrl = new DownloadUrl(endpoint, false, getKey(filename, false)); + try { + String url = downloadUrl.buildURL(); + HttpUtil.download(url, os, false); + } catch (QiniuException e) { + String errorMsg = String.format("%s下载失败", targetName); + log.error(errorMsg, e); + throw new OssException(errorMsg, e); + } + } + + @SneakyThrows + public String[] selectAllBucket() { + String[] buckets = bucketManager.buckets(); + + return buckets; + } + + + @SneakyThrows + public Integer deleteBucket(String bucketName) { + + String path = "/drop/" + bucketName + "\n"; + String access_token = auth.sign(path); + + + String url = "http://rs.qiniu.com/drop/" + bucketName; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url(url).addHeader("Content-Type", "application/x-www-form-urlencoded") + + .addHeader("Authorization", "QBox " + access_token) + .addHeader("Host", "uc.qiniuapi.com") + .addHeader("X-Qiniu-Date", "20060102T150405Z").build(); + okhttp3.Response re = null; + re = client.newCall(request).execute(); + if (re.isSuccessful() == true) { + + System.out.println(re.code()); + System.out.println(re.toString()); + return re.code(); + } else { + System.out.println(re.code()); + System.out.println(re.toString()); + return re.code(); + + } + } + + + /** + * OSSClient + * 创建桶 + * + * @param bucketName + * @return + */ + public Integer createBucket(String bucketName, String region) throws IOException { + //mkbucketv2 此处不按照管网上的 管网上的会报401 + String path = "/mkbucketv2/" + encode(bucketName.getBytes()) + "/region/" + region + "\n"; + String access_token = auth.sign(path); + + + String url = "http://rs.qiniu.com/mkbucketv2/" + encode(bucketName.getBytes()) + "/region/" + region; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url(url).addHeader("Content-Type", "application/x-www-form-urlencoded") + // Authorization 不以管网的 使用QBox +access_token 可以实现 + .addHeader("Authorization", "QBox " + access_token) + .addHeader("Host", "uc.qiniuapi.com") + .addHeader("X-Qiniu-Date", "20060102T150405Z").build(); + okhttp3.Response re = null; + try { + re = client.newCall(request).execute(); + if (re.isSuccessful() == true) { + + System.out.println(re.code()); + System.out.println(re.toString()); + return re.code(); + } else { + System.out.println(re.code()); + System.out.println(re.toString()); + return re.code(); + + } + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + @Override public OssInfo upLoad(InputStream is, String targetName, Boolean isOverride) { try { @@ -96,9 +248,10 @@ public class QiNiuOssClient implements StandardOssClient { return getInfo(targetName); } + //已废除 @Override public void downLoad(OutputStream os, String targetName) { - DownloadUrl downloadUrl = new DownloadUrl("qiniu.com", false, getKey(targetName, false)); + DownloadUrl downloadUrl = new DownloadUrl("", false, getKey(targetName, false)); try { String url = downloadUrl.buildURL(); HttpUtil.download(url, os, false); @@ -167,6 +320,8 @@ public class QiNiuOssClient implements StandardOssClient { } } + + @Override public void delete(String targetName) { try { diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java index 35ea884..6ff7c26 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java @@ -2,6 +2,7 @@ package com.schisandra.oss.application.oss.core.qiniu; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.extra.spring.SpringUtil; import com.qiniu.storage.BucketManager; import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; @@ -12,14 +13,15 @@ import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.qiniu.model.QiNiuOssClientConfig; import com.schisandra.oss.application.oss.core.qiniu.model.QiNiuOssConfig; import com.schisandra.oss.application.oss.model.SliceConfig; +import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService; import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Optional; +import java.util.concurrent.CompletableFuture; /** * @description: qiniu oss 配置类 @@ -32,25 +34,46 @@ import java.util.Optional; @Slf4j public class QiNiuOssConfiguration { + @Resource + QiNiuOssConfiguration qiniuOssConfiguration; @Resource private SchisandraOssQiniuDomainService schisandraOssQiniuDomainService; - public StandardOssClient qiNiuOssClient(String userId) { - SchisandraOssQiniuBO schisandraOssQiniuBO = schisandraOssQiniuDomainService.getQiniuOssConfig(userId); - SchisandraOssQiniuDTO schisandraOssQiniuDTO = SchisandraOssQiniuDTOConverter.INSTANCE.convertBOToDTO(schisandraOssQiniuBO); - if (ObjectUtil.isEmpty(schisandraOssQiniuDTO)) { - log.error("jd oss配置信息获取失败"); + public SchisandraOssQiniuDTO getSchisandraOssQiNDTO(String userId) { + CompletableFuture futurePrice = CompletableFuture.supplyAsync(() -> { + SchisandraOssQiniuBO qiniuBO = schisandraOssQiniuDomainService.getQiniuOssConfig(userId); + SchisandraOssQiniuDTO qiniuDTO = SchisandraOssQiniuDTOConverter.INSTANCE.convertBOToDTO(qiniuBO); + return qiniuDTO; + }); + SchisandraOssQiniuDTO qiniu = futurePrice.join(); + if (ObjectUtil.isEmpty(qiniu)) { + log.error("qiniu配置信息获取失败"); return null; } - String accessKey = schisandraOssQiniuDTO.getAccessKey(); - String secretKey = schisandraOssQiniuDTO.getSecretKey(); - QiNiuOssConfig qiNiuOssConfig = new QiNiuOssConfig(); - qiNiuOssConfig.setAccessKey(accessKey); - qiNiuOssConfig.setSecretKey(secretKey); - return qiNiuOssClient(qiNiuOssConfig); + return qiniu; + } + public Result qiNiuOssClient(String userId) { + try { + SchisandraOssQiniuDTO qiniu = qiniuOssConfiguration.getSchisandraOssQiNDTO(userId); + if (qiniu == null) return null; + QiNiuOssConfig qiniuOssConfig = new QiNiuOssConfig(); + qiniuOssConfig.setBasePath(qiniu.getBasePath()); + qiniuOssConfig.setBucketName(qiniu.getBucketName()); + qiniuOssConfig.setAccessKey(qiniu.getAccessKey()); + qiniuOssConfig.setSecretKey(qiniu.getSecretKey()); + qiniuOssConfig.setRegion(qiniu.getRegion()); + qiniuOssConfig.setEndpoint(qiniu.getEndpoint()); + qiniuOssConfig.init(); + + SpringUtil.registerBean(userId, qiNiuOssClient(qiniuOssConfig)); + return Result.ok(); + } catch (Exception e) { + log.error("QiniuOssConfiguration.qiniuOssClient:{}", e.getMessage(), e); + return Result.fail(); + } } private StandardOssClient qiNiuOssClient(QiNiuOssConfig qiNiuOssConfig) { diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/model/QiNiuOssConfig.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/model/QiNiuOssConfig.java index 3c163ba..cb58718 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/model/QiNiuOssConfig.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/model/QiNiuOssConfig.java @@ -13,7 +13,8 @@ public class QiNiuOssConfig { private String secretKey; private String bucketName; private QiNiuOssClientConfig clientConfig; - + private String Region; + private String endpoint; /** * 断点续传参数 */ diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssQiniuBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssQiniuBO.java index 2602e77..1e71901 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssQiniuBO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssQiniuBO.java @@ -168,5 +168,6 @@ public class SchisandraOssQiniuBO implements Serializable { */ private String checkBucket; + private String endpoint; } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssQiniuDao.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssQiniuDao.xml index d5c0962..6703f6a 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssQiniuDao.xml +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssQiniuDao.xml @@ -34,6 +34,7 @@ + From c3eb827497b52a47bb9f18f8364c20c91a26a482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Wed, 10 Jul 2024 15:21:12 +0800 Subject: [PATCH 4/9] =?UTF-8?q?feat:=E9=87=8D=E6=96=B0=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=B8=83=E7=89=9B=E6=96=87=E4=BB=B6=E4=BF=A1=E6=81=AF=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/controller/SchisandraOssQiniuController.java | 2 -- .../oss/application/oss/core/qiniu/QiNiuOssClient.java | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java index e14e112..4462b85 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java @@ -55,7 +55,6 @@ public class SchisandraOssQiniuController { * @description: 重命名文件 * @param: [userId, bucket, oldFileName, newFileName] * @return: com.schisandra.oss.common.entity.Result - * @author zlg * @date: 2024/6/27 9:41 */ @PostMapping("renameQiniuFile") @@ -80,7 +79,6 @@ public class SchisandraOssQiniuController { * @description: 拷贝文件 * @param: [userId, bucket, oldFilePath, newFilePath] * @return: com.schisandra.oss.common.entity.Result - * @author zlg * @date: 2024/6/27 9:52 */ @PostMapping("copyQiniuFile") diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java index da46862..ea0f849 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java @@ -112,7 +112,10 @@ public class QiNiuOssClient implements StandardOssClient { info.setName(item.key); } - info.setCreateTime(String.valueOf(item.putTime)); + String x = String.valueOf(item.putTime).substring(0, 10); + long y = Long.parseLong(x)*1000; + String result = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(y)); + info.setCreateTime(result); System.out.println(item.key); infos.add(info); } From 4cc8fec86815049cb1744d35a0cca9101044687b Mon Sep 17 00:00:00 2001 From: zlg <482370576@qq.com> Date: Thu, 11 Jul 2024 14:56:31 +0800 Subject: [PATCH 5/9] =?UTF-8?q?feat:=20=E7=83=AD=E5=8A=9B=E5=9B=BE?= =?UTF-8?q?=E5=92=8C=E5=92=96=E5=95=A1=E5=9B=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraAuthUserController.java | 18 ++ .../SchisandraAuthUserDomainService.java | 9 +- .../SchisandraAuthUserDomainServiceImpl.java | 6 +- .../com/schisandra/auth/AuthApplication.java | 2 + .../src/main/resources/application.yml | 6 + .../SchisandraOssMinioController.java | 35 +++- .../SchisandraOssTencentController.java | 19 ++- .../SchisandraUserOssController.java | 156 ++++++++++++++++++ .../SchisandraFileHeatmapDTOConverter.java | 22 +++ .../SchisandraUserOssDTOConverter.java | 26 +++ .../dto/SchisandraFileHeatmapDTO.java | 38 +++++ .../application/dto/SchisandraUserOssDTO.java | 73 ++++++++ .../domain/bo/SchisandraFileHeatmapBO.java | 37 +++++ .../oss/domain/bo/SchisandraUserOssBO.java | 72 ++++++++ .../SchisandraFileHeatmapBOConverter.java | 22 +++ .../convert/SchisandraUserOssBOConverter.java | 26 +++ .../oss/domain/redis/RedisUtil.java | 19 +++ .../SchisandraFileHeatmapDomainService.java | 28 ++++ .../SchisandraUserOssDomainService.java | 31 ++++ ...chisandraFileHeatmapDomainServiceImpl.java | 46 ++++++ .../SchisandraUserOssDomainServiceImpl.java | 57 +++++++ .../basic/dao/SchisandraFileHeatmapDao.java | 17 ++ .../infra/basic/dao/SchisandraUserOssDao.java | 17 ++ .../basic/entity/SchisandraFileHeatmap.java | 47 ++++++ .../infra/basic/entity/SchisandraUserOss.java | 89 ++++++++++ .../service/SchisandraFileHeatmapService.java | 46 ++++++ .../service/SchisandraUserOssService.java | 50 ++++++ .../SchisandraFileHeatmapServiceImpl.java | 67 ++++++++ .../impl/SchisandraUserOssServiceImpl.java | 75 +++++++++ .../mapper/SchisandraFileHeatmapDao.xml | 12 ++ .../resources/mapper/SchisandraUserOssDao.xml | 19 +++ 31 files changed, 1173 insertions(+), 14 deletions(-) create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java index c7aa739..ee90cf9 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java @@ -31,6 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -371,6 +372,23 @@ public class SchisandraAuthUserController { } return Result.ok(JSONObject.parseObject(result)); } + /** + * @description: 获取用户信息 + * @param: [userId] + * @return: com.schisandra.auth.common.entity.Result + * @author zlg + * @date: 2024/7/11 9:39 + */ + @GetMapping("getUserInfo") + public Result getUserInfo(@RequestParam("userId") Long userId) { + SchisandraAuthUserDTO schisandraAuthUserDTO = SchisandraAuthUserDTOConverter.INSTANCE.convertBOToDTO(schisandraAuthUserDomainService.queryById(userId)); + if ( schisandraAuthUserDTO== null) { + return Result.fail("该用户不存在"); + }else { + return Result.ok(schisandraAuthUserDTO); + } + } + } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java index a6d094a..92f3361 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java @@ -5,6 +5,9 @@ import com.schisandra.auth.common.entity.Result; import com.schisandra.auth.domain.bo.SchisandraAuthUserBO; import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser; import me.zhyd.oauth.model.AuthUser; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; import java.util.HashMap; @@ -61,6 +64,7 @@ public interface SchisandraAuthUserDomainService { * @author schisandra * @date 2024/3/21 23:14 */ + @CachePut(value = "userInfo", key = "#schisandraAuthUserBO.id") Object update(SchisandraAuthUserBO schisandraAuthUserBO); /** @@ -70,6 +74,7 @@ public interface SchisandraAuthUserDomainService { * @author: landaiqing * @date: 2024/5/26 17:27 */ + Result insertAuthUserByOauth(AuthUser data, String type); /** @@ -79,7 +84,8 @@ public interface SchisandraAuthUserDomainService { * @author: landaiqing * @date: 2024/5/26 17:27 */ - SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO); + @Cacheable(value = "userInfo", key = "#userId") + SchisandraAuthUserBO queryById(Long userId); /** * @param schisandraAuthUserBO @@ -95,6 +101,7 @@ public interface SchisandraAuthUserDomainService { * @description 删除用户(物理) * @author msz */ + @CacheEvict(value = "userInfo",key = "id") Object deleteById(Long id); SchisandraAuthUser queryByPhone(String phone); diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java index cd28442..f0dd915 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java @@ -167,15 +167,15 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo /** - * @param schisandraAuthUserBO + * @param Long * @return * @description 查询用户信息 * @author msz * @date 2024/4/3 22:10 */ @Override - public SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO) { - SchisandraAuthUser schisandraAuthUser = schisandraAuthUserService.queryById(schisandraAuthUserBO.getId()); + public SchisandraAuthUserBO queryById(Long userId) { + SchisandraAuthUser schisandraAuthUser = schisandraAuthUserService.queryById(userId); SchisandraAuthUserBO schisandraAuthUserBO1 = SchisandraAuthUserBOConverter.INSTANCE.convertEntityToBO(schisandraAuthUser); return schisandraAuthUserBO1; } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java index e52fdd4..951910c 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java @@ -3,6 +3,7 @@ package com.schisandra.auth; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -18,6 +19,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @MapperScan("com.schisandra.**.dao") @EnableFeignClients(basePackages = "com.schisandra") @EnableTransactionManagement +@EnableCaching public class AuthApplication { public static void main(String[] args) { SpringApplication.run(AuthApplication.class); diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml index 0a2aefd..5244454 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml @@ -27,6 +27,11 @@ spring: enabled: true config: enabled: true + #caffeine缓存 + cache: + type: caffeine + caffeine: + spec: maximumSize=10000,expireAfterAccess=60s # redis配置 redis: # Redis数据库索引(默认为0) @@ -108,3 +113,4 @@ rocketmq: producer: group: schisandra-cloud-storage-auth-group send-message-timeout: 6000 + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java index a4e7374..edbe938 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java @@ -5,6 +5,7 @@ import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.amazonaws.util.IOUtils; import com.google.common.base.Preconditions; +import com.google.gson.Gson; import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssMinioDTO; import com.schisandra.oss.application.oss.core.minio.MinioOssClient; @@ -15,6 +16,7 @@ import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService; import io.minio.errors.*; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -27,8 +29,8 @@ import java.io.InputStream; import java.net.URLEncoder; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; /** @@ -48,7 +50,7 @@ public class SchisandraOssMinioController { private SchisandraOssMinioDomainService schisandraOssMinioDomainService; @Resource MinioOssConfiguration minioOssConfiguration; - + private final String USER_OSS_PREFIX = "oss:user:heat"; @Resource RedisUtil redisUtil; @@ -141,15 +143,30 @@ public class SchisandraOssMinioController { * @date: 2024/6/26 14:34 */ @PostMapping("uploadMinioFile") - public Result uploadMinioFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { + public Result uploadMinioFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); - // 获取文件输入流 - InputStream is = file.getInputStream(); - MinioOssClient bean = SpringUtil.getBean(userId); - bean.getMinioOssConfig().setBucketName(bucket); - return Result.ok(bean.upLoad(is, fileName, true)); + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,"2024-07-12"); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } + return Result.ok(); +// +// // 获取文件输入流 +// InputStream is = file.getInputStream(); +// MinioOssClient bean = SpringUtil.getBean(userId); +// bean.getMinioOssConfig().setBucketName(bucket); +// return Result.ok(bean.upLoad(is, fileName, true)); + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java index 13e7e12..5f6f406 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java @@ -15,6 +15,7 @@ import com.schisandra.oss.application.oss.core.tencent.TencentOssClient; import com.schisandra.oss.application.oss.core.tencent.TencentOssConfiguration; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssTencentBO; +import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssTencentDomainService; import io.minio.errors.*; import lombok.extern.slf4j.Slf4j; @@ -26,6 +27,8 @@ import java.io.IOException; import java.io.InputStream; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -43,7 +46,9 @@ public class SchisandraOssTencentController { private SchisandraOssTencentDomainService schisandraOssTencentDomainService; @Resource TencentOssConfiguration tencentOssConfiguration; - + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; @PostMapping("init") public void initTencent(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { @@ -154,6 +159,18 @@ public class SchisandraOssTencentController { TencentOssClient bean = SpringUtil.getBean(userId); InputStream is = file.getInputStream(); bean.getTencentOssConfig().setBucketName(bucket); + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } return Result.ok(bean.upLoadParts(is,target,file.getOriginalFilename())); } /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java new file mode 100644 index 0000000..b0f3125 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java @@ -0,0 +1,156 @@ +package com.schisandra.oss.application.controller; + +import com.alibaba.fastjson.JSON; +import com.google.common.base.Preconditions; +import com.schisandra.oss.application.convert.SchisandraUserOssDTOConverter; +import com.schisandra.oss.application.dto.SchisandraUserOssDTO; +import com.schisandra.oss.common.entity.Result; +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import com.schisandra.oss.domain.redis.RedisUtil; +import com.schisandra.oss.domain.service.SchisandraUserOssDomainService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * 用户对象存储映射表 controller + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@RestController +@RequestMapping("/oss/user/") +@Slf4j +public class SchisandraUserOssController { + + @Resource + private SchisandraUserOssDomainService schisandraUserOssDomainService; + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; + /** + * 新增用户对象存储映射表 + */ + @RequestMapping("add") + public Result add(@RequestBody SchisandraUserOssDTO schisandraUserOssDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraUserOssController.add.dto:{}", JSON.toJSONString(schisandraUserOssDTO)); + } + Preconditions.checkNotNull(schisandraUserOssDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getOssType(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIcon(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getName(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getBucketCount(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIsDeleted(), "不能为空"); + SchisandraUserOssBO SchisandraUserOssBO = SchisandraUserOssDTOConverter.INSTANCE.convertDTOToBO(schisandraUserOssDTO); + return Result.ok(schisandraUserOssDomainService.add(SchisandraUserOssBO)); + } catch (Exception e) { + log.error("SchisandraUserOssController.register.error:{}", e.getMessage(), e); + return Result.fail("新增用户对象存储映射表失败"); + } + + } + + /** + * 修改用户对象存储映射表 + */ + @RequestMapping("update") + public Result update(@RequestBody SchisandraUserOssDTO schisandraUserOssDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraUserOssController.update.dto:{}", JSON.toJSONString(schisandraUserOssDTO)); + } + Preconditions.checkNotNull(schisandraUserOssDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getOssType(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIcon(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getName(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getBucketCount(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIsDeleted(), "不能为空"); + SchisandraUserOssBO schisandraUserOssBO = SchisandraUserOssDTOConverter.INSTANCE.convertDTOToBO(schisandraUserOssDTO); + return Result.ok(schisandraUserOssDomainService.update(schisandraUserOssBO)); + } catch (Exception e) { + log.error("SchisandraUserOssController.update.error:{}", e.getMessage(), e); + return Result.fail("更新用户对象存储映射表信息失败"); + } + + } + + /** + * 删除用户对象存储映射表 + */ + @RequestMapping("delete") + public Result delete(@RequestBody SchisandraUserOssDTO schisandraUserOssDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraUserOssController.delete.dto:{}", JSON.toJSONString(schisandraUserOssDTO)); + } + Preconditions.checkNotNull(schisandraUserOssDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getOssType(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIcon(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getName(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getBucketCount(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIsDeleted(), "不能为空"); + SchisandraUserOssBO schisandraUserOssBO = SchisandraUserOssDTOConverter.INSTANCE.convertDTOToBO(schisandraUserOssDTO); + return Result.ok(schisandraUserOssDomainService.delete(schisandraUserOssBO)); + } catch (Exception e) { + log.error("SchisandraUserOssController.delete.error:{}", e.getMessage(), e); + return Result.fail("删除用户对象存储映射表信息失败"); + } + + } + /** + * @description: 查询用户对象存储映射表 + * @param: [userId] + * @return: com.schisandra.oss.common.entity.Result + * @author zlg + * @date: 2024/7/11 14:41 + */ + @GetMapping("selectUserOSSType") + public Result selectUserOSSType(Long userId){ + Preconditions.checkNotNull(userId, "不能为空"); + List SchisandraUserOssDTOList=SchisandraUserOssDTOConverter.INSTANCE.convertBOListToDTOList(schisandraUserOssDomainService.queryOSSByUserId(userId)); + if (SchisandraUserOssDTOList.isEmpty()) { + return Result.fail("没有查询到用户对象存储映射表信息"); + }else { + return Result.ok(SchisandraUserOssDTOList); + } + } + /** + * @description: 查询用户文件热度 + * @param: [userId] + * @return: com.schisandra.oss.common.entity.Result + * @author zlg + * @date: 2024/7/11 14:41 + */ + @GetMapping("selectUserFileHeat") + public Result selectUserFileHeat(@RequestParam Long userId){ + Preconditions.checkNotNull(userId, "不能为空"); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId); + return Result.ok(redisUtil.getDataFromDirectory(key)); + } + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java new file mode 100644 index 0000000..0fbbd82 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java @@ -0,0 +1,22 @@ +package com.schisandra.oss.application.convert; + +import com.schisandra.oss.application.dto.SchisandraFileHeatmapDTO; +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 文件上传热力图表 dto转换器 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Mapper +public interface SchisandraFileHeatmapDTOConverter { + + SchisandraFileHeatmapDTOConverter INSTANCE = Mappers.getMapper(SchisandraFileHeatmapDTOConverter.class); + + SchisandraFileHeatmapBO convertDTOToBO(SchisandraFileHeatmapDTO schisandraFileHeatmapDTO); + SchisandraFileHeatmapDTO convertBOToDTO(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java new file mode 100644 index 0000000..7f1e0b3 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java @@ -0,0 +1,26 @@ +package com.schisandra.oss.application.convert; + +import com.schisandra.oss.application.dto.SchisandraUserOssDTO; +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 用户对象存储映射表 dto转换器 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Mapper +public interface SchisandraUserOssDTOConverter { + + SchisandraUserOssDTOConverter INSTANCE = Mappers.getMapper(SchisandraUserOssDTOConverter.class); + + SchisandraUserOssBO convertDTOToBO(SchisandraUserOssDTO schisandraUserOssDTO); + SchisandraUserOssDTO convertBOToDTO(SchisandraUserOssBO schisandraUserOssBO); + + List convertBOListToDTOList(List schisandraUserOssBOList); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java new file mode 100644 index 0000000..4a49997 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java @@ -0,0 +1,38 @@ +package com.schisandra.oss.application.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件上传热力图表 dto + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Data +public class SchisandraFileHeatmapDTO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private Date date; + + /** + * + */ + private Long count; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java new file mode 100644 index 0000000..3397d31 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java @@ -0,0 +1,73 @@ +package com.schisandra.oss.application.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 用户对象存储映射表 dto + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Data +public class SchisandraUserOssDTO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private String ossType; + + /** + * + */ + private String icon; + + /** + * + */ + private String name; + + /** + * + */ + private Integer bucketCount; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * + */ + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java new file mode 100644 index 0000000..9d40a34 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java @@ -0,0 +1,37 @@ +package com.schisandra.oss.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +/** + * 文件上传热力图表 bo + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Data +public class SchisandraFileHeatmapBO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private Date date; + + /** + * + */ + private Long count; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java new file mode 100644 index 0000000..0c3ca13 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java @@ -0,0 +1,72 @@ +package com.schisandra.oss.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +/** + * 用户对象存储映射表 bo + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Data +public class SchisandraUserOssBO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private String ossType; + + /** + * + */ + private String icon; + + /** + * + */ + private String name; + + /** + * + */ + private Integer bucketCount; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * + */ + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java new file mode 100644 index 0000000..f67cb41 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java @@ -0,0 +1,22 @@ +package com.schisandra.oss.domain.convert; + +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 文件上传热力图表 bo转换器 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Mapper +public interface SchisandraFileHeatmapBOConverter { + + SchisandraFileHeatmapBOConverter INSTANCE = Mappers.getMapper(SchisandraFileHeatmapBOConverter.class); + + SchisandraFileHeatmap convertBOToEntity(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + SchisandraFileHeatmapBO convertEntityToBO(SchisandraFileHeatmap schisandraFileHeatmap); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java new file mode 100644 index 0000000..0fdbaeb --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java @@ -0,0 +1,26 @@ +package com.schisandra.oss.domain.convert; + +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 用户对象存储映射表 bo转换器 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Mapper +public interface SchisandraUserOssBOConverter { + + SchisandraUserOssBOConverter INSTANCE = Mappers.getMapper(SchisandraUserOssBOConverter.class); + + SchisandraUserOss convertBOToEntity(SchisandraUserOssBO schisandraUserOssBO); + SchisandraUserOssBO convertEntityToBO(SchisandraUserOss schisandraUserOss); + + List convertEntityListToBOList(List schisandraUserOssList); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java index 28cf26a..1028900 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java @@ -1,11 +1,14 @@ package com.schisandra.oss.domain.redis; +import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -26,6 +29,22 @@ public class RedisUtil { private static final String CACHE_KEY_SEPARATOR = ":"; + + public List getDataFromDirectory(String directory) { + Setkeys=redisTemplate.keys(directory+":*"); + List keysList=new ArrayList<>(); + keys.forEach(key->{ + HashMap map=new HashMap<>(); + String value= (String) redisTemplate.opsForValue().get(key); + String keyName=key.substring(key.lastIndexOf(":")+1); + map.put(keyName,value); + keysList.add(map); + }); + return keysList; + } + + + /** * 构建缓存key */ diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java new file mode 100644 index 0000000..4c8580a --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java @@ -0,0 +1,28 @@ +package com.schisandra.oss.domain.service; + +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; + +/** + * 文件上传热力图表 领域service + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +public interface SchisandraFileHeatmapDomainService { + + /** + * 添加 文件上传热力图表 信息 + */ + Boolean add(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + + /** + * 更新 文件上传热力图表 信息 + */ + Boolean update(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + + /** + * 删除 文件上传热力图表 信息 + */ + Boolean delete(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java new file mode 100644 index 0000000..7099ffd --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java @@ -0,0 +1,31 @@ +package com.schisandra.oss.domain.service; + +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; + +import java.util.List; + +/** + * 用户对象存储映射表 领域service + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +public interface SchisandraUserOssDomainService { + + /** + * 添加 用户对象存储映射表 信息 + */ + Boolean add(SchisandraUserOssBO schisandraUserOssBO); + + /** + * 更新 用户对象存储映射表 信息 + */ + Boolean update(SchisandraUserOssBO schisandraUserOssBO); + + /** + * 删除 用户对象存储映射表 信息 + */ + Boolean delete(SchisandraUserOssBO schisandraUserOssBO); + + List queryOSSByUserId(Long userId); +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java new file mode 100644 index 0000000..1c6d89c --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java @@ -0,0 +1,46 @@ +package com.schisandra.oss.domain.service.impl; + +import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.convert.SchisandraFileHeatmapBOConverter; +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; +import com.schisandra.oss.domain.service.SchisandraFileHeatmapDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import com.schisandra.oss.infra.basic.service.SchisandraFileHeatmapService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 文件上传热力图表 领域service实现了 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Service +@Slf4j +public class SchisandraFileHeatmapDomainServiceImpl implements SchisandraFileHeatmapDomainService { + + @Resource + private SchisandraFileHeatmapService schisandraFileHeatmapService; + + @Override + public Boolean add(SchisandraFileHeatmapBO schisandraFileHeatmapBO) { + SchisandraFileHeatmap schisandraFileHeatmap = SchisandraFileHeatmapBOConverter.INSTANCE.convertBOToEntity(schisandraFileHeatmapBO); + return schisandraFileHeatmapService.insert(schisandraFileHeatmap) > 0; + } + + @Override + public Boolean update(SchisandraFileHeatmapBO schisandraFileHeatmapBO) { + SchisandraFileHeatmap schisandraFileHeatmap = SchisandraFileHeatmapBOConverter.INSTANCE.convertBOToEntity(schisandraFileHeatmapBO); + return schisandraFileHeatmapService.update(schisandraFileHeatmap) > 0; + } + + @Override + public Boolean delete(SchisandraFileHeatmapBO schisandraFileHeatmapBO) { + SchisandraFileHeatmap schisandraFileHeatmap = new SchisandraFileHeatmap(); + schisandraFileHeatmap.setId(schisandraFileHeatmapBO.getId()); + return schisandraFileHeatmapService.update(schisandraFileHeatmap) > 0; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java new file mode 100644 index 0000000..2b14eaa --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java @@ -0,0 +1,57 @@ +package com.schisandra.oss.domain.service.impl; + +import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.convert.SchisandraUserOssBOConverter; +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import com.schisandra.oss.domain.service.SchisandraUserOssDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import com.schisandra.oss.infra.basic.service.SchisandraUserOssService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +/** + * 用户对象存储映射表 领域service实现了 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Service +@Slf4j +public class SchisandraUserOssDomainServiceImpl implements SchisandraUserOssDomainService { + + @Resource + private SchisandraUserOssService schisandraUserOssService; + + @Override + public Boolean add(SchisandraUserOssBO schisandraUserOssBO) { + SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO); + schisandraUserOss.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode()); + return schisandraUserOssService.insert(schisandraUserOss) > 0; + } + + @Override + public Boolean update(SchisandraUserOssBO schisandraUserOssBO) { + SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO); + return schisandraUserOssService.update(schisandraUserOss) > 0; + } + + @Override + public Boolean delete(SchisandraUserOssBO schisandraUserOssBO) { + SchisandraUserOss schisandraUserOss = new SchisandraUserOss(); + schisandraUserOss.setId(schisandraUserOssBO.getId()); + schisandraUserOss.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode()); + return schisandraUserOssService.update(schisandraUserOss) > 0; + } + + @Override + public List queryOSSByUserId(Long userId) { + List SchisandraUserOssBOList= SchisandraUserOssBOConverter + .INSTANCE.convertEntityListToBOList(schisandraUserOssService.queryOSSByUserId(userId)); + return SchisandraUserOssBOList; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java new file mode 100644 index 0000000..a0ee045 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java @@ -0,0 +1,17 @@ +package com.schisandra.oss.infra.basic.dao; + +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import com.mybatisflex.core.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * 文件上传热力图表 表数据库访问层 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Repository +public interface SchisandraFileHeatmapDao extends BaseMapper { + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java new file mode 100644 index 0000000..2b06157 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java @@ -0,0 +1,17 @@ +package com.schisandra.oss.infra.basic.dao; + +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import com.mybatisflex.core.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * 用户对象存储映射表 表数据库访问层 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Repository +public interface SchisandraUserOssDao extends BaseMapper { + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java new file mode 100644 index 0000000..33b16f7 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java @@ -0,0 +1,47 @@ +package com.schisandra.oss.infra.basic.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件上传热力图表 实体类 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Data +@Table("schisandra_file_heatmap") +public class SchisandraFileHeatmap implements Serializable { + + /** + * + */ + @Id(value = "id", keyType = KeyType.Auto) + private Long id; + + /** + * + */ + @Column("user_id") + private Long userId; + + /** + * + */ + @Column("date") + private Date date; + + /** + * + */ + @Column("count") + private Long count; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java new file mode 100644 index 0000000..5071803 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java @@ -0,0 +1,89 @@ +package com.schisandra.oss.infra.basic.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 用户对象存储映射表 实体类 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Data +@Table("schisandra_user_oss") +public class SchisandraUserOss implements Serializable { + + /** + * + */ + @Id(value = "id", keyType = KeyType.Auto) + private Long id; + + /** + * + */ + @Column("user_id") + private Long userId; + + /** + * + */ + @Column("oss_type") + private String ossType; + + /** + * + */ + @Column("icon") + private String icon; + + /** + * + */ + @Column("name") + private String name; + + /** + * + */ + @Column("bucket_count") + private Integer bucketCount; + + /** + * 创建人 + */ + @Column("created_by") + private String createdBy; + + /** + * 创建时间 + */ + @Column("created_time") + private Date createdTime; + + /** + * 更新人 + */ + @Column("update_by") + private String updateBy; + + /** + * 更新时间 + */ + @Column("update_time") + private Date updateTime; + + /** + * + */ + @Column("is_deleted") + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java new file mode 100644 index 0000000..5644b8d --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java @@ -0,0 +1,46 @@ +package com.schisandra.oss.infra.basic.service; + +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; + +/** + * 文件上传热力图表 表服务接口 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +public interface SchisandraFileHeatmapService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraFileHeatmap queryById(Long id); + + /** + * 新增数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + int insert(SchisandraFileHeatmap schisandraFileHeatmap); + + /** + * 修改数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + int update(SchisandraFileHeatmap schisandraFileHeatmap); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java new file mode 100644 index 0000000..c33b4a4 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java @@ -0,0 +1,50 @@ +package com.schisandra.oss.infra.basic.service; + +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; + +import java.util.List; + +/** + * 用户对象存储映射表 表服务接口 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +public interface SchisandraUserOssService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraUserOss queryById(Long id); + + /** + * 新增数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + int insert(SchisandraUserOss schisandraUserOss); + + /** + * 修改数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + int update(SchisandraUserOss schisandraUserOss); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + List queryOSSByUserId(Long userId); + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java new file mode 100644 index 0000000..923692e --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java @@ -0,0 +1,67 @@ +package com.schisandra.oss.infra.basic.service.impl; + +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import com.schisandra.oss.infra.basic.dao.SchisandraFileHeatmapDao; +import com.schisandra.oss.infra.basic.service.SchisandraFileHeatmapService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 文件上传热力图表 表服务实现类 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Service("SchisandraFileHeatmapService") +public class SchisandraFileHeatmapServiceImpl implements SchisandraFileHeatmapService { + + @Resource + private SchisandraFileHeatmapDao schisandraFileHeatmapDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraFileHeatmap queryById(Long id) { + return this.schisandraFileHeatmapDao.selectOneById(id); + } + + /** + * 新增数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + @Override + public int insert(SchisandraFileHeatmap schisandraFileHeatmap) { + return this.schisandraFileHeatmapDao.insertSelective(schisandraFileHeatmap); + } + + /** + * 修改数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + @Override + public int update(SchisandraFileHeatmap schisandraFileHeatmap) { + return this.schisandraFileHeatmapDao.update(schisandraFileHeatmap,true); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.schisandraFileHeatmapDao.deleteById(id) > 0; + } + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java new file mode 100644 index 0000000..da0c96a --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java @@ -0,0 +1,75 @@ +package com.schisandra.oss.infra.basic.service.impl; + +import com.mybatisflex.core.query.QueryWrapper; +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import com.schisandra.oss.infra.basic.dao.SchisandraUserOssDao; +import com.schisandra.oss.infra.basic.entity.table.SchisandraUserOssTableDef; +import com.schisandra.oss.infra.basic.service.SchisandraUserOssService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 用户对象存储映射表 表服务实现类 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Service("SchisandraUserOssService") +public class SchisandraUserOssServiceImpl implements SchisandraUserOssService { + + @Resource + private SchisandraUserOssDao schisandraUserOssDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraUserOss queryById(Long id) { + return this.schisandraUserOssDao.selectOneById(id); + } + + /** + * 新增数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + @Override + public int insert(SchisandraUserOss schisandraUserOss) { + return this.schisandraUserOssDao.insertSelective(schisandraUserOss); + } + + /** + * 修改数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + @Override + public int update(SchisandraUserOss schisandraUserOss) { + return this.schisandraUserOssDao.update(schisandraUserOss,true); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.schisandraUserOssDao.deleteById(id) > 0; + } + + @Override + public List queryOSSByUserId(Long userId) { + return this.schisandraUserOssDao.selectListByCondition(SchisandraUserOssTableDef.SCHISANDRA_USER_OSS.USER_ID.eq(userId)); + } + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml new file mode 100644 index 0000000..32e99d0 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml new file mode 100644 index 0000000..ed83a49 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + From cb4a20c8ed491f7e13c9084772600480e18481ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Fri, 12 Jul 2024 11:45:23 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat:=20ali=E3=80=81qiniu=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=83=AD=E5=8A=9B=E5=9B=BE=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraOssAliController.java | 44 +++++++++++-------- .../SchisandraOssMinioController.java | 15 +++---- .../SchisandraOssQiniuController.java | 20 +++++++++ 3 files changed, 52 insertions(+), 27 deletions(-) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java index ece1ac2..852a888 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java @@ -2,21 +2,21 @@ package com.schisandra.oss.application.controller; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; -import com.amazonaws.util.IOUtils; + import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssAliDTO; import com.schisandra.oss.application.oss.core.ali.AliOssClient; import com.schisandra.oss.application.oss.core.ali.AliOssConfiguration; -import com.schisandra.oss.application.oss.core.minio.MinioOssClient; + import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssAliBO; +import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssAliDomainService; -import io.minio.errors.*; + import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -26,8 +26,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.Date; + /** * controller @@ -44,8 +45,10 @@ public class SchisandraOssAliController { private SchisandraOssAliDomainService schisandraOssAliDomainService; @Resource private AliOssConfiguration aliOssConfiguration; - @Autowired - private AliOssClient aliOssClient; + + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; @GetMapping("init") public void init(@RequestParam String userId){ @@ -144,20 +147,10 @@ public class SchisandraOssAliController { /** * 查找bucket * @param userId - * @return - * @throws ServerException - * @throws InsufficientDataException - * @throws ErrorResponseException - * @throws IOException - * @throws NoSuchAlgorithmException - * @throws InvalidKeyException - * @throws InvalidResponseException - * @throws XmlParserException - * @throws InternalException */ @PostMapping("seleteBucket") - public Result seleteBucket(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + public Result seleteBucket(@RequestParam String userId) { Preconditions.checkNotNull(userId, "不能为空"); AliOssClient bean = SpringUtil.getBean(userId); return Result.ok(bean.selectAllBucket()); @@ -206,6 +199,19 @@ public class SchisandraOssAliController { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); + + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } // 获取文件输入流 InputStream is = file.getInputStream(); AliOssClient bean = SpringUtil.getBean(userId); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java index edbe938..c9c3d03 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java @@ -151,7 +151,7 @@ public class SchisandraOssMinioController { Date date =new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = dateFormat.format(date); - String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,"2024-07-12"); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate); int count=1; if (redisUtil.exist(key)){ count= Integer.parseInt(redisUtil.get(key)); @@ -159,13 +159,12 @@ public class SchisandraOssMinioController { }else { redisUtil.set(key, String.valueOf(1)); } - return Result.ok(); -// -// // 获取文件输入流 -// InputStream is = file.getInputStream(); -// MinioOssClient bean = SpringUtil.getBean(userId); -// bean.getMinioOssConfig().setBucketName(bucket); -// return Result.ok(bean.upLoad(is, fileName, true)); + + // 获取文件输入流 + InputStream is = file.getInputStream(); + MinioOssClient bean = SpringUtil.getBean(userId); + bean.getMinioOssConfig().setBucketName(bucket); + return Result.ok(bean.upLoad(is, fileName, true)); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java index 4462b85..e6eea53 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java @@ -10,6 +10,7 @@ import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssConfiguration; import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; +import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -20,6 +21,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; /** * 七牛云对象存储配置表 controller @@ -37,6 +40,9 @@ public class SchisandraOssQiniuController { @Resource private QiNiuOssConfiguration qiNiuOssConfiguration; + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; /** * @description: 获取文件目录信息 * @param: [target, userId, dirName] @@ -149,6 +155,20 @@ public class SchisandraOssQiniuController { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); + + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } + // 获取文件输入流 InputStream is = file.getInputStream(); QiNiuOssClient bean = SpringUtil.getBean(userId); From 5874fe1c2a0301ae78acee30187d682e670068ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Fri, 12 Jul 2024 19:45:13 +0800 Subject: [PATCH 7/9] feat: sftp --- .../SchisandraOssAliController.java | 14 +- .../SchisandraOssQiniuController.java | 14 +- .../SchisandraOssSftpController.java | 311 ++++++++++++++++++ .../SchisandraOssSftpDTOConverter.java | 22 ++ .../application/dto/SchisandraOssSftpDTO.java | 128 +++++++ .../oss/core/qiniu/QiNiuOssClient.java | 1 - .../core/sftp/DefaultSftpProgressMonitor.java | 1 + .../oss/core/sftp/SftpOssClient.java | 239 ++++++++++++++ .../oss/core/sftp/SftpOssConfiguration.java | 76 +++++ .../core/sftp/model/SftpOssClientConfig.java | 31 ++ .../oss/core/sftp/model/SftpOssConfig.java | 57 ++++ .../oss/domain/bo/SchisandraOssSftpBO.java | 127 +++++++ .../convert/SchisandraOssSftpBOConverter.java | 22 ++ .../SchisandraOssSftpDomainService.java | 30 ++ .../SchisandraOssSftpDomainServiceImpl.java | 58 ++++ .../infra/basic/dao/SchisandraOssSftpDao.java | 17 + .../infra/basic/entity/SchisandraOssSftp.java | 155 +++++++++ .../service/SchisandraOssSftpService.java | 47 +++ .../impl/SchisandraOssSftpServiceImpl.java | 73 ++++ .../resources/mapper/SchisandraOssSftpDao.xml | 30 ++ 20 files changed, 1438 insertions(+), 15 deletions(-) create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraOssSftpDTOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/DefaultSftpProgressMonitor.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssClient.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssClientConfig.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssConfig.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssSftpBO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraOssSftpBOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraOssSftpDao.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssSftp.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssSftpDao.xml diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java index 852a888..935bb34 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java @@ -132,7 +132,7 @@ public class SchisandraOssAliController { * @return: com.schisandra.oss.common.entity.Result * @date: 2024/7/5 13:55 */ - @GetMapping("listAliDir") + @GetMapping("listDir") public Result listAliDir(@RequestParam String userId,@RequestParam String bucket,@RequestParam String prefix) throws Exception { Preconditions.checkNotNull(userId, "不能为空"); AliOssClient bean = SpringUtil.getBean(userId); @@ -194,7 +194,7 @@ public class SchisandraOssAliController { * @return: void * @date: 2024/6/26 14:34 */ - @PostMapping("uploadAliFile") + @PostMapping("uploadFile") public Result uploadAliFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); @@ -227,7 +227,7 @@ public class SchisandraOssAliController { * @return: voiD * @date: 2024/6/26 13:56 */ - @GetMapping("downloadAliFile") + @GetMapping("downloadFile") public void getAliFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath, HttpServletResponse response) throws Exception { Preconditions.checkNotNull(bucket, "不能为空"); Preconditions.checkNotNull(userId, "不能为空"); @@ -246,8 +246,8 @@ public class SchisandraOssAliController { * @return: void * @date: 2024/6/26 14:34 */ - @PostMapping("deleteAliFile") - public Result deleteMinioFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) { + @PostMapping("deleteFile") + public Result deleteAliFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) { Preconditions.checkNotNull(bucket, "不能为空"); Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(filePath, "不能为空"); @@ -264,8 +264,8 @@ public class SchisandraOssAliController { * @return: com.schisandra.oss.common.entity.Result * @date: 2024/6/27 9:41 */ - @PostMapping("renameAliFile") - public Result renameMinioFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFileName, @RequestParam String newFileName) throws IOException { + @PostMapping("renameFile") + public Result renameAliFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFileName, @RequestParam String newFileName) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java index e6eea53..9d311c2 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java @@ -49,7 +49,7 @@ public class SchisandraOssQiniuController { * @return: com.schisandra.oss.common.entity.Result * @date: 2024/6/26 13:55 */ - @GetMapping("listQiniuDir") + @GetMapping("listDir") public Result listQiniuInfo(@RequestParam String userId, @RequestParam String prefix, @RequestParam String bucket) throws Exception { Preconditions.checkNotNull(userId, "不能为空"); QiNiuOssClient bean = SpringUtil.getBean(userId); @@ -63,7 +63,7 @@ public class SchisandraOssQiniuController { * @return: com.schisandra.oss.common.entity.Result * @date: 2024/6/27 9:41 */ - @PostMapping("renameQiniuFile") + @PostMapping("renameFile") public Result renameQiniuFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFileName, @RequestParam String newFileName) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); @@ -87,7 +87,7 @@ public class SchisandraOssQiniuController { * @return: com.schisandra.oss.common.entity.Result * @date: 2024/6/27 9:52 */ - @PostMapping("copyQiniuFile") + @PostMapping("copyFile") public Result copyQiniuFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFilePath, @RequestParam String newFilePath) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); @@ -112,7 +112,7 @@ public class SchisandraOssQiniuController { * @author sjm * @date: 2024/7/8 13:56 */ - @GetMapping("downloadQiniuFile") + @GetMapping("downloadFile") public void download_open(@RequestParam String userId,@RequestParam String endpoint, @RequestParam String filename,HttpServletResponse response) throws IOException { QiNiuOssClient bean = SpringUtil.getBean(userId); bean.getQiNiuOssConfig().setEndpoint(endpoint); @@ -132,7 +132,7 @@ public class SchisandraOssQiniuController { * @return: void * @date: 2024/7/8 14:34 */ - @PostMapping("deleteQiniuFile") + @PostMapping("deleteFile") public Result deleteQiniuFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) { Preconditions.checkNotNull(bucket, "不能为空"); Preconditions.checkNotNull(userId, "不能为空"); @@ -150,7 +150,7 @@ public class SchisandraOssQiniuController { * @return: void * @date: 2024/7/8 14:34 */ - @PostMapping("uploadQiniuFile") + @PostMapping("uploadFile") public Result uploadQiniuFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); @@ -234,7 +234,7 @@ public class SchisandraOssQiniuController { @PostMapping("init") public void initQiniu(@RequestParam String userId) { if (log.isInfoEnabled()) { - log.info("SchisandraOssMinioController.init.userId:{}", userId); + log.info("SchisandraOssQiniuController.init.userId:{}", userId); } Preconditions.checkNotNull(userId, "用户id不能为空!"); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java new file mode 100644 index 0000000..aabeb0f --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java @@ -0,0 +1,311 @@ +package com.schisandra.oss.application.controller; + +import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; +import com.google.common.base.Preconditions; +import com.schisandra.oss.application.convert.SchisandraOssSftpDTOConverter; +import com.schisandra.oss.application.dto.SchisandraOssSftpDTO; +import com.schisandra.oss.application.oss.core.ali.AliOssClient; +import com.schisandra.oss.application.oss.core.ftp.FtpOssClient; +import com.schisandra.oss.application.oss.core.ftp.FtpOssConfiguration; +import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssClient; +import com.schisandra.oss.application.oss.core.sftp.SftpOssClient; +import com.schisandra.oss.application.oss.core.sftp.SftpOssConfiguration; +import com.schisandra.oss.application.oss.model.OssInfo; +import com.schisandra.oss.common.entity.Result; +import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import com.schisandra.oss.domain.redis.RedisUtil; +import com.schisandra.oss.domain.service.SchisandraOssSftpDomainService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * sftp存储配置表 controller + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@RestController +@RequestMapping("/oss/sftp/") +@Slf4j +public class SchisandraOssSftpController { + + @Resource + private SchisandraOssSftpDomainService schisandraOssSftpDomainService; + + @Resource + private SftpOssConfiguration sftpOssConfiguration; + + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; + + + /** + * @description: 拷贝文件 + * @param: [userId, bucket, oldFilePath, newFilePath] + * @return: com.schisandra.oss.common.entity.Result + * @date: 2024/6/27 9:52 + */ + @PostMapping("copyFile") + public Result copySftpFile(@RequestParam String userId, @RequestParam String oldFilePath, @RequestParam String newFilePath) throws IOException { + + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(oldFilePath, "不能为空"); + Preconditions.checkNotNull(newFilePath, "不能为空"); + QiNiuOssClient bean = SpringUtil.getBean(userId); + try { + bean.copy(oldFilePath, newFilePath); + }catch (Exception e){ + return Result.fail(e.getMessage()); + } + return Result.ok(); + } + + /** + * 重命名 + */ + @PostMapping("renameFile") + public Result renameSftpFile(@RequestParam String userId, @RequestParam String oldFileName, @RequestParam String newFileName) throws IOException { + + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(oldFileName, "不能为空"); + Preconditions.checkNotNull(newFileName, "不能为空"); + SftpOssClient bean = SpringUtil.getBean(userId); + try { + bean.rename(oldFileName, newFileName); + }catch (Exception e){ + return Result.fail(e.getMessage()); + } + return Result.ok(); + } + + + /** + * @description: 获取文件目录信息 + * @param: [target, userId, dirName] + * @return: com.schisandra.oss.common.entity.Result + */ + @GetMapping("listDir") + public Result listSftpInfo(@RequestParam String userId, @RequestParam String prefix) throws Exception { + Preconditions.checkNotNull(userId, "不能为空"); + SftpOssClient bean = SpringUtil.getBean(userId); + return Result.ok(bean.listfile(prefix)); + } + + + /** + * 删除文件 + */ + @PostMapping("deleteFile") + public Result deleteSftpFile(@RequestParam String userId, @RequestParam String fileName) { + SftpOssClient bean = SpringUtil.getBean(userId); + bean.delete(fileName); + return Result.ok(); + } + + + /** + * 下载文件 + */ + + @GetMapping("downloadFile") + public void downloadSftpFile(@RequestParam String userId, @RequestParam String filename, HttpServletResponse response) throws IOException { + SftpOssClient bean = SpringUtil.getBean(userId); + ServletOutputStream output = response.getOutputStream(); + + + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "utf-8")); + bean.downLoad(output,filename); + } + + /** + * 上传文件 + */ + @PostMapping("uploadFile") + @SneakyThrows + public Result uploadSftpFile(@RequestParam String userId , @RequestParam MultipartFile file, @RequestParam String fileName) { + Preconditions.checkNotNull(userId, "不能为空"); + Preconditions.checkNotNull(fileName, "不能为空"); + + + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } + + // 获取文件输入流 + InputStream is = file.getInputStream(); + SftpOssClient bean = SpringUtil.getBean(userId); + + return Result.ok(bean.upLoad(is, fileName, true)); + } + + + /** + * @description: sftp初始化 + * @param: [] + * @return: void + * @date: 2024/7/12 13:34 + */ + @PostMapping("init") + public void initSftp(@RequestParam String userId) { + if (log.isInfoEnabled()) { + log.info("SchisandraOssSftpController.init.userId:{}", userId); + } + Preconditions.checkNotNull(userId, "用户id不能为空!"); + + Result result = sftpOssConfiguration.sftpOssClient(userId); + if (result != null) { + log.info("用户: {}-> sftp 初始化完成!", userId); + } else { + log.error("用户: {}-> sftp 初始化失败!", userId); + } + } + + + /** + * 新增sftp存储配置表 + */ + @RequestMapping("add") + public Result add(@RequestBody SchisandraOssSftpDTO schisandraOssSftpDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraOssSftpController.add.dto:{}", JSON.toJSONString(schisandraOssSftpDTO)); + } + Preconditions.checkNotNull(schisandraOssSftpDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getHost(), "主机不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPort(), "端口不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getBasePath(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUser(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPassword(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCharset(), "编码不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getConnectionTimeout(), "连接超时时长,单位毫秒不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getSoTimeout(), "Socket连接超时时长,单位毫秒不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getServerLanguageCode(), "设置服务器语言不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getSystemKey(), "设置服务器系统关键词不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPartSize(), "分片大小,默认5MB不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getTaskNum(), "并发线程数,默认等于CPU的核数不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getStatus(), "状态不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getOpenAdvancedSetup(), "是否开启高级设置不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getIsDeleted(), "是否删除 0 未删除 1已删除不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getExtraJson(), "额外字段不能为空"); + SchisandraOssSftpBO SchisandraOssSftpBO = SchisandraOssSftpDTOConverter.INSTANCE.convertDTOToBO(schisandraOssSftpDTO); + return Result.ok(schisandraOssSftpDomainService.add(SchisandraOssSftpBO)); + } catch (Exception e) { + log.error("SchisandraOssSftpController.register.error:{}", e.getMessage(), e); + return Result.fail("新增sftp存储配置表失败"); + } + + } + + /** + * 修改sftp存储配置表 + */ + @RequestMapping("update") + public Result update(@RequestBody SchisandraOssSftpDTO schisandraOssSftpDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraOssSftpController.update.dto:{}", JSON.toJSONString(schisandraOssSftpDTO)); + } + Preconditions.checkNotNull(schisandraOssSftpDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getHost(), "主机不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPort(), "端口不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getBasePath(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUser(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPassword(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCharset(), "编码不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getConnectionTimeout(), "连接超时时长,单位毫秒不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getSoTimeout(), "Socket连接超时时长,单位毫秒不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getServerLanguageCode(), "设置服务器语言不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getSystemKey(), "设置服务器系统关键词不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPartSize(), "分片大小,默认5MB不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getTaskNum(), "并发线程数,默认等于CPU的核数不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getStatus(), "状态不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getOpenAdvancedSetup(), "是否开启高级设置不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getIsDeleted(), "是否删除 0 未删除 1已删除不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getExtraJson(), "额外字段不能为空"); + SchisandraOssSftpBO schisandraOssSftpBO = SchisandraOssSftpDTOConverter.INSTANCE.convertDTOToBO(schisandraOssSftpDTO); + return Result.ok(schisandraOssSftpDomainService.update(schisandraOssSftpBO)); + } catch (Exception e) { + log.error("SchisandraOssSftpController.update.error:{}", e.getMessage(), e); + return Result.fail("更新sftp存储配置表信息失败"); + } + + } + + /** + * 删除sftp存储配置表 + */ + @RequestMapping("delete") + public Result delete(@RequestBody SchisandraOssSftpDTO schisandraOssSftpDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraOssSftpController.delete.dto:{}", JSON.toJSONString(schisandraOssSftpDTO)); + } + Preconditions.checkNotNull(schisandraOssSftpDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getHost(), "主机不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPort(), "端口不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getBasePath(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUser(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPassword(), "不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCharset(), "编码不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getConnectionTimeout(), "连接超时时长,单位毫秒不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getSoTimeout(), "Socket连接超时时长,单位毫秒不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getServerLanguageCode(), "设置服务器语言不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getSystemKey(), "设置服务器系统关键词不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getPartSize(), "分片大小,默认5MB不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getTaskNum(), "并发线程数,默认等于CPU的核数不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getStatus(), "状态不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getOpenAdvancedSetup(), "是否开启高级设置不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getIsDeleted(), "是否删除 0 未删除 1已删除不能为空"); + Preconditions.checkNotNull(schisandraOssSftpDTO.getExtraJson(), "额外字段不能为空"); + SchisandraOssSftpBO schisandraOssSftpBO = SchisandraOssSftpDTOConverter.INSTANCE.convertDTOToBO(schisandraOssSftpDTO); + return Result.ok(schisandraOssSftpDomainService.delete(schisandraOssSftpBO)); + } catch (Exception e) { + log.error("SchisandraOssSftpController.delete.error:{}", e.getMessage(), e); + return Result.fail("删除sftp存储配置表信息失败"); + } + + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraOssSftpDTOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraOssSftpDTOConverter.java new file mode 100644 index 0000000..b2cc329 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraOssSftpDTOConverter.java @@ -0,0 +1,22 @@ +package com.schisandra.oss.application.convert; + +import com.schisandra.oss.application.dto.SchisandraOssSftpDTO; +import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * sftp存储配置表 dto转换器 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Mapper +public interface SchisandraOssSftpDTOConverter { + + SchisandraOssSftpDTOConverter INSTANCE = Mappers.getMapper(SchisandraOssSftpDTOConverter.class); + + SchisandraOssSftpBO convertDTOToBO(SchisandraOssSftpDTO schisandraOssSftpDTO); + SchisandraOssSftpDTO convertBOToDTO(SchisandraOssSftpBO schisandraOssSftpBO); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java new file mode 100644 index 0000000..2b2922f --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java @@ -0,0 +1,128 @@ +package com.schisandra.oss.application.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * sftp存储配置表 dto + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Data +public class SchisandraOssSftpDTO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * 主机 + */ + private String host; + + /** + * 端口 + */ + private Integer port; + + /** + * + */ + private String basePath; + + /** + * + */ + private String user; + + /** + * + */ + private String password; + + /** + * 编码 + */ + private String charset; + + /** + * 连接超时时长,单位毫秒 + */ + private Long connectionTimeout; + + /** + * Socket连接超时时长,单位毫秒 + */ + private Date soTimeout; + + /** + * 设置服务器语言 + */ + private String serverLanguageCode; + + /** + * 设置服务器系统关键词 + */ + private String systemKey; + + /** + * 分片大小,默认5MB + */ + private Integer partSize; + + /** + * 并发线程数,默认等于CPU的核数 + */ + private Integer taskNum; + + /** + * 状态 + */ + private String status; + + /** + * 是否开启高级设置 + */ + private String openAdvancedSetup; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 是否删除 0 未删除 1已删除 + */ + private Integer isDeleted; + + /** + * 额外字段 + */ + private String extraJson; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java index ea0f849..6b78fda 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java @@ -116,7 +116,6 @@ public class QiNiuOssClient implements StandardOssClient { long y = Long.parseLong(x)*1000; String result = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(y)); info.setCreateTime(result); - System.out.println(item.key); infos.add(info); } } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/DefaultSftpProgressMonitor.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/DefaultSftpProgressMonitor.java new file mode 100644 index 0000000..0d623e7 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/DefaultSftpProgressMonitor.java @@ -0,0 +1 @@ +/** * $Id: DefaultSftpProgressMonitor.java,v 1.0 2022/2/12 5:11 PM chenmin Exp $ */ package com.schisandra.oss.application.oss.core.sftp; import com.jcraft.jsch.SftpProgressMonitor; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.text.NumberFormat; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * @author 陈敏 * @version $Id: DefaultSftpProgressMonitor.java,v 1.1 2022/2/12 5:11 PM chenmin Exp $ * Created on 2022/2/12 5:11 PM * My blog: https://www.chenmin.info */ @Data @Slf4j @AllArgsConstructor @NoArgsConstructor public class DefaultSftpProgressMonitor implements SftpProgressMonitor, Runnable { private long maxFileSize = 0L; private long startTime = 0L; private long upLoaded = 0L; private boolean isScheduled = false; private ScheduledExecutorService executorService; public DefaultSftpProgressMonitor(long maxFileSize) { this.maxFileSize = maxFileSize; } @Override public void run() { NumberFormat format = NumberFormat.getPercentInstance(); format.setMaximumFractionDigits(2); format.setMinimumFractionDigits(2); String value = format.format((upLoaded / (double) maxFileSize)); if (log.isDebugEnabled()) { log.debug("已传输:{}KB,传输进度:{}", upLoaded/1024, value); } if (upLoaded == maxFileSize) { destoryThread(); long endTime = System.currentTimeMillis(); if (log.isDebugEnabled()) { log.debug("传输完成!用时:{}s", (endTime - startTime)/1000); } } } @Override public void init(int op, String src, String dest, long max) { if (log.isDebugEnabled()) { log.debug("开始传输文件:{},文件总大小为:{}KB", src, maxFileSize/1024); } startTime = System.currentTimeMillis(); } @Override public boolean count(long count) { if (!isScheduled) { createThread(); } upLoaded += count; if (count > 0) { return true; } return false; } @Override public void end() { } /** * 创建线程,定时输出上传进度 */ public void createThread() { executorService = Executors.newSingleThreadScheduledExecutor(); executorService.scheduleWithFixedDelay(this, 1, 2, TimeUnit.SECONDS); isScheduled = true; } public void destoryThread() { boolean isShutdown = executorService.isShutdown(); if (!isShutdown) { executorService.shutdown(); } } } \ No newline at end of file diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssClient.java new file mode 100644 index 0000000..bd2db4a --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssClient.java @@ -0,0 +1,239 @@ +package com.schisandra.oss.application.oss.core.sftp; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.file.FileNameUtil; +import cn.hutool.core.io.unit.DataSizeUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.ssh.Sftp; + +import com.jcraft.jsch.*; +import com.schisandra.oss.application.oss.core.StandardOssClient; +import com.schisandra.oss.application.oss.core.sftp.model.SftpOssConfig; +import com.schisandra.oss.application.oss.exception.OssException; +import com.schisandra.oss.application.oss.model.DirectoryOssInfo; +import com.schisandra.oss.application.oss.model.FileOssInfo; +import com.schisandra.oss.application.oss.model.OssInfo; +import com.schisandra.oss.application.oss.utils.OssPathUtil; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + + +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Paths; +import java.text.SimpleDateFormat; +import java.util.*; + +import static java.nio.file.Files.getLastModifiedTime; + + +@Slf4j +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SftpOssClient implements StandardOssClient { + + public static final String SFTP_OBJECT_NAME = "sftp"; + + private Sftp sftp; + private SftpOssConfig sftpOssConfig; + + @Override + public OssInfo upLoad(InputStream is, String targetName, Boolean isOverride) { + String key = getKey(targetName, true); + String parentPath = OssPathUtil.convertPath(Paths.get(key).getParent().toString(), true); + if (!sftp.exist(parentPath)) { + sftp.mkDirs(parentPath); + } + if (isOverride || !sftp.exist(key)) { + sftp.upload(parentPath, FileNameUtil.getName(targetName), is); + } + return getInfo(targetName); + } + + @Override + public OssInfo upLoadCheckPoint(File file, String targetName) { + String key = getKey(targetName, true); + String parentPath = OssPathUtil.convertPath(Paths.get(key).getParent().toString(), true); + if (!sftp.exist(parentPath)) { + sftp.mkDirs(parentPath); + } + sftp.put(file.getPath(), parentPath, new DefaultSftpProgressMonitor(file.length()), Sftp.Mode.RESUME); + return getInfo(targetName); + } + + @Override + public void downLoad(OutputStream os, String targetName) { + sftp.download(getKey(targetName, true), os); + } + + @Override + public void downLoadCheckPoint(File localFile, String targetName) { + try { + OssInfo ossInfo = getInfo(targetName, false); + long skip = localFile.exists() ? localFile.length() : 0; + OutputStream os = new FileOutputStream(localFile); + ChannelSftp sftpClient = sftp.getClient(); + sftpClient.get(getKey(targetName, true), os, new DefaultSftpProgressMonitor(Convert.toLong(ossInfo.getLength())), Sftp.Mode.RESUME.ordinal(), skip); + } catch (Exception e) { + throw new OssException(e); + } + } + + @Override + public void delete(String targetName) { + String key = getKey(targetName, true); + if (isDirectory(targetName)) { + sftp.delDir(key); + } else { + sftp.delFile(key); + } + } + + @Override + public void copy(String sourceName, String targetName, Boolean isOverride) { + log.warn("sftp协议不支持copy命令"); + } + + @Override + public void move(String sourceName, String targetName, Boolean isOverride) { + log.warn("sftp协议不支持move命令"); + } + + @Override + public void rename(String sourceName, String targetName, Boolean isOverride) { + String newSourceName = getKey(sourceName, true); + String newTargetName = getKey(targetName, true); + try { + if (isOverride || !isExist(newTargetName)) { + sftp.getClient().rename(newSourceName, newTargetName); + } + } catch (SftpException e) { + log.error("{}重命名为{}失败,错误信息为:", newSourceName, newTargetName, e); + } + } + + @Override + public OssInfo getInfo(String targetName, Boolean isRecursion) { + String key = getKey(targetName, true); + OssInfo ossInfo = getBaseInfo(key); + if (isRecursion && sftp.isDir(key)) { + List lsEntries = sftp.lsEntries(key); + List fileOssInfos = new ArrayList<>(); + List directoryInfos = new ArrayList<>(); + for (ChannelSftp.LsEntry lsEntry : lsEntries) { + SftpATTRS attrs = lsEntry.getAttrs(); + String target = OssPathUtil.convertPath(targetName + StrUtil.SLASH + lsEntry.getFilename(), true); + if (attrs.isDir()) { + directoryInfos.add(getInfo(target, true)); + } else { + fileOssInfos.add(getInfo(target, false)); + } + } + ReflectUtil.setFieldValue(ossInfo, "fileInfos", fileOssInfos); + ReflectUtil.setFieldValue(ossInfo, "directoryInfos", directoryInfos); + } + return ossInfo; + } + + @Override + public Boolean isExist(String targetName) { + return sftp.exist(getKey(targetName, true)); + } + + @Override + public Boolean isFile(String targetName) { + return !isDirectory(targetName); + } + + @Override + public Boolean isDirectory(String targetName) { + return sftp.isDir(getKey(targetName, true)); + } + + @Override + public String getBasePath() { + return sftpOssConfig.getBasePath(); + } + + @Override + public Map getClientObject() { + return new HashMap() { + { + put(SFTP_OBJECT_NAME, getSftp()); + } + }; + } + + private OssInfo getBaseInfo(String targetName) { + String name = FileNameUtil.getName(targetName); + String path = OssPathUtil.replaceKey(name, getBasePath(), true); + ChannelSftp.LsEntry targetLsEntry = null; + OssInfo ossInfo; + if (sftp.isDir(targetName)) { + ossInfo = new DirectoryOssInfo(); + List lsEntries = sftp.lsEntries(OssPathUtil.convertPath(Paths.get(targetName).getParent().toString(), true)); + for (ChannelSftp.LsEntry lsEntry : lsEntries) { + if (lsEntry.getFilename().equals(name)) { + targetLsEntry = lsEntry; + break; + } + } + } else { + ossInfo = new FileOssInfo(); + List lsEntries = sftp.lsEntries(targetName); + if (!lsEntries.isEmpty()) { + targetLsEntry = lsEntries.get(0); + } + } + if (ObjectUtil.isNotEmpty(targetLsEntry)) { + SftpATTRS sftpattrs = targetLsEntry.getAttrs(); + if (!sftpattrs.isDir()) { + ossInfo = new FileOssInfo(); + } + ossInfo.setName(name); + ossInfo.setPath(path); + ossInfo.setLength(Convert.toStr(sftpattrs.getSize())); + ossInfo.setCreateTime(DateUtil.date(sftpattrs.getMTime() * 1000L).toString(DatePattern.NORM_DATETIME_PATTERN)); + ossInfo.setLastUpdateTime(DateUtil.date(sftpattrs.getATime() * 1000L).toString(DatePattern.NORM_DATETIME_PATTERN)); + } + return ossInfo; + } + + @SneakyThrows + public List listfile(String prefix) { + + List files = sftp.lsEntries(prefix); + List infos = new ArrayList<>(); + for (ChannelSftp.LsEntry file : files) { + OssInfo info = new OssInfo(); + info.setName(file.getFilename()); + info.setLength(DataSizeUtil.format(file.getAttrs().getSize())); + + String path = prefix + StrUtil.SLASH + file.getFilename(); + info.setPath(prefix + StrUtil.SLASH + file.getFilename()); + + if(isDirectory(path)) + info.setIsDir(true); + else + info.setIsDir(false); + + SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); + Date date = (Date) sdf.parse(file.getAttrs().getMtimeString()); + String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); + info.setCreateTime(formatStr); + infos.add(info); + } + return infos; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java new file mode 100644 index 0000000..dc47d5d --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java @@ -0,0 +1,76 @@ +package com.schisandra.oss.application.oss.core.sftp; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.hutool.extra.ssh.Sftp; +import com.schisandra.oss.application.convert.SchisandraOssSftpDTOConverter; +import com.schisandra.oss.application.dto.SchisandraOssSftpDTO; +import com.schisandra.oss.application.oss.core.StandardOssClient; +import com.schisandra.oss.application.oss.core.sftp.model.SftpOssConfig; +import com.schisandra.oss.common.entity.Result; +import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import com.schisandra.oss.domain.service.SchisandraOssSftpDomainService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.concurrent.CompletableFuture; + + + +@Component +@Slf4j +public class SftpOssConfiguration { + @Resource + SftpOssConfiguration sftpOssConfiguration; + + @Resource + private SchisandraOssSftpDomainService schisandraOssSftpDomainService; + + public static final String DEFAULT_BEAN_NAME = "sftpOssClient"; + + public SchisandraOssSftpDTO getSchisandraOssSftpDTO(String userId) { + CompletableFuture futurePrice = CompletableFuture.supplyAsync(() -> { + SchisandraOssSftpBO sftpBO = schisandraOssSftpDomainService.getSftpOssConfig(userId); + SchisandraOssSftpDTO sftpDTO = SchisandraOssSftpDTOConverter.INSTANCE.convertBOToDTO(sftpBO); + return sftpDTO; + }); + SchisandraOssSftpDTO sftp = futurePrice.join(); + if (ObjectUtil.isEmpty(sftp)) { + log.error("sftp配置信息获取失败"); + return null; + } + return sftp; + } + + + public Result sftpOssClient(String userId) { + try { + SchisandraOssSftpDTO sftp = sftpOssConfiguration.getSchisandraOssSftpDTO(userId); + if (sftp == null) return null; + SftpOssConfig sftpOssConfig = new SftpOssConfig(); + sftpOssConfig.setBasePath(sftp.getBasePath()); + sftpOssConfig.setHost(sftp.getHost()); + sftpOssConfig.setPort(sftp.getPort()); + sftpOssConfig.setPassword(sftp.getPassword()); + sftpOssConfig.setCharset(sftp.getCharset()); + sftpOssConfig.init(); + + SpringUtil.registerBean(userId, sftpOssClient(sftpOssConfig)); + return Result.ok(); + } catch (Exception e) { + log.error("SftpOssConfiguration.qiniuOssClient:{}", e.getMessage(), e); + return Result.fail(); + } + } + + + + public StandardOssClient sftpOssClient(SftpOssConfig sftpOssConfig) { + return new SftpOssClient(sftp(sftpOssConfig), sftpOssConfig); + } + + public Sftp sftp(SftpOssConfig sftpOssConfig) { + return new Sftp(sftpOssConfig.toFtpConfig()); + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssClientConfig.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssClientConfig.java new file mode 100644 index 0000000..1274978 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssClientConfig.java @@ -0,0 +1,31 @@ +package com.schisandra.oss.application.oss.core.sftp.model; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author 陈敏 + * @version SftpOssClientConfig.java, v 1.0 2022/5/9 0:27 chenmin Exp $ + * Created on 2022/5/9 + */ +@Data +@Accessors(chain = true) +public class SftpOssClientConfig { + /** + * 连接超时时长,单位毫秒 + */ + private long connectionTimeout; + /** + * Socket连接超时时长,单位毫秒 + */ + private long soTimeout; + /** + * 设置服务器语言 + */ + private String serverLanguageCode; + /** + * 设置服务器系统关键词 + */ + private String systemKey; + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssConfig.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssConfig.java new file mode 100644 index 0000000..5244f59 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/model/SftpOssConfig.java @@ -0,0 +1,57 @@ +package com.schisandra.oss.application.oss.core.sftp.model; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.extra.ftp.FtpConfig; + +import com.schisandra.oss.application.oss.utils.OssPathUtil; +import lombok.Data; + +import java.nio.charset.Charset; + +/** + * @author 陈敏 + * @version SftpOssConfig.java, v 1.1 2022/2/20 9:06 chenmin Exp $ + * Created on 2022/2/20 + */ +@Data +public class SftpOssConfig { + + private String basePath; + + /** + * 主机 + */ + private String host; + /** + * 端口 + */ + private int port; + /** + * 用户名 + */ + private String user; + /** + * 密码 + */ + private String password; + /** + * 编码 + */ + private String charset; + + private SftpOssClientConfig clientConfig; + + public void init() { + basePath = OssPathUtil.valid(basePath); + } + + public FtpConfig toFtpConfig() { + FtpConfig ftpConfig = new FtpConfig(); + BeanUtil.copyProperties(this, ftpConfig, + new CopyOptions().setIgnoreNullValue(true).setIgnoreProperties("basePath", "clientConfig")); + BeanUtil.copyProperties(this.getClientConfig(), ftpConfig, new CopyOptions().setIgnoreNullValue(true)); + return ftpConfig; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssSftpBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssSftpBO.java new file mode 100644 index 0000000..43b9ce9 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssSftpBO.java @@ -0,0 +1,127 @@ +package com.schisandra.oss.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +/** + * sftp存储配置表 bo + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Data +public class SchisandraOssSftpBO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * 主机 + */ + private String host; + + /** + * 端口 + */ + private Integer port; + + /** + * + */ + private String basePath; + + /** + * + */ + private String user; + + /** + * + */ + private String password; + + /** + * 编码 + */ + private String charset; + + /** + * 连接超时时长,单位毫秒 + */ + private Long connectionTimeout; + + /** + * Socket连接超时时长,单位毫秒 + */ + private Date soTimeout; + + /** + * 设置服务器语言 + */ + private String serverLanguageCode; + + /** + * 设置服务器系统关键词 + */ + private String systemKey; + + /** + * 分片大小,默认5MB + */ + private Integer partSize; + + /** + * 并发线程数,默认等于CPU的核数 + */ + private Integer taskNum; + + /** + * 状态 + */ + private String status; + + /** + * 是否开启高级设置 + */ + private String openAdvancedSetup; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 是否删除 0 未删除 1已删除 + */ + private Integer isDeleted; + + /** + * 额外字段 + */ + private String extraJson; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraOssSftpBOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraOssSftpBOConverter.java new file mode 100644 index 0000000..8686277 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraOssSftpBOConverter.java @@ -0,0 +1,22 @@ +package com.schisandra.oss.domain.convert; + +import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * sftp存储配置表 bo转换器 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Mapper +public interface SchisandraOssSftpBOConverter { + + SchisandraOssSftpBOConverter INSTANCE = Mappers.getMapper(SchisandraOssSftpBOConverter.class); + + SchisandraOssSftp convertBOToEntity(SchisandraOssSftpBO schisandraOssSftpBO); + SchisandraOssSftpBO convertEntityToBO(SchisandraOssSftp schisandraOssSftp); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java new file mode 100644 index 0000000..32a8837 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java @@ -0,0 +1,30 @@ +package com.schisandra.oss.domain.service; + +import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; +import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; + +/** + * sftp存储配置表 领域service + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +public interface SchisandraOssSftpDomainService { + + /** + * 添加 sftp存储配置表 信息 + */ + Boolean add(SchisandraOssSftpBO schisandraOssSftpBO); + + /** + * 更新 sftp存储配置表 信息 + */ + Boolean update(SchisandraOssSftpBO schisandraOssSftpBO); + + /** + * 删除 sftp存储配置表 信息 + */ + Boolean delete(SchisandraOssSftpBO schisandraOssSftpBO); + + SchisandraOssSftpBO getSftpOssConfig(String userId); +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java new file mode 100644 index 0000000..257b9f7 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java @@ -0,0 +1,58 @@ +package com.schisandra.oss.domain.service.impl; + +import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.bo.SchisandraOssFtpBO; +import com.schisandra.oss.domain.convert.SchisandraOssFtpBOConverter; +import com.schisandra.oss.domain.convert.SchisandraOssSftpBOConverter; +import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import com.schisandra.oss.domain.service.SchisandraOssSftpDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraOssFtp; +import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; +import com.schisandra.oss.infra.basic.service.SchisandraOssSftpService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * sftp存储配置表 领域service实现了 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Service +@Slf4j +public class SchisandraOssSftpDomainServiceImpl implements SchisandraOssSftpDomainService { + + @Resource + private SchisandraOssSftpService schisandraOssSftpService; + + @Override + public Boolean add(SchisandraOssSftpBO schisandraOssSftpBO) { + SchisandraOssSftp schisandraOssSftp = SchisandraOssSftpBOConverter.INSTANCE.convertBOToEntity(schisandraOssSftpBO); + schisandraOssSftp.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode()); + return schisandraOssSftpService.insert(schisandraOssSftp) > 0; + } + + @Override + public Boolean update(SchisandraOssSftpBO schisandraOssSftpBO) { + SchisandraOssSftp schisandraOssSftp = SchisandraOssSftpBOConverter.INSTANCE.convertBOToEntity(schisandraOssSftpBO); + return schisandraOssSftpService.update(schisandraOssSftp) > 0; + } + + @Override + public Boolean delete(SchisandraOssSftpBO schisandraOssSftpBO) { + SchisandraOssSftp schisandraOssSftp = new SchisandraOssSftp(); + schisandraOssSftp.setId(schisandraOssSftpBO.getId()); + schisandraOssSftp.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode()); + return schisandraOssSftpService.update(schisandraOssSftp) > 0; + } + + @Override + public SchisandraOssSftpBO getSftpOssConfig(String userId) { + SchisandraOssSftp schisandraOssSftp = schisandraOssSftpService.getSftpOssConfig(userId); + SchisandraOssSftpBO schisandraOssSftpBO = SchisandraOssSftpBOConverter.INSTANCE.convertEntityToBO(schisandraOssSftp); + return schisandraOssSftpBO; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraOssSftpDao.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraOssSftpDao.java new file mode 100644 index 0000000..5dc3ff5 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraOssSftpDao.java @@ -0,0 +1,17 @@ +package com.schisandra.oss.infra.basic.dao; + +import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; +import com.mybatisflex.core.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * sftp存储配置表 表数据库访问层 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Repository +public interface SchisandraOssSftpDao extends BaseMapper { + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssSftp.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssSftp.java new file mode 100644 index 0000000..077bb7a --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssSftp.java @@ -0,0 +1,155 @@ +package com.schisandra.oss.infra.basic.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * sftp存储配置表 实体类 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Data +@Table("schisandra_oss_sftp") +public class SchisandraOssSftp implements Serializable { + + /** + * + */ + @Id(value = "id", keyType = KeyType.Auto) + private Long id; + + /** + * + */ + @Column("user_id") + private Long userId; + + /** + * 主机 + */ + @Column("host") + private String host; + + /** + * 端口 + */ + @Column("port") + private Integer port; + + /** + * + */ + @Column("basePath") + private String basePath; + + /** + * + */ + @Column("user") + private String user; + + /** + * + */ + @Column("password") + private String password; + + /** + * 编码 + */ + @Column("charset") + private String charset; + + /** + * 连接超时时长,单位毫秒 + */ + @Column("connection_timeout") + private Long connectionTimeout; + + /** + * Socket连接超时时长,单位毫秒 + */ + @Column("so_timeout") + private Date soTimeout; + + /** + * 设置服务器语言 + */ + @Column("server_language_code") + private String serverLanguageCode; + + /** + * 设置服务器系统关键词 + */ + @Column("system_key") + private String systemKey; + + /** + * 分片大小,默认5MB + */ + @Column("part_size") + private Integer partSize; + + /** + * 并发线程数,默认等于CPU的核数 + */ + @Column("task_num") + private Integer taskNum; + + /** + * 状态 + */ + @Column("status") + private String status; + + /** + * 是否开启高级设置 + */ + @Column("open_advanced_setup") + private String openAdvancedSetup; + + /** + * 创建人 + */ + @Column("created_by") + private String createdBy; + + /** + * 创建时间 + */ + @Column("created_time") + private Date createdTime; + + /** + * 更新时间 + */ + @Column("update_time") + private Date updateTime; + + /** + * 更新人 + */ + @Column("update_by") + private String updateBy; + + /** + * 是否删除 0 未删除 1已删除 + */ + @Column("is_deleted") + private Integer isDeleted; + + /** + * 额外字段 + */ + @Column("extra_json") + private String extraJson; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java new file mode 100644 index 0000000..b49beb6 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java @@ -0,0 +1,47 @@ +package com.schisandra.oss.infra.basic.service; + +import com.schisandra.oss.infra.basic.entity.SchisandraOssFtp; +import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; + +/** + * sftp存储配置表 表服务接口 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +public interface SchisandraOssSftpService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraOssSftp queryById(Long id); + + /** + * 新增数据 + * + * @param schisandraOssSftp 实例对象 + * @return 实例对象 + */ + int insert(SchisandraOssSftp schisandraOssSftp); + + /** + * 修改数据 + * + * @param schisandraOssSftp 实例对象 + * @return 实例对象 + */ + int update(SchisandraOssSftp schisandraOssSftp); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + SchisandraOssSftp getSftpOssConfig(String userId); +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java new file mode 100644 index 0000000..54e7867 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java @@ -0,0 +1,73 @@ +package com.schisandra.oss.infra.basic.service.impl; + +import com.schisandra.oss.infra.basic.entity.SchisandraOssFtp; +import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; +import com.schisandra.oss.infra.basic.dao.SchisandraOssSftpDao; +import com.schisandra.oss.infra.basic.entity.table.SchisandraOssFtpTableDef; +import com.schisandra.oss.infra.basic.entity.table.SchisandraOssSftpTableDef; +import com.schisandra.oss.infra.basic.service.SchisandraOssSftpService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * sftp存储配置表 表服务实现类 + * + * @author landaiqing + * @since 2024-07-12 15:44:04 + */ +@Service("SchisandraOssSftpService") +public class SchisandraOssSftpServiceImpl implements SchisandraOssSftpService { + + @Resource + private SchisandraOssSftpDao schisandraOssSftpDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraOssSftp queryById(Long id) { + return this.schisandraOssSftpDao.selectOneById(id); + } + + /** + * 新增数据 + * + * @param schisandraOssSftp 实例对象 + * @return 实例对象 + */ + @Override + public int insert(SchisandraOssSftp schisandraOssSftp) { + return this.schisandraOssSftpDao.insertSelective(schisandraOssSftp); + } + + /** + * 修改数据 + * + * @param schisandraOssSftp 实例对象 + * @return 实例对象 + */ + @Override + public int update(SchisandraOssSftp schisandraOssSftp) { + return this.schisandraOssSftpDao.update(schisandraOssSftp,true); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.schisandraOssSftpDao.deleteById(id) > 0; + } + + @Override + public SchisandraOssSftp getSftpOssConfig(String userId) { + return schisandraOssSftpDao.selectOneByCondition(SchisandraOssSftpTableDef.SCHISANDRA_OSS_SFTP.USER_ID.eq(userId)); + } +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssSftpDao.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssSftpDao.xml new file mode 100644 index 0000000..700441d --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraOssSftpDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 6cf096219f476ab3945d6e042a65adf0ec47a8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Fri, 12 Jul 2024 22:31:28 +0800 Subject: [PATCH 8/9] =?UTF-8?q?feat:=20selectAll=EF=BC=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=89=80=E6=9C=89=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraOssAliController.java | 13 ++++++ .../SchisandraOssMinioController.java | 13 +++++- .../SchisandraOssQiniuController.java | 12 +++++ .../SchisandraOssSftpController.java | 10 +++++ .../SchisandraOssTencentController.java | 12 +++++ .../controller/SchisandraOssUpController.java | 14 ++++++ .../application/dto/SchisandraOssAliDTO.java | 4 ++ .../dto/SchisandraOssMinioDTO.java | 3 ++ .../dto/SchisandraOssQiniuDTO.java | 3 ++ .../application/dto/SchisandraOssSftpDTO.java | 3 ++ .../dto/SchisandraOssTencentDTO.java | 3 ++ .../application/dto/SchisandraOssUpDTO.java | 3 ++ .../oss/core/ali/AliOssConfiguration.java | 45 +++++-------------- .../oss/core/minio/MinioOssConfiguration.java | 15 +++++++ .../oss/core/qiniu/QiNiuOssConfiguration.java | 15 +++++++ .../oss/core/sftp/SftpOssConfiguration.java | 15 +++++++ .../core/tencent/TencentOssConfiguration.java | 14 ++++++ .../oss/core/up/UpOssConfiguration.java | 16 +++++++ .../oss/domain/bo/SchisandraOssTencentBO.java | 2 + .../SchisandraOssAliDomainService.java | 3 ++ .../SchisandraOssMinioDomainService.java | 3 ++ .../SchisandraOssQiniuDomainService.java | 4 ++ .../SchisandraOssSftpDomainService.java | 4 ++ .../SchisandraOssTencentDomainService.java | 4 ++ .../service/SchisandraOssUpDomainService.java | 4 ++ .../SchisandraOssAliDomainServiceImpl.java | 15 +++++++ .../SchisandraOssMinioDomainServiceImpl.java | 15 +++++++ .../SchisandraOssQiniuDomainServiceImpl.java | 15 +++++++ .../SchisandraOssSftpDomainServiceImpl.java | 15 +++++++ ...SchisandraOssTencentDomainServiceImpl.java | 16 ++++++- .../SchisandraOssUpDomainServiceImpl.java | 16 +++++++ .../basic/entity/SchisandraOssQiniu.java | 1 + .../basic/entity/SchisandraOssTencent.java | 3 ++ .../service/SchisandraOssAliService.java | 4 ++ .../service/SchisandraOssMinioService.java | 2 + .../service/SchisandraOssQiniuService.java | 5 +++ .../service/SchisandraOssSftpService.java | 4 ++ .../service/SchisandraOssTencentService.java | 3 ++ .../basic/service/SchisandraOssUpService.java | 4 ++ .../impl/SchisandraOssAliServiceImpl.java | 9 ++++ .../impl/SchisandraOssMinioServiceImpl.java | 5 +++ .../impl/SchisandraOssQiniuServiceImpl.java | 5 ++- .../impl/SchisandraOssSftpServiceImpl.java | 4 ++ .../impl/SchisandraOssTencentServiceImpl.java | 4 +- .../impl/SchisandraOssUpServiceImpl.java | 6 +++ 45 files changed, 350 insertions(+), 38 deletions(-) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java index 935bb34..2e802b1 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java @@ -16,6 +16,7 @@ import com.schisandra.oss.domain.bo.SchisandraOssAliBO; import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssAliDomainService; +import com.schisandra.oss.infra.basic.dao.SchisandraOssAliDao; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -28,6 +29,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; /** @@ -50,6 +52,17 @@ public class SchisandraOssAliController { @Resource RedisUtil redisUtil; + /** + * 返回ali表所有数据 + * @return + */ + @GetMapping("returnAll") + public List returnAll() { + return aliOssConfiguration.selectAll(); + } + + + @GetMapping("init") public void init(@RequestParam String userId){ if (log.isInfoEnabled()) { diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java index c9c3d03..9bf8bce 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java @@ -7,6 +7,7 @@ import com.amazonaws.util.IOUtils; import com.google.common.base.Preconditions; import com.google.gson.Gson; import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter; +import com.schisandra.oss.application.dto.SchisandraOssAliDTO; import com.schisandra.oss.application.dto.SchisandraOssMinioDTO; import com.schisandra.oss.application.oss.core.minio.MinioOssClient; import com.schisandra.oss.application.oss.core.minio.MinioOssConfiguration; @@ -55,6 +56,16 @@ public class SchisandraOssMinioController { RedisUtil redisUtil; + /** + * 返回minio表所有数据 + * @return + */ + @GetMapping("returnAll") + public List returnAll() { + return minioOssConfiguration.selectAll(); + } + + /** * @description: minio 初始化 * @param: [] @@ -234,7 +245,6 @@ public class SchisandraOssMinioController { } catch (Exception e) { return Result.fail(e.getMessage()); } - } /** * @description: 分享文件 @@ -301,6 +311,7 @@ public class SchisandraOssMinioController { bean.getMinioOssConfig().setBucketName(bucket); return Result.ok(bean.deleteBucket(bucket)); } + @PostMapping("get") public SchisandraOssMinioDTO getMinioOss(@RequestParam String userId) { return SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(schisandraOssMinioDomainService.getMinioConfig(Long.valueOf(userId))); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java index 9d311c2..2063c2f 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssQiniuDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssQiniuDTO; +import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssClient; import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssConfiguration; import com.schisandra.oss.application.oss.model.OssInfo; @@ -23,6 +24,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; /** * 七牛云对象存储配置表 controller @@ -43,6 +45,16 @@ public class SchisandraOssQiniuController { private final String USER_OSS_PREFIX = "oss:user:heat"; @Resource RedisUtil redisUtil; + + /** + * 返回七牛表所有数据 + * @return + */ + @GetMapping("returnAll") + public List returnAll() { + return qiNiuOssConfiguration.selectAll(); + } + /** * @description: 获取文件目录信息 * @param: [target, userId, dirName] diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java index aabeb0f..579d0b9 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssSftpController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssSftpDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssSftpDTO; +import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.core.ali.AliOssClient; import com.schisandra.oss.application.oss.core.ftp.FtpOssClient; import com.schisandra.oss.application.oss.core.ftp.FtpOssConfiguration; @@ -29,6 +30,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; /** * sftp存储配置表 controller @@ -51,6 +53,14 @@ public class SchisandraOssSftpController { @Resource RedisUtil redisUtil; + /** + * 返回up表所有数据 + * @return + */ + @GetMapping("returnAll") + public List returnAll() { + return sftpOssConfiguration.selectAll(); + } /** * @description: 拷贝文件 diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java index 5f6f406..470c7be 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java @@ -10,6 +10,7 @@ import com.qcloud.cos.model.DeleteObjectsResult; import com.schisandra.oss.application.convert.SchisandraOssTencentDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssTencentDTO; +import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.core.minio.MinioOssClient; import com.schisandra.oss.application.oss.core.tencent.TencentOssClient; import com.schisandra.oss.application.oss.core.tencent.TencentOssConfiguration; @@ -49,6 +50,17 @@ public class SchisandraOssTencentController { private final String USER_OSS_PREFIX = "oss:user:heat"; @Resource RedisUtil redisUtil; + + /** + * 返回tencent表所有数据 + * @return + */ + @GetMapping("returnAll") + public List returnAll() { + return tencentOssConfiguration.selectAll(); + } + + @PostMapping("init") public void initTencent(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssUpController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssUpController.java index 4416115..17ee3a4 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssUpController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssUpController.java @@ -4,15 +4,18 @@ import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssUpDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssUpDTO; +import com.schisandra.oss.application.oss.core.up.UpOssConfiguration; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.service.SchisandraOssUpDomainService; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * 又拍云对象存储配置表 controller @@ -27,6 +30,17 @@ public class SchisandraOssUpController { @Resource private SchisandraOssUpDomainService schisandraOssUpDomainService; + @Resource + private UpOssConfiguration upOssConfiguration; + + /** + * 返回up表所有数据 + * @return + */ + @GetMapping("returnAll") + public List returnAll() { + return upOssConfiguration.selectAll(); + } /** * 新增又拍云对象存储配置表 diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssAliDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssAliDTO.java index c178ec0..dd3ae68 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssAliDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssAliDTO.java @@ -1,5 +1,6 @@ package com.schisandra.oss.application.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -234,11 +235,14 @@ public class SchisandraOssAliDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; /** * 更新时间 */ + + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssMinioDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssMinioDTO.java index e651b75..f807009 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssMinioDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssMinioDTO.java @@ -1,5 +1,6 @@ package com.schisandra.oss.application.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -157,11 +158,13 @@ public class SchisandraOssMinioDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; /** * 更新时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java index b99c743..d5b09f8 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssQiniuDTO.java @@ -1,5 +1,6 @@ package com.schisandra.oss.application.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -137,11 +138,13 @@ public class SchisandraOssQiniuDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; /** * 更新时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java index 2b2922f..8d916c3 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssSftpDTO.java @@ -1,5 +1,6 @@ package com.schisandra.oss.application.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -102,11 +103,13 @@ public class SchisandraOssSftpDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; /** * 更新时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssTencentDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssTencentDTO.java index 85b277a..1830d3a 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssTencentDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssTencentDTO.java @@ -1,5 +1,6 @@ package com.schisandra.oss.application.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -152,11 +153,13 @@ public class SchisandraOssTencentDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; /** * 更新时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssUpDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssUpDTO.java index 823466e..18d17e4 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssUpDTO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraOssUpDTO.java @@ -1,5 +1,6 @@ package com.schisandra.oss.application.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -82,11 +83,13 @@ public class SchisandraOssUpDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; /** * 更新时间 */ + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java index c160121..25a5f86 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssConfiguration.java @@ -16,7 +16,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -32,6 +33,16 @@ public class AliOssConfiguration { @Resource SchisandraOssAliDomainService schisandraOssAliDomainService; + public List selectAll(){ + List schisandraOssAliBO_list = schisandraOssAliDomainService.selectAll(); + List schisandraOssAliDTO_list = new ArrayList<>(); + for (SchisandraOssAliBO schisandraOssAliBO : schisandraOssAliBO_list ){ + SchisandraOssAliDTO schisandraOssAliDTO = SchisandraOssAliDTOConverter.INSTANCE.convertBOToDTO(schisandraOssAliBO); + schisandraOssAliDTO_list.add(schisandraOssAliDTO); + } + return schisandraOssAliDTO_list; + } + public StandardOssClient aliOssClient(String userId) { CompletableFuture futurePrice = CompletableFuture.supplyAsync(() -> { SchisandraOssAliBO schisandraOssAliBO = schisandraOssAliDomainService.getAliOssConfig(Long.valueOf(userId)); @@ -49,33 +60,6 @@ public class AliOssConfiguration { aliOssConfig.setAccessKeySecret(ali.getAccessKeySecret()); aliOssConfig.setBasePath(ali.getBasePath()); - -// if (Boolean.parseBoolean(ali.getOpenAdvancedSetup())) { -// AliOssClientConfig aliOssClientConfig = new AliOssClientConfig(); -// aliOssClientConfig.setCnameExcludeList(Arrays.asList(Optional.ofNullable(ali.getCnameExcludeList()).orElse("").split(","))); -// aliOssClientConfig.setConnectionTimeout(ali.getConnectionTimeout()); -// aliOssClientConfig.setConnectionTTL(ali.getConnectionTTL()); -// aliOssClientConfig.setProtocol(Protocol.valueOf(ali.getProtocol())); -// aliOssClientConfig.setConnectionRequestTimeout(ali.getConnectionRequestTimeout()); -// aliOssClientConfig.setMaxConnections(ali.getMaxConnections()); -// aliOssClientConfig.setProxyPort(Integer.parseInt(ali.getProxyPort())); -// aliOssClientConfig.setProxyDomain(ali.getProxyDomain()); -// aliOssClientConfig.setCrcCheckEnabled(Boolean.parseBoolean(ali.getCrcCheckEnabled())); -// aliOssClientConfig.setTickOffset(ali.getTickOffset()); -// aliOssClientConfig.setProxyHost(ali.getProxyHost()); -// aliOssClientConfig.setProxyPassword(ali.getProxyPassword()); -// aliOssClientConfig.setProxyUsername(ali.getProxyUsername()); -// aliOssClientConfig.setVerifySSLEnable(Boolean.parseBoolean(ali.getVerifySSLEnable())); -// aliOssClientConfig.setUseSystemPropertyValues(Boolean.parseBoolean(ali.getUseSystemPropertyValues())); -// aliOssClientConfig.setUseReaper(Boolean.parseBoolean(ali.getUseReaper())); -// aliOssClientConfig.setSupportCname(Boolean.parseBoolean(ali.getSupportCname())); -// aliOssClientConfig.setSocketTimeout(ali.getSocketTimeout()); -// aliOssClientConfig.setSldEnabled(Boolean.parseBoolean(ali.getSldEnabled())); -// aliOssClientConfig.setProxyWorkstation(ali.getProxyWorkstation()); -// aliOssClientConfig.setIdleConnectionTime(ali.getIdleConnectionTime()); -// aliOssClientConfig.setLogConnectionPoolStats(Boolean.parseBoolean(ali.getLogConnectionPoolStats())); -// aliOssConfig.setClientConfig(aliOssClientConfig); -// } SpringUtil.registerBean(userId, aliOssClient(aliOssConfig)); return aliOssClient(aliOssConfig); } @@ -84,11 +68,6 @@ public class AliOssConfiguration { return new AliOssClient(ossClient(aliOssConfig), aliOssConfig); } -// public OSS ossClient(AliOssConfig aliOssConfig) { -// return new OSSClientBuilder().build(aliOssConfig.getEndpoint(), -// aliOssConfig.getAccessKeyId(), -// aliOssConfig.getAccessKeySecret()); -// } public OSS ossClient(AliOssConfig aliOssConfig) { String securityToken = aliOssConfig.getSecurityToken(); AliOssClientConfig clientConfiguration = aliOssConfig.getClientConfig(); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssConfiguration.java index 7d276a7..6c763c1 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssConfiguration.java @@ -2,12 +2,15 @@ package com.schisandra.oss.application.oss.core.minio; import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; +import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter; import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter; +import com.schisandra.oss.application.dto.SchisandraOssAliDTO; import com.schisandra.oss.application.dto.SchisandraOssMinioDTO; import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.minio.model.MinioOssClientConfig; import com.schisandra.oss.application.oss.core.minio.model.MinioOssConfig; import com.schisandra.oss.common.entity.Result; +import com.schisandra.oss.domain.bo.SchisandraOssAliBO; import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService; import io.minio.MinioClient; @@ -16,6 +19,8 @@ import okhttp3.OkHttpClient; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; @@ -34,6 +39,16 @@ public class MinioOssConfiguration { @Resource private SchisandraOssMinioDomainService schisandraOssMinioDomainService; + public List selectAll(){ + List schisandraOssMinioBO_list = schisandraOssMinioDomainService.selectAll(); + List schisandraOssAliDTO_list = new ArrayList<>(); + for (SchisandraOssMinioBO schisandraOssMinioBO : schisandraOssMinioBO_list ){ + SchisandraOssMinioDTO schisandraOssMinioDTO = SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(schisandraOssMinioBO); + schisandraOssAliDTO_list.add(schisandraOssMinioDTO); + } + return schisandraOssAliDTO_list; + } + public Result minioOssClient(String userId) { try { SchisandraOssMinioDTO minio = minioOssConfiguration.getSchisandraOssMinioDTO(userId); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java index 6ff7c26..c070e07 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssConfiguration.java @@ -8,18 +8,23 @@ import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.util.Auth; import com.schisandra.oss.application.convert.SchisandraOssQiniuDTOConverter; +import com.schisandra.oss.application.convert.SchisandraOssUpDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssQiniuDTO; +import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.qiniu.model.QiNiuOssClientConfig; import com.schisandra.oss.application.oss.core.qiniu.model.QiNiuOssConfig; import com.schisandra.oss.application.oss.model.SliceConfig; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; +import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -40,6 +45,16 @@ public class QiNiuOssConfiguration { @Resource private SchisandraOssQiniuDomainService schisandraOssQiniuDomainService; + public List selectAll(){ + List schisandraOssQiniuBO_list = schisandraOssQiniuDomainService.selectAll(); + List schisandraOssQiniuDTO_list = new ArrayList<>(); + for (SchisandraOssQiniuBO schisandraOssQiniuBO : schisandraOssQiniuBO_list ){ + SchisandraOssQiniuDTO schisandraOssQiniuDTO = SchisandraOssQiniuDTOConverter.INSTANCE.convertBOToDTO(schisandraOssQiniuBO); + schisandraOssQiniuDTO_list.add(schisandraOssQiniuDTO); + } + return schisandraOssQiniuDTO_list; + } + public SchisandraOssQiniuDTO getSchisandraOssQiNDTO(String userId) { CompletableFuture futurePrice = CompletableFuture.supplyAsync(() -> { diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java index dc47d5d..ae7b1ea 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/sftp/SftpOssConfiguration.java @@ -3,16 +3,21 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.ssh.Sftp; import com.schisandra.oss.application.convert.SchisandraOssSftpDTOConverter; +import com.schisandra.oss.application.convert.SchisandraOssUpDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssSftpDTO; +import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.sftp.model.SftpOssConfig; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.service.SchisandraOssSftpDomainService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.CompletableFuture; @@ -28,6 +33,16 @@ public class SftpOssConfiguration { public static final String DEFAULT_BEAN_NAME = "sftpOssClient"; + public List selectAll(){ + List schisandraOssSftpBO_list = schisandraOssSftpDomainService.selectAll(); + List schisandraOssSdtpDTO_list = new ArrayList<>(); + for (SchisandraOssSftpBO shisandraOssSftpBO : schisandraOssSftpBO_list ){ + SchisandraOssSftpDTO schisandraOssSftpDTO = SchisandraOssSftpDTOConverter.INSTANCE.convertBOToDTO(shisandraOssSftpBO); + schisandraOssSdtpDTO_list.add(schisandraOssSftpDTO); + } + return schisandraOssSdtpDTO_list; + } + public SchisandraOssSftpDTO getSchisandraOssSftpDTO(String userId) { CompletableFuture futurePrice = CompletableFuture.supplyAsync(() -> { SchisandraOssSftpBO sftpBO = schisandraOssSftpDomainService.getSftpOssConfig(userId); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssConfiguration.java index 1cd46d6..560544d 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssConfiguration.java @@ -11,18 +11,23 @@ import com.qcloud.cos.auth.COSCredentials; import com.qcloud.cos.http.HttpProtocol; import com.qcloud.cos.region.Region; import com.schisandra.oss.application.convert.SchisandraOssTencentDTOConverter; +import com.schisandra.oss.application.convert.SchisandraOssUpDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssTencentDTO; +import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.tencent.model.TencentOssClientConfig; import com.schisandra.oss.application.oss.core.tencent.model.TencentOssConfig; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssTencentBO; +import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.service.SchisandraOssTencentDomainService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import static com.tencentcloudapi.common.profile.Region.Chengdu; @@ -41,6 +46,15 @@ public class TencentOssConfiguration { @Resource private SchisandraOssTencentDomainService schisandraOssTencentDomainService; + public List selectAll(){ + List schisandraOssTencentBO_list = schisandraOssTencentDomainService.selectAll(); + List schisandraOssTencentDTO_list = new ArrayList<>(); + for (SchisandraOssTencentBO schisandraOssTencentBO : schisandraOssTencentBO_list ){ + SchisandraOssTencentDTO schisandraOssTencentDTO = SchisandraOssTencentDTOConverter.INSTANCE.convertBOToDTO(schisandraOssTencentBO); + schisandraOssTencentDTO_list.add(schisandraOssTencentDTO); + } + return schisandraOssTencentDTO_list; + } public Result tencentOssClient(String userId) { SchisandraOssTencentBO schisandraOssTencentBO = schisandraOssTencentDomainService.getTencentOssConfig(userId); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/up/UpOssConfiguration.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/up/UpOssConfiguration.java index 82da424..585898a 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/up/UpOssConfiguration.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/up/UpOssConfiguration.java @@ -3,8 +3,10 @@ package com.schisandra.oss.application.oss.core.up; import cn.hutool.core.text.CharPool; import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; +import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter; import com.schisandra.oss.application.convert.SchisandraOssUcloudDTOConverter; import com.schisandra.oss.application.convert.SchisandraOssUpDTOConverter; +import com.schisandra.oss.application.dto.SchisandraOssAliDTO; import com.schisandra.oss.application.dto.SchisandraOssUcloudDTO; import com.schisandra.oss.application.dto.SchisandraOssUpDTO; import com.schisandra.oss.application.oss.constant.OssConstant; @@ -12,6 +14,7 @@ import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.up.model.UpOssClientConfig; import com.schisandra.oss.application.oss.core.up.model.UpOssConfig; import com.schisandra.oss.application.oss.model.SliceConfig; +import com.schisandra.oss.domain.bo.SchisandraOssAliBO; import com.schisandra.oss.domain.bo.SchisandraOssUcloudBO; import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.service.SchisandraOssUcloudDomainService; @@ -29,6 +32,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -48,6 +53,17 @@ public class UpOssConfiguration { @Resource private SchisandraOssUpDomainService schisandraOssUpDomainService; + public List selectAll(){ + List schisandraOssUpBO_list = schisandraOssUpDomainService.selectAll(); + List schisandraOssUpDTO_list = new ArrayList<>(); + for (SchisandraOssUpBO schisandraOssUpBO : schisandraOssUpBO_list ){ + SchisandraOssUpDTO schisandraOssUpDTO = SchisandraOssUpDTOConverter.INSTANCE.convertBOToDTO(schisandraOssUpBO); + schisandraOssUpDTO_list.add(schisandraOssUpDTO); + } + return schisandraOssUpDTO_list; + } + + public StandardOssClient upOssClient(String userId) { SchisandraOssUpBO schisandraOssUpBO = schisandraOssUpDomainService.getUpOssConfig(userId); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssTencentBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssTencentBO.java index 2d01d0c..08d04ec 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssTencentBO.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraOssTencentBO.java @@ -44,6 +44,8 @@ public class SchisandraOssTencentBO implements Serializable { */ private String secretKey; + private String appId; + /** * 地域 */ diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssAliDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssAliDomainService.java index 41ccef5..020df53 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssAliDomainService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssAliDomainService.java @@ -2,6 +2,7 @@ package com.schisandra.oss.domain.service; import com.schisandra.oss.domain.bo.SchisandraOssAliBO; +import java.util.List; /** @@ -28,4 +29,6 @@ public interface SchisandraOssAliDomainService { Boolean delete(SchisandraOssAliBO schisandraOssAliBO); SchisandraOssAliBO getAliOssConfig(Long userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssMinioDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssMinioDomainService.java index 3ac89d3..c726cc5 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssMinioDomainService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssMinioDomainService.java @@ -1,5 +1,6 @@ package com.schisandra.oss.domain.service; +import com.schisandra.oss.domain.bo.SchisandraOssAliBO; import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; import java.util.List; @@ -31,4 +32,6 @@ public interface SchisandraOssMinioDomainService { SchisandraOssMinioBO getMinioConfig(Long userId); List getAllMinioInfo(); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssQiniuDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssQiniuDomainService.java index 2eea10a..f4613e6 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssQiniuDomainService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssQiniuDomainService.java @@ -2,6 +2,8 @@ package com.schisandra.oss.domain.service; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; +import java.util.List; + /** * 七牛云对象存储配置表 领域service * @@ -32,4 +34,6 @@ public interface SchisandraOssQiniuDomainService { * @date: 2024/6/25 14:34 */ SchisandraOssQiniuBO getQiniuOssConfig(String userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java index 32a8837..d81d9eb 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssSftpDomainService.java @@ -3,6 +3,8 @@ package com.schisandra.oss.domain.service; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import java.util.List; + /** * sftp存储配置表 领域service * @@ -27,4 +29,6 @@ public interface SchisandraOssSftpDomainService { Boolean delete(SchisandraOssSftpBO schisandraOssSftpBO); SchisandraOssSftpBO getSftpOssConfig(String userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssTencentDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssTencentDomainService.java index c872c52..1b74b34 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssTencentDomainService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssTencentDomainService.java @@ -2,6 +2,8 @@ package com.schisandra.oss.domain.service; import com.schisandra.oss.domain.bo.SchisandraOssTencentBO; +import java.util.List; + /** * 腾讯云对象存储配置表 领域service * @@ -32,4 +34,6 @@ public interface SchisandraOssTencentDomainService { * @date: 2024/6/25 14:34 */ SchisandraOssTencentBO getTencentOssConfig(String id); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssUpDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssUpDomainService.java index 0cab08d..7dd0b4b 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssUpDomainService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraOssUpDomainService.java @@ -2,6 +2,8 @@ package com.schisandra.oss.domain.service; import com.schisandra.oss.domain.bo.SchisandraOssUpBO; +import java.util.List; + /** * 又拍云对象存储配置表 领域service * @@ -26,4 +28,6 @@ public interface SchisandraOssUpDomainService { Boolean delete(SchisandraOssUpBO schisandraOssUpBO); SchisandraOssUpBO getUpOssConfig(String userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssAliDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssAliDomainServiceImpl.java index 56019a1..f9cdfa3 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssAliDomainServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssAliDomainServiceImpl.java @@ -8,9 +8,12 @@ import com.schisandra.oss.domain.service.SchisandraOssAliDomainService; import com.schisandra.oss.infra.basic.entity.SchisandraOssAli; import com.schisandra.oss.infra.basic.service.SchisandraOssAliService; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * 领域service实现了 @@ -53,4 +56,16 @@ public class SchisandraOssAliDomainServiceImpl implements SchisandraOssAliDomain return schisandraOssAliBO; } + + @Override + public List selectAll(){ + List list = schisandraOssAliService.selectAll(); + List schisandraOssAliBO_list = new ArrayList<>(); + for (SchisandraOssAli schisandraOssAli : list) { + SchisandraOssAliBO schisandraOssAliBO = SchisandraOssAliBOConverter.INSTANCE.convertEntityToBO(schisandraOssAli); + schisandraOssAliBO_list.add(schisandraOssAliBO); + } + return schisandraOssAliBO_list; + } + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssMinioDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssMinioDomainServiceImpl.java index 387fda2..0f6c057 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssMinioDomainServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssMinioDomainServiceImpl.java @@ -2,15 +2,19 @@ package com.schisandra.oss.domain.service.impl; import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.bo.SchisandraOssAliBO; import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; +import com.schisandra.oss.domain.convert.SchisandraOssAliBOConverter; import com.schisandra.oss.domain.convert.SchisandraOssMinioBOConverter; import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraOssAli; import com.schisandra.oss.infra.basic.entity.SchisandraOssMinio; import com.schisandra.oss.infra.basic.service.SchisandraOssMinioService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -61,4 +65,15 @@ public class SchisandraOssMinioDomainServiceImpl implements SchisandraOssMinioDo return schisandraOssMinioBOS; } + @Override + public List selectAll(){ + List list = schisandraOssMinioService.selectAll(); + List schisandraOssMinioBO_list = new ArrayList<>(); + for (SchisandraOssMinio schisandraOssMinio : list) { + SchisandraOssMinioBO schisandraOssMinioBO = SchisandraOssMinioBOConverter.INSTANCE.convertEntityToBO(schisandraOssMinio); + schisandraOssMinioBO_list.add(schisandraOssMinioBO); + } + return schisandraOssMinioBO_list; + } + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssQiniuDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssQiniuDomainServiceImpl.java index 2102c2a..48c07c5 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssQiniuDomainServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssQiniuDomainServiceImpl.java @@ -2,17 +2,22 @@ package com.schisandra.oss.domain.service.impl; import com.schisandra.oss.common.enums.IsDeletedFlagEnum; import com.schisandra.oss.domain.bo.SchisandraOssJdBO; +import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.convert.SchisandraOssJdBOConverter; import com.schisandra.oss.domain.convert.SchisandraOssQiniuBOConverter; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; +import com.schisandra.oss.domain.convert.SchisandraOssUpBOConverter; import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService; import com.schisandra.oss.infra.basic.entity.SchisandraOssJd; import com.schisandra.oss.infra.basic.entity.SchisandraOssQiniu; +import com.schisandra.oss.infra.basic.entity.SchisandraOssUp; import com.schisandra.oss.infra.basic.service.SchisandraOssQiniuService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * 七牛云对象存储配置表 领域service实现了 @@ -55,4 +60,14 @@ public class SchisandraOssQiniuDomainServiceImpl implements SchisandraOssQiniuDo return schisandraOssQiniuBO; } + @Override + public List selectAll(){ + List list = schisandraOssQiniuService.selectAll(); + List SchisandraOssQiniuBO_list = new ArrayList<>(); + for (SchisandraOssQiniu schisandraOssQiniu : list) { + SchisandraOssQiniuBO schisandraOssQiniuBO = SchisandraOssQiniuBOConverter.INSTANCE.convertEntityToBO(schisandraOssQiniu); + SchisandraOssQiniuBO_list.add(schisandraOssQiniuBO); + } + return SchisandraOssQiniuBO_list; + } } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java index 257b9f7..e443eb2 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssSftpDomainServiceImpl.java @@ -2,17 +2,22 @@ package com.schisandra.oss.domain.service.impl; import com.schisandra.oss.common.enums.IsDeletedFlagEnum; import com.schisandra.oss.domain.bo.SchisandraOssFtpBO; +import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.convert.SchisandraOssFtpBOConverter; import com.schisandra.oss.domain.convert.SchisandraOssSftpBOConverter; import com.schisandra.oss.domain.bo.SchisandraOssSftpBO; +import com.schisandra.oss.domain.convert.SchisandraOssUpBOConverter; import com.schisandra.oss.domain.service.SchisandraOssSftpDomainService; import com.schisandra.oss.infra.basic.entity.SchisandraOssFtp; import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; +import com.schisandra.oss.infra.basic.entity.SchisandraOssUp; import com.schisandra.oss.infra.basic.service.SchisandraOssSftpService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * sftp存储配置表 领域service实现了 @@ -55,4 +60,14 @@ public class SchisandraOssSftpDomainServiceImpl implements SchisandraOssSftpDoma return schisandraOssSftpBO; } + @Override + public List selectAll(){ + List list = schisandraOssSftpService.selectAll(); + List SchisandraOssSftpBO_list = new ArrayList<>(); + for (SchisandraOssSftp schisandraOssSftp : list) { + SchisandraOssSftpBO schisandraOssSftpBO = SchisandraOssSftpBOConverter.INSTANCE.convertEntityToBO(schisandraOssSftp); + SchisandraOssSftpBO_list.add(schisandraOssSftpBO); + } + return SchisandraOssSftpBO_list; + } } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssTencentDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssTencentDomainServiceImpl.java index 7a85e7f..7bdc894 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssTencentDomainServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssTencentDomainServiceImpl.java @@ -2,17 +2,22 @@ package com.schisandra.oss.domain.service.impl; import com.schisandra.oss.common.enums.IsDeletedFlagEnum; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; +import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.convert.SchisandraOssQiniuBOConverter; import com.schisandra.oss.domain.convert.SchisandraOssTencentBOConverter; import com.schisandra.oss.domain.bo.SchisandraOssTencentBO; +import com.schisandra.oss.domain.convert.SchisandraOssUpBOConverter; import com.schisandra.oss.domain.service.SchisandraOssTencentDomainService; import com.schisandra.oss.infra.basic.entity.SchisandraOssQiniu; import com.schisandra.oss.infra.basic.entity.SchisandraOssTencent; +import com.schisandra.oss.infra.basic.entity.SchisandraOssUp; import com.schisandra.oss.infra.basic.service.SchisandraOssTencentService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * 腾讯云对象存储配置表 领域service实现了 @@ -55,5 +60,14 @@ public class SchisandraOssTencentDomainServiceImpl implements SchisandraOssTence return schisandraOssTencentBO; } - + @Override + public List selectAll(){ + List list = schisandraOssTencentService.selectAll(); + List SchisandraOssTencentBO_list = new ArrayList<>(); + for (SchisandraOssTencent schisandraOssTencent : list) { + SchisandraOssTencentBO schisandraOssUpBO = SchisandraOssTencentBOConverter.INSTANCE.convertEntityToBO(schisandraOssTencent); + SchisandraOssTencentBO_list.add(schisandraOssUpBO); + } + return SchisandraOssTencentBO_list; + } } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssUpDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssUpDomainServiceImpl.java index 66b4849..0df2605 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssUpDomainServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraOssUpDomainServiceImpl.java @@ -1,15 +1,20 @@ package com.schisandra.oss.domain.service.impl; import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; +import com.schisandra.oss.domain.convert.SchisandraOssMinioBOConverter; import com.schisandra.oss.domain.convert.SchisandraOssUpBOConverter; import com.schisandra.oss.domain.bo.SchisandraOssUpBO; import com.schisandra.oss.domain.service.SchisandraOssUpDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraOssMinio; import com.schisandra.oss.infra.basic.entity.SchisandraOssUp; import com.schisandra.oss.infra.basic.service.SchisandraOssUpService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * 又拍云对象存储配置表 领域service实现了 @@ -51,4 +56,15 @@ public class SchisandraOssUpDomainServiceImpl implements SchisandraOssUpDomainSe return SchisandraOssUpBOConverter.INSTANCE.convertEntityToBO(schisandraOssUp); } + @Override + public List selectAll(){ + List list = schisandraOssUpService.selectAll(); + List SchisandraOssUpBO_list = new ArrayList<>(); + for (SchisandraOssUp schisandraOssUp : list) { + SchisandraOssUpBO schisandraOssUpBO = SchisandraOssUpBOConverter.INSTANCE.convertEntityToBO(schisandraOssUp); + SchisandraOssUpBO_list.add(schisandraOssUpBO); + } + return SchisandraOssUpBO_list; + } + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssQiniu.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssQiniu.java index 87d8612..b80131a 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssQiniu.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssQiniu.java @@ -1,5 +1,6 @@ package com.schisandra.oss.infra.basic.entity; +import com.fasterxml.jackson.annotation.JsonFormat; import com.mybatisflex.annotation.Column; import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.KeyType; diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssTencent.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssTencent.java index 709ecaf..4429477 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssTencent.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraOssTencent.java @@ -59,6 +59,9 @@ public class SchisandraOssTencent implements Serializable { /** * 地域 */ + @Column("app_id") + private String appId; + @Column("region") private String region; diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssAliService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssAliService.java index ffa5259..131222f 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssAliService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssAliService.java @@ -2,6 +2,8 @@ package com.schisandra.oss.infra.basic.service; import com.schisandra.oss.infra.basic.entity.SchisandraOssAli; +import java.util.List; + /** * 表服务接口 @@ -45,4 +47,6 @@ public interface SchisandraOssAliService { SchisandraOssAli getAliOssConfig(Long userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssMinioService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssMinioService.java index d38aa14..c839a8a 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssMinioService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssMinioService.java @@ -50,4 +50,6 @@ public interface SchisandraOssMinioService { SchisandraOssMinio getMinioConfig(Long userId); List getAllMinioInfo(); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssQiniuService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssQiniuService.java index a3f48a4..2ab6684 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssQiniuService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssQiniuService.java @@ -1,6 +1,9 @@ package com.schisandra.oss.infra.basic.service; import com.schisandra.oss.infra.basic.entity.SchisandraOssQiniu; +import com.schisandra.oss.infra.basic.entity.SchisandraOssTencent; + +import java.util.List; /** * 七牛云对象存储配置表 表服务接口 @@ -51,4 +54,6 @@ public interface SchisandraOssQiniuService { */ SchisandraOssQiniu getQiniuOssConfig(String userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java index b49beb6..7f35630 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssSftpService.java @@ -3,6 +3,8 @@ package com.schisandra.oss.infra.basic.service; import com.schisandra.oss.infra.basic.entity.SchisandraOssFtp; import com.schisandra.oss.infra.basic.entity.SchisandraOssSftp; +import java.util.List; + /** * sftp存储配置表 表服务接口 * @@ -44,4 +46,6 @@ public interface SchisandraOssSftpService { boolean deleteById(Long id); SchisandraOssSftp getSftpOssConfig(String userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssTencentService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssTencentService.java index 587478b..1b68f1f 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssTencentService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssTencentService.java @@ -2,6 +2,8 @@ package com.schisandra.oss.infra.basic.service; import com.schisandra.oss.infra.basic.entity.SchisandraOssTencent; +import java.util.List; + /** * 腾讯云对象存储配置表 表服务接口 * @@ -51,4 +53,5 @@ public interface SchisandraOssTencentService { */ SchisandraOssTencent getTencentOssConfig(String userId); + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssUpService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssUpService.java index 5faa88f..19b3ce7 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssUpService.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraOssUpService.java @@ -2,6 +2,8 @@ package com.schisandra.oss.infra.basic.service; import com.schisandra.oss.infra.basic.entity.SchisandraOssUp; +import java.util.List; + /** * 又拍云对象存储配置表 表服务接口 * @@ -43,4 +45,6 @@ public interface SchisandraOssUpService { boolean deleteById(Long id); SchisandraOssUp getUpOssConfig(String userId); + + List selectAll(); } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssAliServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssAliServiceImpl.java index d6deeb6..134b9f4 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssAliServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssAliServiceImpl.java @@ -7,6 +7,7 @@ import com.schisandra.oss.infra.basic.service.SchisandraOssAliService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; /** * 表服务实现类 @@ -20,6 +21,14 @@ public class SchisandraOssAliServiceImpl implements SchisandraOssAliService { @Resource private SchisandraOssAliDao schisandraOssAliDao; + /** + * 获取数据库所有数据 + * @return + */ + @Override + public List selectAll(){return schisandraOssAliDao.selectAll();} + + /** * 通过ID查询单条数据 * diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssMinioServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssMinioServiceImpl.java index a3dc769..b721ba8 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssMinioServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssMinioServiceImpl.java @@ -9,6 +9,8 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -82,4 +84,7 @@ public class SchisandraOssMinioServiceImpl implements SchisandraOssMinioService return schisandraOssMinioDao.selectAll(); } + + @Override + public List selectAll(){return schisandraOssMinioDao.selectAll();} } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssQiniuServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssQiniuServiceImpl.java index 6017910..2014e4a 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssQiniuServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssQiniuServiceImpl.java @@ -7,6 +7,7 @@ import com.schisandra.oss.infra.basic.service.SchisandraOssQiniuService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; /** * 七牛云对象存储配置表 表服务实现类 @@ -67,8 +68,8 @@ public class SchisandraOssQiniuServiceImpl implements SchisandraOssQiniuService @Override public SchisandraOssQiniu getQiniuOssConfig(String userId) { return schisandraOssQiniuDao.selectOneByCondition(SchisandraOssQiniuTableDef.SCHISANDRA_OSS_QINIU.USER_ID.eq(userId)); - } - + @Override + public List selectAll() {return this.schisandraOssQiniuDao.selectAll();} } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java index 54e7867..e0912a0 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssSftpServiceImpl.java @@ -9,6 +9,7 @@ import com.schisandra.oss.infra.basic.service.SchisandraOssSftpService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; /** * sftp存储配置表 表服务实现类 @@ -70,4 +71,7 @@ public class SchisandraOssSftpServiceImpl implements SchisandraOssSftpService { public SchisandraOssSftp getSftpOssConfig(String userId) { return schisandraOssSftpDao.selectOneByCondition(SchisandraOssSftpTableDef.SCHISANDRA_OSS_SFTP.USER_ID.eq(userId)); } + + @Override + public List selectAll() {return schisandraOssSftpDao.selectAll();} } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssTencentServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssTencentServiceImpl.java index 411314f..f365216 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssTencentServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssTencentServiceImpl.java @@ -8,6 +8,7 @@ import com.schisandra.oss.infra.basic.service.SchisandraOssTencentService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; /** * 腾讯云对象存储配置表 表服务实现类 @@ -70,5 +71,6 @@ public class SchisandraOssTencentServiceImpl implements SchisandraOssTencentServ return schisandraOssTencentDao.selectOneByCondition(SchisandraOssTencentTableDef.SCHISANDRA_OSS_TENCENT.USER_ID.eq(userId)); } - + @Override + public List selectAll(){return this.schisandraOssTencentDao.selectAll();} } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssUpServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssUpServiceImpl.java index 4006264..bd11705 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssUpServiceImpl.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraOssUpServiceImpl.java @@ -7,6 +7,8 @@ import com.schisandra.oss.infra.basic.service.SchisandraOssUpService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; /** * 又拍云对象存储配置表 表服务实现类 @@ -72,4 +74,8 @@ public class SchisandraOssUpServiceImpl implements SchisandraOssUpService { } + @Override + public List selectAll() {return schisandraOssUpDao.selectAll();} + + } From 6d616722394e29e6347a7afd21c24a066692b96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Fri, 12 Jul 2024 22:31:56 +0800 Subject: [PATCH 9/9] =?UTF-8?q?feat:=20selectAll=EF=BC=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=89=80=E6=9C=89=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schisandra-cloud-storage-oss-common/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-common/pom.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-common/pom.xml index 94f3604..4fc2122 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-common/pom.xml +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-common/pom.xml @@ -213,6 +213,12 @@ nos-sdk-java-publiccloud 1.3.1 + + + com.jcraft + jsch + 0.1.55 +