feat: mybatis-plus --> mybatis-flex
This commit is contained in:
3
schisandra-cloud-storage-oss/mybatis-flex.config
Normal file
3
schisandra-cloud-storage-oss/mybatis-flex.config
Normal file
@@ -0,0 +1,3 @@
|
||||
processor.enable=true
|
||||
processor.allInTables.enable=false
|
||||
processor.allInTables.package=com.schisandra.oss
|
@@ -40,6 +40,11 @@
|
||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>com.mybatis-flex</groupId>
|
||||
<artifactId>mybatis-flex-processor</artifactId>
|
||||
<version>1.9.0</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@@ -1,67 +0,0 @@
|
||||
package com.schisandra.oss.application.aspect;
|
||||
|
||||
import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
|
||||
import com.schisandra.oss.common.redis.RedisUtil;
|
||||
import com.schisandra.oss.common.utils.AESUtils;
|
||||
import com.schisandra.oss.common.utils.RSAUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@Slf4j
|
||||
@Aspect
|
||||
@Component
|
||||
public class DecryptAspect {
|
||||
@Autowired
|
||||
RedisUtil redisUtil;
|
||||
|
||||
private final String authSecretKeyPrefix = "auth.SecretKey";
|
||||
/**
|
||||
* @description: 解密切面
|
||||
* @param: []
|
||||
* @return: void
|
||||
* @author zlg
|
||||
* @date: 2024/5/23 19:53
|
||||
*/
|
||||
@Pointcut("@annotation(com.schisandra.oss.application.aspect.NeedDecrypt)")
|
||||
public void pointCut() {
|
||||
}
|
||||
|
||||
@Around("pointCut()")
|
||||
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||
//解密
|
||||
Object result = decrypt(joinPoint);
|
||||
return result;
|
||||
}
|
||||
|
||||
public Object decrypt(ProceedingJoinPoint joinPoint) {
|
||||
Object result = null;
|
||||
Object []objects=null;
|
||||
try {
|
||||
objects = joinPoint.getArgs();
|
||||
Object obj = joinPoint.proceed();
|
||||
SchisandraOssMinioDTO schisandraOssMinioDTO=(SchisandraOssMinioDTO) obj;
|
||||
String prefix = redisUtil.buildKey(authSecretKeyPrefix, String.valueOf(objects[0]));
|
||||
if (obj!= null) {
|
||||
HashMap<String,String> map=redisUtil.getJson(prefix);
|
||||
String key=RSAUtils.decryptByPrivate(map.get("AESKey"),map.get("privateKey"));
|
||||
// AESUtils.decrypt(objects.toString(),key);
|
||||
// schisandraOssMinioDTO.setUserId(Long.valueOf(AESUtils.decrypt(String.valueOf(schisandraOssMinioDTO.getUserId()),key)));
|
||||
schisandraOssMinioDTO.setEndpoint(AESUtils.decrypt(schisandraOssMinioDTO.getEndpoint(),key));
|
||||
schisandraOssMinioDTO.setSecretKey(AESUtils.decrypt(schisandraOssMinioDTO.getSecretKey(),key));
|
||||
schisandraOssMinioDTO.setAccessKey(AESUtils.decrypt(schisandraOssMinioDTO.getAccessKey(),key));
|
||||
result=schisandraOssMinioDTO;
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
@@ -1,62 +0,0 @@
|
||||
package com.schisandra.oss.application.aspect;
|
||||
|
||||
import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
|
||||
import com.schisandra.oss.common.redis.RedisUtil;
|
||||
import com.schisandra.oss.common.utils.AESUtils;
|
||||
import com.schisandra.oss.common.utils.RSAUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Aspect
|
||||
@Component
|
||||
public class EncryptAspect {
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
private final String authSecretKeyPrefix = "auth.SecretKey";
|
||||
|
||||
@Pointcut("@annotation(com.schisandra.oss.application.aspect.NeedEncrypt)")
|
||||
public void pointCut() {
|
||||
}
|
||||
|
||||
@Around("pointCut()")
|
||||
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||
//加密
|
||||
encrypt(joinPoint);
|
||||
return joinPoint.proceed();
|
||||
}
|
||||
|
||||
public void encrypt(ProceedingJoinPoint joinPoint) {
|
||||
Object[] objects = null;
|
||||
|
||||
try {
|
||||
objects = joinPoint.getArgs();
|
||||
SchisandraOssMinioDTO schisandraOssMinioDTO= (SchisandraOssMinioDTO) objects[0];
|
||||
String prefix = redisUtil.buildKey(authSecretKeyPrefix, String.valueOf(schisandraOssMinioDTO.getUserId()));
|
||||
String key = AESUtils.getKey();
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map = RSAUtils.getPriKeyAndPubKey();
|
||||
String publicKey = map.get("publicKey");
|
||||
if (objects.length != 0) {
|
||||
schisandraOssMinioDTO.setEndpoint(AESUtils.encrypt(schisandraOssMinioDTO.getEndpoint(), key));
|
||||
schisandraOssMinioDTO.setSecretKey(AESUtils.encrypt(schisandraOssMinioDTO.getSecretKey(), key));
|
||||
schisandraOssMinioDTO.setAccessKey(AESUtils.encrypt(schisandraOssMinioDTO.getAccessKey(), key));
|
||||
objects[0] = schisandraOssMinioDTO;
|
||||
String AESkey = RSAUtils.encryptByPublic(key, publicKey);
|
||||
map.put("AESKey", AESkey);
|
||||
redisUtil.setJson(prefix, map);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
package com.schisandra.oss.application.aspect;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.FIELD,ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface EncryptField {
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
package com.schisandra.oss.application.aspect;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface NeedDecrypt {
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
package com.schisandra.oss.application.aspect;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface NeedEncrypt {
|
||||
}
|
@@ -3,8 +3,6 @@ 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.aspect.NeedDecrypt;
|
||||
import com.schisandra.oss.application.aspect.NeedEncrypt;
|
||||
import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter;
|
||||
import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
|
||||
import com.schisandra.oss.application.oss.core.minio.MinioOssClient;
|
||||
@@ -63,7 +61,6 @@ public class SchisandraOssMinioController {
|
||||
}
|
||||
}
|
||||
|
||||
@NeedDecrypt
|
||||
@PostMapping("get")
|
||||
public SchisandraOssMinioDTO getMinioOss(@RequestParam String userId) {
|
||||
return SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(schisandraOssMinioDomainService.getMinioConfig(Long.valueOf(userId)));
|
||||
@@ -73,7 +70,6 @@ public class SchisandraOssMinioController {
|
||||
* 新增
|
||||
*/
|
||||
@PostMapping("add")
|
||||
@NeedEncrypt
|
||||
@RequestMapping("add")
|
||||
public Result<Boolean> addMinioOss(@RequestBody SchisandraOssMinioDTO schisandraOssMinioDTO) {
|
||||
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package com.schisandra.oss.application.dto;
|
||||
|
||||
import com.schisandra.oss.application.aspect.EncryptField;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -23,25 +22,21 @@ public class SchisandraOssMinioDTO implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@EncryptField
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@EncryptField
|
||||
private String endpoint;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@EncryptField
|
||||
private String accessKey;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@EncryptField
|
||||
private String secretKey;
|
||||
|
||||
/**
|
||||
|
@@ -1,7 +1,6 @@
|
||||
package com.schisandra.oss.application.oss.core.minio;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.schisandra.oss.application.aspect.NeedDecrypt;
|
||||
import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter;
|
||||
import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
|
||||
import com.schisandra.oss.application.oss.core.StandardOssClient;
|
||||
@@ -70,7 +69,6 @@ public class MinioOssConfiguration {
|
||||
}
|
||||
|
||||
|
||||
@NeedDecrypt
|
||||
public SchisandraOssMinioDTO getSchisandraOssMinioDTO(String userId) {
|
||||
CompletableFuture<SchisandraOssMinioDTO> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||
SchisandraOssMinioBO minioBO = schisandraOssMinioDomainService.getMinioConfig(Long.valueOf(userId));
|
||||
|
@@ -1,439 +0,0 @@
|
||||
package com.schisandra.oss.application.oss.utils;
|
||||
|
||||
|
||||
import io.minio.*;
|
||||
import io.minio.http.Method;
|
||||
import io.minio.messages.Bucket;
|
||||
import io.minio.messages.DeleteObject;
|
||||
import io.minio.messages.Item;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @Classname MinIOUtils
|
||||
* @BelongsProject: schisandra-cloud-storage
|
||||
* @BelongsPackage: com.schisandra.oss.application.oss.utils
|
||||
* @Author: landaiqing
|
||||
* @CreateTime: 2024-05-12 23:50
|
||||
* @Description: MinIO工具类
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
public class MinIOUtils {
|
||||
|
||||
private static MinioClient minioClient;
|
||||
|
||||
private static String endpoint;
|
||||
private static String bucketName;
|
||||
private static String accessKey;
|
||||
private static String secretKey;
|
||||
private static Double imgSize;
|
||||
private static Double fileSize;
|
||||
|
||||
|
||||
private static final String SEPARATOR = "/";
|
||||
|
||||
public MinIOUtils() {
|
||||
}
|
||||
|
||||
public MinIOUtils(String endpoint, String bucketName, String accessKey, String secretKey, Double imgSize, Double fileSize) {
|
||||
MinIOUtils.endpoint = endpoint;
|
||||
MinIOUtils.bucketName = bucketName;
|
||||
MinIOUtils.accessKey = accessKey;
|
||||
MinIOUtils.secretKey = secretKey;
|
||||
MinIOUtils.imgSize = imgSize;
|
||||
MinIOUtils.fileSize = fileSize;
|
||||
createMinioClient();
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建基于Java端的MinioClient
|
||||
*/
|
||||
public void createMinioClient() {
|
||||
try {
|
||||
if (null == minioClient) {
|
||||
log.info("开始创建 MinioClient...");
|
||||
minioClient = MinioClient
|
||||
.builder()
|
||||
.endpoint(endpoint)
|
||||
.credentials(accessKey, secretKey)
|
||||
.build();
|
||||
createBucket(bucketName);
|
||||
log.info("创建完毕 MinioClient...");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("MinIO服务器异常:{}", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传文件前缀路径
|
||||
* @return
|
||||
*/
|
||||
public static String getBasisUrl() {
|
||||
return endpoint + SEPARATOR + bucketName + SEPARATOR;
|
||||
}
|
||||
|
||||
/****************************** Operate Bucket Start ******************************/
|
||||
|
||||
/**
|
||||
* 启动SpringBoot容器的时候初始化Bucket
|
||||
* 如果没有Bucket则创建
|
||||
* @throws Exception
|
||||
*/
|
||||
private static void createBucket(String bucketName) throws Exception {
|
||||
if (!bucketExists(bucketName)) {
|
||||
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断Bucket是否存在,true:存在,false:不存在
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static boolean bucketExists(String bucketName) throws Exception {
|
||||
return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获得Bucket的策略
|
||||
* @param bucketName
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getBucketPolicy(String bucketName) throws Exception {
|
||||
String bucketPolicy = minioClient
|
||||
.getBucketPolicy(
|
||||
GetBucketPolicyArgs
|
||||
.builder()
|
||||
.bucket(bucketName)
|
||||
.build()
|
||||
);
|
||||
return bucketPolicy;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获得所有Bucket列表
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static List<Bucket> getAllBuckets() throws Exception {
|
||||
return minioClient.listBuckets();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据bucketName获取其相关信息
|
||||
* @param bucketName
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static Optional<Bucket> getBucket(String bucketName) throws Exception {
|
||||
return getAllBuckets().stream().filter(b -> b.name().equals(bucketName)).findFirst();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据bucketName删除Bucket,true:删除成功; false:删除失败,文件或已不存在
|
||||
* @param bucketName
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void removeBucket(String bucketName) throws Exception {
|
||||
minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build());
|
||||
}
|
||||
|
||||
/****************************** Operate Bucket End ******************************/
|
||||
|
||||
|
||||
/****************************** Operate Files Start ******************************/
|
||||
|
||||
/**
|
||||
* 判断文件是否存在
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名
|
||||
* @return
|
||||
*/
|
||||
public static boolean isObjectExist(String bucketName, String objectName) {
|
||||
boolean exist = true;
|
||||
try {
|
||||
minioClient.statObject(StatObjectArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
} catch (Exception e) {
|
||||
exist = false;
|
||||
}
|
||||
return exist;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断文件夹是否存在
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件夹名称
|
||||
* @return
|
||||
*/
|
||||
public static boolean isFolderExist(String bucketName, String objectName) {
|
||||
boolean exist = false;
|
||||
try {
|
||||
Iterable<Result<Item>> results = minioClient.listObjects(
|
||||
ListObjectsArgs.builder().bucket(bucketName).prefix(objectName).recursive(false).build());
|
||||
for (Result<Item> result : results) {
|
||||
Item item = result.get();
|
||||
if (item.isDir() && objectName.equals(item.objectName())) {
|
||||
exist = true;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
exist = false;
|
||||
}
|
||||
return exist;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据文件前缀查询文件
|
||||
* @param bucketName 存储桶
|
||||
* @param prefix 前缀
|
||||
* @param recursive 是否使用递归查询
|
||||
* @return MinioItem 列表
|
||||
* @throws Exception
|
||||
*/
|
||||
public static List<Item> getAllObjectsByPrefix(String bucketName,
|
||||
String prefix,
|
||||
boolean recursive) throws Exception {
|
||||
List<Item> list = new ArrayList<>();
|
||||
Iterable<Result<Item>> objectsIterator = minioClient.listObjects(
|
||||
ListObjectsArgs.builder().bucket(bucketName).prefix(prefix).recursive(recursive).build());
|
||||
if (objectsIterator != null) {
|
||||
for (Result<Item> o : objectsIterator) {
|
||||
Item item = o.get();
|
||||
list.add(item);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件流
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名
|
||||
* @return 二进制流
|
||||
*/
|
||||
public static InputStream getObject(String bucketName, String objectName) throws Exception {
|
||||
return minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 断点下载
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名称
|
||||
* @param offset 起始字节的位置
|
||||
* @param length 要读取的长度
|
||||
* @return 二进制流
|
||||
*/
|
||||
public InputStream getObject(String bucketName, String objectName, long offset, long length)throws Exception {
|
||||
return minioClient.getObject(
|
||||
GetObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.offset(offset)
|
||||
.length(length)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取路径下文件列表
|
||||
* @param bucketName 存储桶
|
||||
* @param prefix 文件名称
|
||||
* @param recursive 是否递归查找,false:模拟文件夹结构查找
|
||||
* @return 二进制流
|
||||
*/
|
||||
public static Iterable<Result<Item>> listObjects(String bucketName, String prefix,
|
||||
boolean recursive) {
|
||||
return minioClient.listObjects(
|
||||
ListObjectsArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.prefix(prefix)
|
||||
.recursive(recursive)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用MultipartFile进行文件上传
|
||||
* @param bucketName 存储桶
|
||||
* @param file 文件名
|
||||
* @param objectName 对象名
|
||||
* @param contentType 类型
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static ObjectWriteResponse uploadFile(String bucketName, MultipartFile file,
|
||||
String objectName, String contentType) throws Exception {
|
||||
InputStream inputStream = file.getInputStream();
|
||||
return minioClient.putObject(
|
||||
PutObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.contentType(contentType)
|
||||
.stream(inputStream, inputStream.available(), -1)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传本地文件
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 对象名称
|
||||
* @param fileName 本地文件路径
|
||||
*/
|
||||
public static ObjectWriteResponse uploadFile(String bucketName, String objectName,
|
||||
String fileName) throws Exception {
|
||||
return minioClient.uploadObject(
|
||||
UploadObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.filename(fileName)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过流上传文件
|
||||
*
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件对象
|
||||
* @param inputStream 文件流
|
||||
*/
|
||||
public static ObjectWriteResponse uploadFile(String bucketName, String objectName, InputStream inputStream) throws Exception {
|
||||
return minioClient.putObject(
|
||||
PutObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.stream(inputStream, inputStream.available(), -1)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建文件夹或目录
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 目录路径
|
||||
*/
|
||||
public static ObjectWriteResponse createDir(String bucketName, String objectName) throws Exception {
|
||||
return minioClient.putObject(
|
||||
PutObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.stream(new ByteArrayInputStream(new byte[]{}), 0, -1)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件信息, 如果抛出异常则说明文件不存在
|
||||
*
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名称
|
||||
*/
|
||||
public static String getFileStatusInfo(String bucketName, String objectName) throws Exception {
|
||||
return minioClient.statObject(
|
||||
StatObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.build()).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 拷贝文件
|
||||
*
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名
|
||||
* @param srcBucketName 目标存储桶
|
||||
* @param srcObjectName 目标文件名
|
||||
*/
|
||||
public static ObjectWriteResponse copyFile(String bucketName, String objectName,
|
||||
String srcBucketName, String srcObjectName) throws Exception {
|
||||
return minioClient.copyObject(
|
||||
CopyObjectArgs.builder()
|
||||
.source(CopySource.builder().bucket(bucketName).object(objectName).build())
|
||||
.bucket(srcBucketName)
|
||||
.object(srcObjectName)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名称
|
||||
*/
|
||||
public static void removeFile(String bucketName, String objectName) throws Exception {
|
||||
minioClient.removeObject(
|
||||
RemoveObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除文件
|
||||
* @param bucketName 存储桶
|
||||
* @param keys 需要删除的文件列表
|
||||
* @return
|
||||
*/
|
||||
public static void removeFiles(String bucketName, List<String> keys) {
|
||||
List<DeleteObject> objects = new LinkedList<>();
|
||||
keys.forEach(s -> {
|
||||
objects.add(new DeleteObject(s));
|
||||
try {
|
||||
removeFile(bucketName, s);
|
||||
} catch (Exception e) {
|
||||
log.error("批量删除失败!error:{}",e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件外链
|
||||
* @param bucketName 存储桶
|
||||
* @param objectName 文件名
|
||||
* @param expires 过期时间 <=7 秒 (外链有效时间(单位:秒))
|
||||
* @return url
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getPresignedObjectUrl(String bucketName, String objectName, Integer expires) throws Exception {
|
||||
GetPresignedObjectUrlArgs args = GetPresignedObjectUrlArgs.builder().expiry(expires).bucket(bucketName).object(objectName).build();
|
||||
return minioClient.getPresignedObjectUrl(args);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得文件外链
|
||||
* @param bucketName
|
||||
* @param objectName
|
||||
* @return url
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getPresignedObjectUrl(String bucketName, String objectName) throws Exception {
|
||||
GetPresignedObjectUrlArgs args = GetPresignedObjectUrlArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.method(Method.GET).build();
|
||||
return minioClient.getPresignedObjectUrl(args);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将URLDecoder编码转成UTF8
|
||||
* @param str
|
||||
* @return
|
||||
* @throws UnsupportedEncodingException
|
||||
*/
|
||||
public static String getUtf8ByURLDecoder(String str) throws UnsupportedEncodingException {
|
||||
String url = str.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
|
||||
return URLDecoder.decode(url, "UTF-8");
|
||||
}
|
||||
|
||||
/****************************** Operate Files End ******************************/
|
||||
|
||||
}
|
||||
|
||||
|
@@ -39,6 +39,11 @@
|
||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>com.mybatis-flex</groupId>
|
||||
<artifactId>mybatis-flex-processor</artifactId>
|
||||
<version>1.9.0</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@@ -38,11 +38,16 @@
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.33</version>
|
||||
</dependency>
|
||||
<!--mybatis plus-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.4.0</version>
|
||||
<groupId>com.mybatis-flex</groupId>
|
||||
<artifactId>mybatis-flex-spring-boot-starter</artifactId>
|
||||
<version>1.9.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.mybatis-flex</groupId>
|
||||
<artifactId>mybatis-flex-processor</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.schisandra</groupId>
|
||||
|
@@ -1,7 +1,8 @@
|
||||
package com.schisandra.oss.infra.basic.dao;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraOssAli;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
package com.schisandra.oss.infra.basic.dao;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraOssBaidu;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
package com.schisandra.oss.infra.basic.dao;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraOssMinio;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
@@ -1,324 +1,324 @@
|
||||
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 com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 实体类
|
||||
* 实体类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2024-05-14 20:45:32
|
||||
*/
|
||||
@Data
|
||||
@TableName("schisandra_oss_ali")
|
||||
@Table("schisandra_oss_ali")
|
||||
public class SchisandraOssAli implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableId(value = "`id`", type = IdType.AUTO)
|
||||
@Id(value = "id", keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`user_id`")
|
||||
@Column("user_id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* OSS地址
|
||||
*/
|
||||
@TableField("`endpoint`")
|
||||
@Column("endpoint")
|
||||
private String endpoint;
|
||||
|
||||
/**
|
||||
* AccessKey ID
|
||||
*/
|
||||
@TableField("`access_key_id`")
|
||||
@Column("access_key_id")
|
||||
private String accessKeyId;
|
||||
|
||||
/**
|
||||
* AccessKey Secret
|
||||
*/
|
||||
@TableField("`access_key_secret`")
|
||||
@Column("access_key_secret")
|
||||
private String accessKeySecret;
|
||||
|
||||
/**
|
||||
* security Token
|
||||
*/
|
||||
@TableField("`security_token`")
|
||||
@Column("security_token")
|
||||
private String securityToken;
|
||||
|
||||
/**
|
||||
* Bucket名称
|
||||
*/
|
||||
@TableField("`bucket_name`")
|
||||
@Column("bucket_name")
|
||||
private String bucketName;
|
||||
|
||||
/**
|
||||
* 数据存储路径
|
||||
*/
|
||||
@TableField("`base_path`")
|
||||
@Column("base_path")
|
||||
private String basePath;
|
||||
|
||||
/**
|
||||
* 用户代理,指HTTP的User-Agent头。默认为aliyun-sdk-java。
|
||||
*/
|
||||
@TableField("`user_agent`")
|
||||
@Column("user_agent")
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 请求失败后最大的重试次数。默认3次。
|
||||
*/
|
||||
@TableField("`max_error_retry`")
|
||||
@Column("max_error_retry")
|
||||
private String maxErrorRetry;
|
||||
|
||||
/**
|
||||
* 从连接池中获取连接的超时时间(单位:毫秒)。默认不超时。
|
||||
*/
|
||||
@TableField("`connection_request_timeout`")
|
||||
@Column("connection_request_timeout")
|
||||
private Integer connectionRequestTimeout;
|
||||
|
||||
/**
|
||||
* 建立连接的超时时间(单位:毫秒)。默认为50000毫秒。
|
||||
*/
|
||||
@TableField("`connection_timeout`")
|
||||
@Column("connection_timeout")
|
||||
private Integer connectionTimeout;
|
||||
|
||||
/**
|
||||
* Socket层传输数据的超时时间(单位:毫秒)。默认为50000毫秒。
|
||||
*/
|
||||
@TableField("`socket_timeout`")
|
||||
@Column("socket_timeout")
|
||||
private Integer socketTimeout;
|
||||
|
||||
/**
|
||||
* 允许打开的最大HTTP连接数。默认为1024
|
||||
*/
|
||||
@TableField("`max_connections`")
|
||||
@Column("max_connections")
|
||||
private Integer maxConnections;
|
||||
|
||||
/**
|
||||
* 连接TTL (生存时间)。Http连接由连接管理器用TTL缓存。
|
||||
*/
|
||||
@TableField("`connection_TTL`")
|
||||
@Column("connection_TTL")
|
||||
private Long connectionTTL;
|
||||
|
||||
/**
|
||||
* 是否使用com.aliyun.oss.common.comm.IdleConnectionReaper管理过期连接,默认开启
|
||||
*/
|
||||
@TableField("`use_reaper`")
|
||||
@Column("use_reaper")
|
||||
private String useReaper;
|
||||
|
||||
/**
|
||||
* 连接空闲超时时间,超时则关闭连接(单位:毫秒)。默认为60000毫秒。
|
||||
*/
|
||||
@TableField("`idle_connection_time`")
|
||||
@Column("idle_connection_time")
|
||||
private Long idleConnectionTime;
|
||||
|
||||
/**
|
||||
* 连接OSS所采用的协议(HTTP或HTTPS),默认为HTTP。
|
||||
*/
|
||||
@TableField("`protocol`")
|
||||
@Column("protocol")
|
||||
private String protocol;
|
||||
|
||||
/**
|
||||
* 代理服务器主机地址。
|
||||
*/
|
||||
@TableField("`proxy_host`")
|
||||
@Column("proxy_host")
|
||||
private String proxyHost;
|
||||
|
||||
/**
|
||||
* 代理服务器端口。
|
||||
*/
|
||||
@TableField("`proxy_port`")
|
||||
@Column("proxy_port")
|
||||
private String proxyPort;
|
||||
|
||||
/**
|
||||
* 代理服务器验证的用户名。
|
||||
*/
|
||||
@TableField("`proxy_username`")
|
||||
@Column("proxy_username")
|
||||
private String proxyUsername;
|
||||
|
||||
/**
|
||||
* 代理服务器验证的密码。
|
||||
*/
|
||||
@TableField("`proxy_password`")
|
||||
@Column("proxy_password")
|
||||
private String proxyPassword;
|
||||
|
||||
/**
|
||||
* 代理服务器的域,该域可以执行NTLM认证
|
||||
*/
|
||||
@TableField("`proxy_domain`")
|
||||
@Column("proxy_domain")
|
||||
private String proxyDomain;
|
||||
|
||||
/**
|
||||
* 代理主机的NTLM身份验证服务器
|
||||
*/
|
||||
@TableField("`proxy_workstation`")
|
||||
@Column("proxy_workstation")
|
||||
private String proxyWorkstation;
|
||||
|
||||
/**
|
||||
* 是否支持CNAME作为Endpoint,默认支持CNAME。
|
||||
*/
|
||||
@TableField("`support_cname`")
|
||||
@Column("support_cname")
|
||||
private String supportCname;
|
||||
|
||||
/**
|
||||
* 设置不可变排除的CName列表 ---- 任何以该列表中的项目结尾的域都不会进行Cname解析。
|
||||
*/
|
||||
@TableField("`cname_exclude_list`")
|
||||
@Column("cname_exclude_list")
|
||||
private String cnameExcludeList;
|
||||
|
||||
/**
|
||||
* 是否开启二级域名(Second Level Domain)的访问方式,默认不开启。
|
||||
*/
|
||||
@TableField("`sld_enabled`")
|
||||
@Column("sld_enabled")
|
||||
private String sldEnabled;
|
||||
|
||||
/**
|
||||
* 请求超时时间,单位:毫秒。默认情况下是5分钟。
|
||||
*/
|
||||
@TableField("`request_timeout`")
|
||||
@Column("request_timeout")
|
||||
private Integer requestTimeout;
|
||||
|
||||
/**
|
||||
* 是否启用请求超时校验。默认情况下,它是禁用的。
|
||||
*/
|
||||
@TableField("`request_timeout_enabled`")
|
||||
@Column("request_timeout_enabled")
|
||||
private String requestTimeoutEnabled;
|
||||
|
||||
/**
|
||||
* 设置慢请求的延迟阈值。如果请求的延迟大于延迟,则将记录该请求。默认情况下,阈值为5分钟。
|
||||
*/
|
||||
@TableField("`slow_requests_threshold`")
|
||||
@Column("slow_requests_threshold")
|
||||
private Long slowRequestsThreshold;
|
||||
|
||||
/**
|
||||
* 设置默认的http头。所有请求头将自动添加到每个请求中。如果在请求中也指定了相同的请求头,则默认的标头将被覆盖。
|
||||
*/
|
||||
@TableField("`default_headers`")
|
||||
@Column("default_headers")
|
||||
private String defaultHeaders;
|
||||
|
||||
/**
|
||||
* 是否在上传和下载时启用CRC校验,默认启用
|
||||
*/
|
||||
@TableField("`crc_check_enabled`")
|
||||
@Column("crc_check_enabled")
|
||||
private String crcCheckEnabled;
|
||||
|
||||
/**
|
||||
* 所有请求设置签名版本
|
||||
*/
|
||||
@TableField("`signature_version`")
|
||||
@Column("signature_version")
|
||||
private String signatureVersion;
|
||||
|
||||
/**
|
||||
* 设置OSS服务端时间和本地时间之间的差异,以毫秒为单位。
|
||||
*/
|
||||
@TableField("`tick_offset`")
|
||||
@Column("tick_offset")
|
||||
private Long tickOffset;
|
||||
|
||||
/**
|
||||
* 是否开启HTTP重定向。
|
||||
说明: Java SDK 3.10.1及以上版本支持设置是否开启HTTP重定向,默认开启。
|
||||
* 说明: Java SDK 3.10.1及以上版本支持设置是否开启HTTP重定向,默认开启。
|
||||
*/
|
||||
@TableField("`redirect_enable`")
|
||||
@Column("redirect_enable")
|
||||
private String redirectEnable;
|
||||
|
||||
/**
|
||||
* 是否开启SSL证书校验。
|
||||
* 说明: Java SDK 3.10.1及以上版本支持设置是否开启SSL证书校验,默认开启。
|
||||
*/
|
||||
@TableField("`verify_SSL_enable`")
|
||||
@Column("verify_SSL_enable")
|
||||
private String verifySSLEnable;
|
||||
|
||||
/**
|
||||
* 是否开启日志记录连接池统计信息
|
||||
*/
|
||||
@TableField("`log_connection_pool_stats`")
|
||||
@Column("log_connection_pool_stats")
|
||||
private String logConnectionPoolStats;
|
||||
|
||||
/**
|
||||
* 是否使用系统属性值
|
||||
*/
|
||||
@TableField("`use_system_property_values`")
|
||||
@Column("use_system_property_values")
|
||||
private String useSystemPropertyValues;
|
||||
|
||||
/**
|
||||
* 分片大小,默认5MB
|
||||
*/
|
||||
@TableField("`part_size`")
|
||||
@Column("part_size")
|
||||
private Integer partSize;
|
||||
|
||||
/**
|
||||
* 并发线程数,默认等于CPU的核数
|
||||
*/
|
||||
@TableField("`task_num`")
|
||||
@Column("task_num")
|
||||
private Integer taskNum;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@TableField("`status`")
|
||||
@Column("status")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 是否开启高级设置
|
||||
*/
|
||||
@TableField("`open_advanced_setup`")
|
||||
@Column("open_advanced_setup")
|
||||
private String openAdvancedSetup;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField("`created_by`")
|
||||
@Column("created_by")
|
||||
private String createdBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField("`created_time`")
|
||||
@Column("created_time")
|
||||
private Date createdTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField("`update_time`")
|
||||
@Column("update_time")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField("`update_by`")
|
||||
@Column("update_by")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 是否删除 0 未删除 1已删除
|
||||
*/
|
||||
@TableField("`is_deleted`")
|
||||
@Column("is_deleted")
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 额外字段
|
||||
*/
|
||||
@TableField("`extra_json`")
|
||||
@Column("extra_json")
|
||||
private String extraJson;
|
||||
|
||||
/**
|
||||
* 当桶不存在,是否创建
|
||||
*/
|
||||
@TableField("`create_bucket`")
|
||||
@Column("create_bucket")
|
||||
private String createBucket;
|
||||
|
||||
/**
|
||||
* 启动检测桶,是否存在
|
||||
*/
|
||||
@TableField("`check_bucket`")
|
||||
@Column("check_bucket")
|
||||
private String checkBucket;
|
||||
|
||||
}
|
||||
|
@@ -1,262 +1,262 @@
|
||||
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 com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 实体类
|
||||
* 实体类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2024-05-17 21:17:28
|
||||
*/
|
||||
@Data
|
||||
@TableName("schisandra_oss_baidu")
|
||||
@Table("schisandra_oss_baidu")
|
||||
public class SchisandraOssBaidu implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableId(value = "`id`", type = IdType.AUTO)
|
||||
@Id(value = "id", keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`user_id`")
|
||||
@Column("user_id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`base_path`")
|
||||
@Column("base_path")
|
||||
private String basePath;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`bucket_name`")
|
||||
@Column("bucket_name")
|
||||
private String bucketName;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`access_key_id`")
|
||||
@Column("access_key_id")
|
||||
private String accessKeyId;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`secret_access_key`")
|
||||
@Column("secret_access_key")
|
||||
private String secretAccessKey;
|
||||
|
||||
/**
|
||||
* 使用cname访问BOS资源
|
||||
*/
|
||||
@TableField("`cname_enabled`")
|
||||
@Column("cname_enabled")
|
||||
private String cnameEnabled;
|
||||
|
||||
/**
|
||||
* 异步put
|
||||
*/
|
||||
@TableField("`enable_http_async_put`")
|
||||
@Column("enable_http_async_put")
|
||||
private String enableHttpAsyncPut;
|
||||
|
||||
/**
|
||||
* 建立连接的超时时间(单位:毫秒)
|
||||
*/
|
||||
@TableField("`connection_timeoutIn_millis`")
|
||||
@Column("connection_timeoutIn_millis")
|
||||
private Integer connectionTimeoutInMillis;
|
||||
|
||||
/**
|
||||
* 允许打开的最大HTTP连接数
|
||||
*/
|
||||
@TableField("`max_connections`")
|
||||
@Column("max_connections")
|
||||
private Integer maxConnections;
|
||||
|
||||
/**
|
||||
* 连接协议类型
|
||||
*/
|
||||
@TableField("`protocol`")
|
||||
@Column("protocol")
|
||||
private String protocol;
|
||||
|
||||
/**
|
||||
* 访问NTLM验证的代理服务器的Windows域名
|
||||
*/
|
||||
@TableField("`proxy_domain`")
|
||||
@Column("proxy_domain")
|
||||
private String proxyDomain;
|
||||
|
||||
/**
|
||||
* 代理服务器主机地址
|
||||
*/
|
||||
@TableField("`proxy_host`")
|
||||
@Column("proxy_host")
|
||||
private String proxyHost;
|
||||
|
||||
/**
|
||||
* 代理服务器验证的密码
|
||||
*/
|
||||
@TableField("`proxy_password`")
|
||||
@Column("proxy_password")
|
||||
private String proxyPassword;
|
||||
|
||||
/**
|
||||
* 代理服务器端口
|
||||
*/
|
||||
@TableField("`proxy_port`")
|
||||
@Column("proxy_port")
|
||||
private Integer proxyPort;
|
||||
|
||||
/**
|
||||
* 代理服务器验证的用户名
|
||||
*/
|
||||
@TableField("`proxy_username`")
|
||||
@Column("proxy_username")
|
||||
private String proxyUsername;
|
||||
|
||||
/**
|
||||
* NTLM代理服务器的Windows工作站名称
|
||||
*/
|
||||
@TableField("`proxy_workstation`")
|
||||
@Column("proxy_workstation")
|
||||
private String proxyWorkstation;
|
||||
|
||||
/**
|
||||
* 是否设置用户代理认证
|
||||
*/
|
||||
@TableField("`proxy_preemptive_authentication_enable`")
|
||||
@Column("proxy_preemptive_authentication_enable")
|
||||
private String proxyPreemptiveAuthenticationEnable;
|
||||
|
||||
/**
|
||||
* 通过打开的连接传输数据的超时时间(单位:毫秒)
|
||||
*/
|
||||
@TableField("`socket_timeoutIn_millis`")
|
||||
@Column("socket_timeoutIn_millis")
|
||||
private Integer socketTimeoutInMillis;
|
||||
|
||||
/**
|
||||
* Socket缓冲区大小
|
||||
*/
|
||||
@TableField("`socket_buffer_sizeIn_bytes`")
|
||||
@Column("socket_buffer_sizeIn_bytes")
|
||||
private Integer socketBufferSizeInBytes;
|
||||
|
||||
/**
|
||||
* 访问域名
|
||||
*/
|
||||
@TableField("`endpoint`")
|
||||
@Column("endpoint")
|
||||
private String endpoint;
|
||||
|
||||
/**
|
||||
* 地域
|
||||
*/
|
||||
@TableField("`region`")
|
||||
@Column("region")
|
||||
private String region;
|
||||
|
||||
/**
|
||||
* 是否开启HTTP重定向。默认开启
|
||||
*/
|
||||
@TableField("`redirects_enabled`")
|
||||
@Column("redirects_enabled")
|
||||
private String redirectsEnabled;
|
||||
|
||||
/**
|
||||
* 本地地址
|
||||
*/
|
||||
@TableField("`local_address`")
|
||||
@Column("local_address")
|
||||
private String localAddress;
|
||||
|
||||
/**
|
||||
* 请求失败最大重试次数
|
||||
*/
|
||||
@TableField("`max_error_retry`")
|
||||
@Column("max_error_retry")
|
||||
private Integer maxErrorRetry;
|
||||
|
||||
/**
|
||||
* 最大延迟时间,单位:毫秒
|
||||
*/
|
||||
@TableField("`max_delayIn_millis`")
|
||||
@Column("max_delayIn_millis")
|
||||
private Integer maxDelayInMillis;
|
||||
|
||||
/**
|
||||
* 流文件缓冲区大小
|
||||
*/
|
||||
@TableField("`stream_buffer_size`")
|
||||
@Column("stream_buffer_size")
|
||||
private Double streamBufferSize;
|
||||
|
||||
/**
|
||||
* 用户代理,指HTTP的User-Agent头
|
||||
*/
|
||||
@TableField("`user_agent`")
|
||||
@Column("user_agent")
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 分片大小,默认5MB
|
||||
*/
|
||||
@TableField("`part_size`")
|
||||
@Column("part_size")
|
||||
private Integer partSize;
|
||||
|
||||
/**
|
||||
* 并发线程数,默认等于CPU的核数
|
||||
*/
|
||||
@TableField("`task_num`")
|
||||
@Column("task_num")
|
||||
private Integer taskNum;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@TableField("`status`")
|
||||
@Column("status")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 是否开启高级设置
|
||||
*/
|
||||
@TableField("`open_advanced_setup`")
|
||||
@Column("open_advanced_setup")
|
||||
private String openAdvancedSetup;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField("`created_by`")
|
||||
@Column("created_by")
|
||||
private String createdBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField("`created_time`")
|
||||
@Column("created_time")
|
||||
private Date createdTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField("`update_time`")
|
||||
@Column("update_time")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField("`update_by`")
|
||||
@Column("update_by")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 是否删除 0 未删除 1已删除
|
||||
*/
|
||||
@TableField("`is_deleted`")
|
||||
@Column("is_deleted")
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 额外字段
|
||||
*/
|
||||
@TableField("`extra_json`")
|
||||
@Column("extra_json")
|
||||
private String extraJson;
|
||||
|
||||
/**
|
||||
* 当桶不存在,是否创建
|
||||
*/
|
||||
@TableField("`create_bucket`")
|
||||
@Column("create_bucket")
|
||||
private String createBucket;
|
||||
|
||||
/**
|
||||
* 启动检测桶,是否存在
|
||||
*/
|
||||
@TableField("`check_bucket`")
|
||||
@Column("check_bucket")
|
||||
private String checkBucket;
|
||||
|
||||
}
|
||||
|
@@ -1,220 +1,221 @@
|
||||
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 com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 实体类
|
||||
* 实体类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2024-05-14 19:47:04
|
||||
*/
|
||||
@Data
|
||||
@TableName("schisandra_oss_minio")
|
||||
@Table("schisandra_oss_minio")
|
||||
public class SchisandraOssMinio implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableId(value = "`id`", type = IdType.AUTO)
|
||||
@Id(value = "id", keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`user_id`")
|
||||
@Column("user_id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`endpoint`")
|
||||
@Column("endpoint")
|
||||
private String endpoint;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`accessKey`")
|
||||
@Column("accessKey")
|
||||
private String accessKey;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`secretKey`")
|
||||
@Column("secretKey")
|
||||
private String secretKey;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`bucketName`")
|
||||
@Column("bucketName")
|
||||
private String bucketName;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`port`")
|
||||
@Column("port")
|
||||
private Integer port;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`basePath`")
|
||||
@Column("basePath")
|
||||
private String basePath;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`file_host`")
|
||||
@Column("file_host")
|
||||
private String fileHost;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`download_host`")
|
||||
@Column("download_host")
|
||||
private String downloadHost;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TableField("`upload_host`")
|
||||
@Column("upload_host")
|
||||
private String uploadHost;
|
||||
|
||||
/**
|
||||
* 当桶不存在,是否创建
|
||||
*/
|
||||
@TableField("`create_bucket`")
|
||||
@Column("create_bucket")
|
||||
private String createBucket;
|
||||
|
||||
/**
|
||||
* 启动检测桶,是否存在
|
||||
*/
|
||||
@TableField("`check_bucket`")
|
||||
@Column("check_bucket")
|
||||
private String checkBucket;
|
||||
|
||||
/**
|
||||
* 连接超时时间(单位:毫秒)
|
||||
*/
|
||||
@TableField("`connect_timeout`")
|
||||
@Column("connect_timeout")
|
||||
private Long connectTimeout;
|
||||
|
||||
/**
|
||||
* 写超时时间(单位:毫秒)
|
||||
*/
|
||||
@TableField("`write_timeout`")
|
||||
@Column("write_timeout")
|
||||
private Long writeTimeout;
|
||||
|
||||
/**
|
||||
* 读超时时间(单位:毫秒)
|
||||
*/
|
||||
@TableField("`read_timeout`")
|
||||
@Column("read_timeout")
|
||||
private Long readTimeout;
|
||||
|
||||
/**
|
||||
* 调用超时时间(单位:毫秒)
|
||||
*/
|
||||
@TableField("`call_timeout`")
|
||||
@Column("call_timeout")
|
||||
private Long callTimeout;
|
||||
|
||||
/**
|
||||
* 是否支持重定向,默认支持
|
||||
*/
|
||||
@TableField("`follow_redirects`")
|
||||
@Column("follow_redirects")
|
||||
private String followRedirects;
|
||||
|
||||
/**
|
||||
* 是否支持HTTP到HTTPS,HTTPS到HTTP的重定向,默认支持
|
||||
*/
|
||||
@TableField("`follow_ssl_redirects`")
|
||||
@Column("follow_ssl_redirects")
|
||||
private String followSslRedirects;
|
||||
|
||||
/**
|
||||
* 是否开始连接失败重试,默认不支持
|
||||
*/
|
||||
@TableField("`retry_on_connection_failure`")
|
||||
@Column("retry_on_connection_failure")
|
||||
private String retryOnConnectionFailure;
|
||||
|
||||
/**
|
||||
* 连接健康检测间隔时长(单位:毫秒)
|
||||
*/
|
||||
@TableField("`ping_interval`")
|
||||
@Column("ping_interval")
|
||||
private Integer pingInterval;
|
||||
|
||||
/**
|
||||
* 分片大小,默认5MB
|
||||
*/
|
||||
@TableField("`part_size`")
|
||||
@Column("part_size")
|
||||
private Long partSize;
|
||||
|
||||
/**
|
||||
* 并发线程数,默认等于CPU的核数
|
||||
*/
|
||||
@TableField("`task_num`")
|
||||
@Column("task_num")
|
||||
private Integer taskNum;
|
||||
|
||||
/**
|
||||
* 图片大小限制,单位:m
|
||||
*/
|
||||
@TableField("`img_size`")
|
||||
@Column("img_size")
|
||||
private Integer imgSize;
|
||||
|
||||
/**
|
||||
* 文件大小限制,单位:m
|
||||
*/
|
||||
@TableField("`file_size`")
|
||||
@Column("file_size")
|
||||
private Integer fileSize;
|
||||
|
||||
/**
|
||||
* 额外json
|
||||
*/
|
||||
@TableField("`extra_json`")
|
||||
@Column("extra_json")
|
||||
private String extraJson;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@TableField("`status`")
|
||||
@Column("status")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField("`created_by`")
|
||||
@Column("created_by")
|
||||
private String createdBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField("`created_time`")
|
||||
@Column("created_time")
|
||||
private Date createdTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField("`update_time`")
|
||||
@Column("update_time")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField("`update_by`")
|
||||
@Column("update_by")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 是否删除 0 未删除 1已删除
|
||||
*/
|
||||
@TableField("`is_deleted`")
|
||||
@Column("is_deleted")
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 是否开启高级设置
|
||||
*/
|
||||
@TableField("`open_advanced_setup`")
|
||||
@Column("open_advanced_setup")
|
||||
private String openAdvancedSetup;
|
||||
|
||||
}
|
||||
|
@@ -43,10 +43,6 @@ public interface SchisandraOssAliService {
|
||||
*/
|
||||
boolean deleteById(Long id);
|
||||
|
||||
/**
|
||||
* 根据条件查询角色
|
||||
*/
|
||||
SchisandraOssAli queryByCondition(SchisandraOssAli schisandraOssAli);
|
||||
|
||||
SchisandraOssAli getAliOssConfig(Long userId);
|
||||
}
|
||||
|
@@ -42,9 +42,6 @@ public interface SchisandraOssBaiduService {
|
||||
*/
|
||||
boolean deleteById(Long id);
|
||||
|
||||
/**
|
||||
* 根据条件查询角色
|
||||
*/
|
||||
SchisandraOssBaidu queryByCondition(SchisandraOssBaidu schisandraOssBaidu);
|
||||
|
||||
|
||||
}
|
||||
|
@@ -46,10 +46,6 @@ public interface SchisandraOssMinioService {
|
||||
*/
|
||||
boolean deleteById(Long id);
|
||||
|
||||
/**
|
||||
* 根据条件查询角色
|
||||
*/
|
||||
SchisandraOssMinio queryByCondition(SchisandraOssMinio schisandraOssMinio);
|
||||
|
||||
SchisandraOssMinio getMinioConfig(Long userId);
|
||||
|
||||
|
@@ -1,15 +1,12 @@
|
||||
package com.schisandra.oss.infra.basic.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.schisandra.oss.infra.basic.dao.SchisandraOssAliDao;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraOssAli;
|
||||
import com.schisandra.oss.infra.basic.entity.table.SchisandraOssAliTableDef;
|
||||
import com.schisandra.oss.infra.basic.service.SchisandraOssAliService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 表服务实现类
|
||||
@@ -31,7 +28,7 @@ public class SchisandraOssAliServiceImpl implements SchisandraOssAliService {
|
||||
*/
|
||||
@Override
|
||||
public SchisandraOssAli queryById(Long id) {
|
||||
return this.schisandraOssAliDao.selectById(id);
|
||||
return this.schisandraOssAliDao.selectOneById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,7 +50,7 @@ public class SchisandraOssAliServiceImpl implements SchisandraOssAliService {
|
||||
*/
|
||||
@Override
|
||||
public int update(SchisandraOssAli schisandraOssAli) {
|
||||
return this.schisandraOssAliDao.updateById(schisandraOssAli);
|
||||
return this.schisandraOssAliDao.update(schisandraOssAli, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,75 +64,10 @@ public class SchisandraOssAliServiceImpl implements SchisandraOssAliService {
|
||||
return this.schisandraOssAliDao.deleteById(id) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @param schisandraOssAli 条件
|
||||
* @return 实例对象
|
||||
*/
|
||||
@Override
|
||||
public SchisandraOssAli queryByCondition(SchisandraOssAli schisandraOssAli) {
|
||||
|
||||
LambdaQueryWrapper<SchisandraOssAli> queryWrapper = Wrappers.<SchisandraOssAli>lambdaQuery()
|
||||
.eq(Objects.nonNull(schisandraOssAli.getId()), SchisandraOssAli::getId, schisandraOssAli.getId())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getUserId()), SchisandraOssAli::getUserId, schisandraOssAli.getUserId())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getEndpoint()), SchisandraOssAli::getEndpoint, schisandraOssAli.getEndpoint())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getAccessKeyId()), SchisandraOssAli::getAccessKeyId, schisandraOssAli.getAccessKeyId())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getAccessKeySecret()), SchisandraOssAli::getAccessKeySecret, schisandraOssAli.getAccessKeySecret())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getSecurityToken()), SchisandraOssAli::getSecurityToken, schisandraOssAli.getSecurityToken())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getBucketName()), SchisandraOssAli::getBucketName, schisandraOssAli.getBucketName())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getBasePath()), SchisandraOssAli::getBasePath, schisandraOssAli.getBasePath())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getUserAgent()), SchisandraOssAli::getUserAgent, schisandraOssAli.getUserAgent())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getMaxErrorRetry()), SchisandraOssAli::getMaxErrorRetry, schisandraOssAli.getMaxErrorRetry())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getConnectionRequestTimeout()), SchisandraOssAli::getConnectionRequestTimeout, schisandraOssAli.getConnectionRequestTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getConnectionTimeout()), SchisandraOssAli::getConnectionTimeout, schisandraOssAli.getConnectionTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getSocketTimeout()), SchisandraOssAli::getSocketTimeout, schisandraOssAli.getSocketTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getMaxConnections()), SchisandraOssAli::getMaxConnections, schisandraOssAli.getMaxConnections())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getConnectionTTL()), SchisandraOssAli::getConnectionTTL, schisandraOssAli.getConnectionTTL())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getUseReaper()), SchisandraOssAli::getUseReaper, schisandraOssAli.getUseReaper())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getIdleConnectionTime()), SchisandraOssAli::getIdleConnectionTime, schisandraOssAli.getIdleConnectionTime())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProtocol()), SchisandraOssAli::getProtocol, schisandraOssAli.getProtocol())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProxyHost()), SchisandraOssAli::getProxyHost, schisandraOssAli.getProxyHost())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProxyPort()), SchisandraOssAli::getProxyPort, schisandraOssAli.getProxyPort())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProxyUsername()), SchisandraOssAli::getProxyUsername, schisandraOssAli.getProxyUsername())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProxyPassword()), SchisandraOssAli::getProxyPassword, schisandraOssAli.getProxyPassword())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProxyDomain()), SchisandraOssAli::getProxyDomain, schisandraOssAli.getProxyDomain())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getProxyWorkstation()), SchisandraOssAli::getProxyWorkstation, schisandraOssAli.getProxyWorkstation())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getSupportCname()), SchisandraOssAli::getSupportCname, schisandraOssAli.getSupportCname())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getCnameExcludeList()), SchisandraOssAli::getCnameExcludeList, schisandraOssAli.getCnameExcludeList())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getSldEnabled()), SchisandraOssAli::getSldEnabled, schisandraOssAli.getSldEnabled())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getRequestTimeout()), SchisandraOssAli::getRequestTimeout, schisandraOssAli.getRequestTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getRequestTimeoutEnabled()), SchisandraOssAli::getRequestTimeoutEnabled, schisandraOssAli.getRequestTimeoutEnabled())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getSlowRequestsThreshold()), SchisandraOssAli::getSlowRequestsThreshold, schisandraOssAli.getSlowRequestsThreshold())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getDefaultHeaders()), SchisandraOssAli::getDefaultHeaders, schisandraOssAli.getDefaultHeaders())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getCrcCheckEnabled()), SchisandraOssAli::getCrcCheckEnabled, schisandraOssAli.getCrcCheckEnabled())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getSignatureVersion()), SchisandraOssAli::getSignatureVersion, schisandraOssAli.getSignatureVersion())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getTickOffset()), SchisandraOssAli::getTickOffset, schisandraOssAli.getTickOffset())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getRedirectEnable()), SchisandraOssAli::getRedirectEnable, schisandraOssAli.getRedirectEnable())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getVerifySSLEnable()), SchisandraOssAli::getVerifySSLEnable, schisandraOssAli.getVerifySSLEnable())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getLogConnectionPoolStats()), SchisandraOssAli::getLogConnectionPoolStats, schisandraOssAli.getLogConnectionPoolStats())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getUseSystemPropertyValues()), SchisandraOssAli::getUseSystemPropertyValues, schisandraOssAli.getUseSystemPropertyValues())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getPartSize()), SchisandraOssAli::getPartSize, schisandraOssAli.getPartSize())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getTaskNum()), SchisandraOssAli::getTaskNum, schisandraOssAli.getTaskNum())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getStatus()), SchisandraOssAli::getStatus, schisandraOssAli.getStatus())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getOpenAdvancedSetup()), SchisandraOssAli::getOpenAdvancedSetup, schisandraOssAli.getOpenAdvancedSetup())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getCreatedBy()), SchisandraOssAli::getCreatedBy, schisandraOssAli.getCreatedBy())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getCreatedTime()), SchisandraOssAli::getCreatedTime, schisandraOssAli.getCreatedTime())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getUpdateTime()), SchisandraOssAli::getUpdateTime, schisandraOssAli.getUpdateTime())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getUpdateBy()), SchisandraOssAli::getUpdateBy, schisandraOssAli.getUpdateBy())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getIsDeleted()), SchisandraOssAli::getIsDeleted, schisandraOssAli.getIsDeleted())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getExtraJson()), SchisandraOssAli::getExtraJson, schisandraOssAli.getExtraJson())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getCreateBucket()), SchisandraOssAli::getCreateBucket, schisandraOssAli.getCreateBucket())
|
||||
.eq(Objects.nonNull(schisandraOssAli.getCheckBucket()), SchisandraOssAli::getCheckBucket, schisandraOssAli.getCheckBucket());
|
||||
return schisandraOssAliDao.selectOne(queryWrapper);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public SchisandraOssAli getAliOssConfig(Long userId) {
|
||||
return schisandraOssAliDao.selectOne(new QueryWrapper<SchisandraOssAli>()
|
||||
.eq("user_id", userId)
|
||||
.eq("is_deleted", 0));
|
||||
return schisandraOssAliDao.selectOneByCondition(SchisandraOssAliTableDef.SCHISANDRA_OSS_ALI.USER_ID.eq(userId));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,15 +1,12 @@
|
||||
package com.schisandra.oss.infra.basic.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.schisandra.oss.infra.basic.dao.SchisandraOssBaiduDao;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraOssBaidu;
|
||||
import com.schisandra.oss.infra.basic.service.SchisandraOssBaiduService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 表服务实现类
|
||||
@@ -31,7 +28,7 @@ public class SchisandraOssBaiduServiceImpl implements SchisandraOssBaiduService
|
||||
*/
|
||||
@Override
|
||||
public SchisandraOssBaidu queryById(Long id) {
|
||||
return this.schisandraOssBaiduDao.selectById(id);
|
||||
return this.schisandraOssBaiduDao.selectOneById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,7 +50,7 @@ public class SchisandraOssBaiduServiceImpl implements SchisandraOssBaiduService
|
||||
*/
|
||||
@Override
|
||||
public int update(SchisandraOssBaidu schisandraOssBaidu) {
|
||||
return this.schisandraOssBaiduDao.updateById(schisandraOssBaidu);
|
||||
return this.schisandraOssBaiduDao.update(schisandraOssBaidu,true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,59 +64,5 @@ public class SchisandraOssBaiduServiceImpl implements SchisandraOssBaiduService
|
||||
return this.schisandraOssBaiduDao.deleteById(id) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @param schisandraOssBaidu 条件
|
||||
* @return 实例对象
|
||||
*/
|
||||
@Override
|
||||
public SchisandraOssBaidu queryByCondition(SchisandraOssBaidu schisandraOssBaidu) {
|
||||
|
||||
LambdaQueryWrapper<SchisandraOssBaidu> queryWrapper = Wrappers.<SchisandraOssBaidu>lambdaQuery()
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getId()), SchisandraOssBaidu::getId, schisandraOssBaidu.getId())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getUserId()), SchisandraOssBaidu::getUserId, schisandraOssBaidu.getUserId())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getBasePath()), SchisandraOssBaidu::getBasePath, schisandraOssBaidu.getBasePath())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getBucketName()), SchisandraOssBaidu::getBucketName, schisandraOssBaidu.getBucketName())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getAccessKeyId()), SchisandraOssBaidu::getAccessKeyId, schisandraOssBaidu.getAccessKeyId())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getSecretAccessKey()), SchisandraOssBaidu::getSecretAccessKey, schisandraOssBaidu.getSecretAccessKey())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getCnameEnabled()), SchisandraOssBaidu::getCnameEnabled, schisandraOssBaidu.getCnameEnabled())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getEnableHttpAsyncPut()), SchisandraOssBaidu::getEnableHttpAsyncPut, schisandraOssBaidu.getEnableHttpAsyncPut())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getConnectionTimeoutInMillis()), SchisandraOssBaidu::getConnectionTimeoutInMillis, schisandraOssBaidu.getConnectionTimeoutInMillis())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getMaxConnections()), SchisandraOssBaidu::getMaxConnections, schisandraOssBaidu.getMaxConnections())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProtocol()), SchisandraOssBaidu::getProtocol, schisandraOssBaidu.getProtocol())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyDomain()), SchisandraOssBaidu::getProxyDomain, schisandraOssBaidu.getProxyDomain())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyHost()), SchisandraOssBaidu::getProxyHost, schisandraOssBaidu.getProxyHost())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyPassword()), SchisandraOssBaidu::getProxyPassword, schisandraOssBaidu.getProxyPassword())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyPort()), SchisandraOssBaidu::getProxyPort, schisandraOssBaidu.getProxyPort())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyUsername()), SchisandraOssBaidu::getProxyUsername, schisandraOssBaidu.getProxyUsername())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyWorkstation()), SchisandraOssBaidu::getProxyWorkstation, schisandraOssBaidu.getProxyWorkstation())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getProxyPreemptiveAuthenticationEnable()), SchisandraOssBaidu::getProxyPreemptiveAuthenticationEnable, schisandraOssBaidu.getProxyPreemptiveAuthenticationEnable())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getSocketTimeoutInMillis()), SchisandraOssBaidu::getSocketTimeoutInMillis, schisandraOssBaidu.getSocketTimeoutInMillis())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getSocketBufferSizeInBytes()), SchisandraOssBaidu::getSocketBufferSizeInBytes, schisandraOssBaidu.getSocketBufferSizeInBytes())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getEndpoint()), SchisandraOssBaidu::getEndpoint, schisandraOssBaidu.getEndpoint())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getRegion()), SchisandraOssBaidu::getRegion, schisandraOssBaidu.getRegion())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getRedirectsEnabled()), SchisandraOssBaidu::getRedirectsEnabled, schisandraOssBaidu.getRedirectsEnabled())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getLocalAddress()), SchisandraOssBaidu::getLocalAddress, schisandraOssBaidu.getLocalAddress())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getMaxErrorRetry()), SchisandraOssBaidu::getMaxErrorRetry, schisandraOssBaidu.getMaxErrorRetry())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getMaxDelayInMillis()), SchisandraOssBaidu::getMaxDelayInMillis, schisandraOssBaidu.getMaxDelayInMillis())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getStreamBufferSize()), SchisandraOssBaidu::getStreamBufferSize, schisandraOssBaidu.getStreamBufferSize())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getUserAgent()), SchisandraOssBaidu::getUserAgent, schisandraOssBaidu.getUserAgent())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getPartSize()), SchisandraOssBaidu::getPartSize, schisandraOssBaidu.getPartSize())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getTaskNum()), SchisandraOssBaidu::getTaskNum, schisandraOssBaidu.getTaskNum())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getStatus()), SchisandraOssBaidu::getStatus, schisandraOssBaidu.getStatus())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getOpenAdvancedSetup()), SchisandraOssBaidu::getOpenAdvancedSetup, schisandraOssBaidu.getOpenAdvancedSetup())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getCreatedBy()), SchisandraOssBaidu::getCreatedBy, schisandraOssBaidu.getCreatedBy())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getCreatedTime()), SchisandraOssBaidu::getCreatedTime, schisandraOssBaidu.getCreatedTime())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getUpdateTime()), SchisandraOssBaidu::getUpdateTime, schisandraOssBaidu.getUpdateTime())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getUpdateBy()), SchisandraOssBaidu::getUpdateBy, schisandraOssBaidu.getUpdateBy())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getIsDeleted()), SchisandraOssBaidu::getIsDeleted, schisandraOssBaidu.getIsDeleted())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getExtraJson()), SchisandraOssBaidu::getExtraJson, schisandraOssBaidu.getExtraJson())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getCreateBucket()), SchisandraOssBaidu::getCreateBucket, schisandraOssBaidu.getCreateBucket())
|
||||
.eq(Objects.nonNull(schisandraOssBaidu.getCheckBucket()), SchisandraOssBaidu::getCheckBucket, schisandraOssBaidu.getCheckBucket())
|
||||
;
|
||||
return schisandraOssBaiduDao.selectOne(queryWrapper);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,18 +1,15 @@
|
||||
package com.schisandra.oss.infra.basic.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
|
||||
import com.schisandra.oss.infra.basic.dao.SchisandraOssMinioDao;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraOssMinio;
|
||||
import com.schisandra.oss.infra.basic.entity.table.SchisandraOssMinioTableDef;
|
||||
import com.schisandra.oss.infra.basic.service.SchisandraOssMinioService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 表服务实现类
|
||||
@@ -23,8 +20,7 @@ import java.util.Objects;
|
||||
@Service("SchisandraOssMinioService")
|
||||
@EnableAspectJAutoProxy(proxyTargetClass = true)
|
||||
public class SchisandraOssMinioServiceImpl implements SchisandraOssMinioService {
|
||||
@Autowired
|
||||
SchisandraOssMinioServiceImpl schisandraOssMinioService;
|
||||
|
||||
|
||||
@Resource
|
||||
private SchisandraOssMinioDao schisandraOssMinioDao;
|
||||
@@ -37,7 +33,7 @@ public class SchisandraOssMinioServiceImpl implements SchisandraOssMinioService
|
||||
*/
|
||||
@Override
|
||||
public SchisandraOssMinio queryById(Long id) {
|
||||
return this.schisandraOssMinioDao.selectById(id);
|
||||
return this.schisandraOssMinioDao.selectOneById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,14 +55,9 @@ public class SchisandraOssMinioServiceImpl implements SchisandraOssMinioService
|
||||
*/
|
||||
@Override
|
||||
public int update(SchisandraOssMinio schisandraOssMinio) {
|
||||
// ApplicationContext applicationContext=null;
|
||||
// Service service=applicationContext.getBean(Service.class);
|
||||
// final SchisandraOssMinioService bean=context.getBean(SchisandraOssMinioService.class);
|
||||
// return bean.update(schisandraOssMinio);
|
||||
return this.schisandraOssMinioDao.updateById(schisandraOssMinio);
|
||||
// eById(schisandraOssMinio);
|
||||
|
||||
// return schisandraOssMinioDao.update(schisandraOssMinio);
|
||||
return this.schisandraOssMinioDao.update(schisandraOssMinio, true);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,65 +71,15 @@ public class SchisandraOssMinioServiceImpl implements SchisandraOssMinioService
|
||||
return this.schisandraOssMinioDao.deleteById(id) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @param schisandraOssMinio 条件
|
||||
* @return 实例对象
|
||||
*/
|
||||
@Override
|
||||
public SchisandraOssMinio queryByCondition(SchisandraOssMinio schisandraOssMinio) {
|
||||
|
||||
LambdaQueryWrapper<SchisandraOssMinio> queryWrapper = Wrappers.<SchisandraOssMinio>lambdaQuery()
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getId()), SchisandraOssMinio::getId, schisandraOssMinio.getId())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getUserId()), SchisandraOssMinio::getUserId, schisandraOssMinio.getUserId())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getEndpoint()), SchisandraOssMinio::getEndpoint, schisandraOssMinio.getEndpoint())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getAccessKey()), SchisandraOssMinio::getAccessKey, schisandraOssMinio.getAccessKey())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getSecretKey()), SchisandraOssMinio::getSecretKey, schisandraOssMinio.getSecretKey())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getBucketName()), SchisandraOssMinio::getBucketName, schisandraOssMinio.getBucketName())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getPort()), SchisandraOssMinio::getPort, schisandraOssMinio.getPort())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getBasePath()), SchisandraOssMinio::getBasePath, schisandraOssMinio.getBasePath())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getFileHost()), SchisandraOssMinio::getFileHost, schisandraOssMinio.getFileHost())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getDownloadHost()), SchisandraOssMinio::getDownloadHost, schisandraOssMinio.getDownloadHost())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getUploadHost()), SchisandraOssMinio::getUploadHost, schisandraOssMinio.getUploadHost())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getCreateBucket()), SchisandraOssMinio::getCreateBucket, schisandraOssMinio.getCreateBucket())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getCheckBucket()), SchisandraOssMinio::getCheckBucket, schisandraOssMinio.getCheckBucket())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getConnectTimeout()), SchisandraOssMinio::getConnectTimeout, schisandraOssMinio.getConnectTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getWriteTimeout()), SchisandraOssMinio::getWriteTimeout, schisandraOssMinio.getWriteTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getReadTimeout()), SchisandraOssMinio::getReadTimeout, schisandraOssMinio.getReadTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getCallTimeout()), SchisandraOssMinio::getCallTimeout, schisandraOssMinio.getCallTimeout())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getFollowRedirects()), SchisandraOssMinio::getFollowRedirects, schisandraOssMinio.getFollowRedirects())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getFollowSslRedirects()), SchisandraOssMinio::getFollowSslRedirects, schisandraOssMinio.getFollowSslRedirects())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getRetryOnConnectionFailure()), SchisandraOssMinio::getRetryOnConnectionFailure, schisandraOssMinio.getRetryOnConnectionFailure())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getPingInterval()), SchisandraOssMinio::getPingInterval, schisandraOssMinio.getPingInterval())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getPartSize()), SchisandraOssMinio::getPartSize, schisandraOssMinio.getPartSize())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getTaskNum()), SchisandraOssMinio::getTaskNum, schisandraOssMinio.getTaskNum())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getImgSize()), SchisandraOssMinio::getImgSize, schisandraOssMinio.getImgSize())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getFileSize()), SchisandraOssMinio::getFileSize, schisandraOssMinio.getFileSize())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getExtraJson()), SchisandraOssMinio::getExtraJson, schisandraOssMinio.getExtraJson())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getStatus()), SchisandraOssMinio::getStatus, schisandraOssMinio.getStatus())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getCreatedBy()), SchisandraOssMinio::getCreatedBy, schisandraOssMinio.getCreatedBy())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getCreatedTime()), SchisandraOssMinio::getCreatedTime, schisandraOssMinio.getCreatedTime())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getUpdateTime()), SchisandraOssMinio::getUpdateTime, schisandraOssMinio.getUpdateTime())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getUpdateBy()), SchisandraOssMinio::getUpdateBy, schisandraOssMinio.getUpdateBy())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getIsDeleted()), SchisandraOssMinio::getIsDeleted, schisandraOssMinio.getIsDeleted())
|
||||
.eq(Objects.nonNull(schisandraOssMinio.getOpenAdvancedSetup()), SchisandraOssMinio::getOpenAdvancedSetup, schisandraOssMinio.getOpenAdvancedSetup());
|
||||
return schisandraOssMinioDao.selectOne(queryWrapper);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public SchisandraOssMinio getMinioConfig(Long userId) {
|
||||
return schisandraOssMinioDao.selectOne(new QueryWrapper<SchisandraOssMinio>
|
||||
()
|
||||
.eq("user_id", userId)
|
||||
.eq("is_deleted", 0));
|
||||
return schisandraOssMinioDao.selectOneByCondition(SchisandraOssMinioTableDef.SCHISANDRA_OSS_MINIO.USER_ID.eq(userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchisandraOssMinio> getAllMinioInfo() {
|
||||
return schisandraOssMinioDao.selectList(new QueryWrapper<SchisandraOssMinio>()
|
||||
.eq("is_deleted", 0));
|
||||
return schisandraOssMinioDao.selectAll();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,33 @@
|
||||
package com.schisandra.oss.infra.config;
|
||||
|
||||
import com.mybatisflex.core.audit.AuditManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @Classname MyBatisFlexConfiguration
|
||||
* @BelongsProject: schisandra-cloud-storage
|
||||
* @BelongsPackage: com.schisandra.oss.infra.config
|
||||
* @Author: landaiqing
|
||||
* @CreateTime: 2024-05-31 16:14
|
||||
* @Description: Mybatis flex 配置类
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Configuration
|
||||
public class MyBatisFlexConfiguration {
|
||||
private static final Logger logger = LoggerFactory
|
||||
.getLogger("mybatis-flex-sql");
|
||||
|
||||
|
||||
public MyBatisFlexConfiguration() {
|
||||
//开启审计功能
|
||||
AuditManager.setAuditEnable(true);
|
||||
|
||||
//设置 SQL 审计收集器
|
||||
AuditManager.setMessageCollector(auditMessage ->
|
||||
logger.info("{},{}ms", auditMessage.getFullSql()
|
||||
, auditMessage.getElapsedTime())
|
||||
);
|
||||
}
|
||||
}
|
@@ -1,17 +0,0 @@
|
||||
package com.schisandra.oss.infra.config;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class MybatisConfiguration {
|
||||
|
||||
@Bean
|
||||
public MybatisPlusInterceptor mybatisPlusInterceptor(){
|
||||
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
|
||||
mybatisPlusInterceptor.addInnerInterceptor(new MybatisPlusAllSqlLog());
|
||||
return mybatisPlusInterceptor;
|
||||
}
|
||||
|
||||
}
|
@@ -1,116 +0,0 @@
|
||||
package com.schisandra.oss.infra.config;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
|
||||
import org.apache.ibatis.executor.Executor;
|
||||
import org.apache.ibatis.mapping.BoundSql;
|
||||
import org.apache.ibatis.mapping.MappedStatement;
|
||||
import org.apache.ibatis.mapping.ParameterMapping;
|
||||
import org.apache.ibatis.reflection.MetaObject;
|
||||
import org.apache.ibatis.session.Configuration;
|
||||
import org.apache.ibatis.session.ResultHandler;
|
||||
import org.apache.ibatis.session.RowBounds;
|
||||
import org.apache.ibatis.type.TypeHandlerRegistry;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
public class MybatisPlusAllSqlLog implements InnerInterceptor {
|
||||
public static final Logger log = LoggerFactory.getLogger("sys-sql");
|
||||
|
||||
@Override
|
||||
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
|
||||
logInfo(boundSql, ms, parameter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeUpdate(Executor executor, MappedStatement ms, Object parameter) throws SQLException {
|
||||
BoundSql boundSql = ms.getBoundSql(parameter);
|
||||
logInfo(boundSql, ms, parameter);
|
||||
}
|
||||
|
||||
private static void logInfo(BoundSql boundSql, MappedStatement ms, Object parameter) {
|
||||
try {
|
||||
log.info("parameter = " + parameter);
|
||||
// 获取到节点的id,即sql语句的id
|
||||
String sqlId = ms.getId();
|
||||
log.info("sqlId = " + sqlId);
|
||||
// 获取节点的配置
|
||||
Configuration configuration = ms.getConfiguration();
|
||||
// 获取到最终的sql语句
|
||||
String sql = getSql(configuration, boundSql, sqlId);
|
||||
log.info("完整的sql:{}", sql);
|
||||
} catch (Exception e) {
|
||||
log.error("异常:{}", e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
// 封装了一下sql语句,使得结果返回完整xml路径下的sql语句节点id + sql语句
|
||||
public static String getSql(Configuration configuration, BoundSql boundSql, String sqlId) {
|
||||
return sqlId + ":" + showSql(configuration, boundSql);
|
||||
}
|
||||
|
||||
// 进行?的替换
|
||||
public static String showSql(Configuration configuration, BoundSql boundSql) {
|
||||
// 获取参数
|
||||
Object parameterObject = boundSql.getParameterObject();
|
||||
List<ParameterMapping> parameterMappings = boundSql.getParameterMappings();
|
||||
// sql语句中多个空格都用一个空格代替
|
||||
String sql = boundSql.getSql().replaceAll("[\\s]+", " ");
|
||||
if (!CollectionUtils.isEmpty(parameterMappings) && parameterObject != null) {
|
||||
// 获取类型处理器注册器,类型处理器的功能是进行java类型和数据库类型的转换
|
||||
TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry();
|
||||
// 如果根据parameterObject.getClass()可以找到对应的类型,则替换
|
||||
if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) {
|
||||
sql = sql.replaceFirst("\\?",
|
||||
Matcher.quoteReplacement(getParameterValue(parameterObject)));
|
||||
} else {
|
||||
// MetaObject主要是封装了originalObject对象,提供了get和set的方法用于获取和设置originalObject的属性值,主要支持对JavaBean、Collection、Map三种类型对象的操作
|
||||
MetaObject metaObject = configuration.newMetaObject(parameterObject);
|
||||
for (ParameterMapping parameterMapping : parameterMappings) {
|
||||
String propertyName = parameterMapping.getProperty();
|
||||
if (metaObject.hasGetter(propertyName)) {
|
||||
Object obj = metaObject.getValue(propertyName);
|
||||
sql = sql.replaceFirst("\\?",
|
||||
Matcher.quoteReplacement(getParameterValue(obj)));
|
||||
} else if (boundSql.hasAdditionalParameter(propertyName)) {
|
||||
// 该分支是动态sql
|
||||
Object obj = boundSql.getAdditionalParameter(propertyName);
|
||||
sql = sql.replaceFirst("\\?",
|
||||
Matcher.quoteReplacement(getParameterValue(obj)));
|
||||
} else {
|
||||
// 打印出缺失,提醒该参数缺失并防止错位
|
||||
sql = sql.replaceFirst("\\?", "缺失");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return sql;
|
||||
}
|
||||
|
||||
// 如果参数是String,则添加单引号, 如果是日期,则转换为时间格式器并加单引号; 对参数是null和不是null的情况作了处理
|
||||
private static String getParameterValue(Object obj) {
|
||||
String value;
|
||||
if (obj instanceof String) {
|
||||
value = "'" + obj.toString() + "'";
|
||||
} else if (obj instanceof Date) {
|
||||
DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,
|
||||
DateFormat.DEFAULT, Locale.CHINA);
|
||||
value = "'" + formatter.format(new Date()) + "'";
|
||||
} else {
|
||||
if (obj != null) {
|
||||
value = obj.toString();
|
||||
} else {
|
||||
value = "";
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
@@ -1,52 +0,0 @@
|
||||
package com.schisandra.oss.infra.config;
|
||||
|
||||
import org.apache.ibatis.cache.CacheKey;
|
||||
import org.apache.ibatis.executor.Executor;
|
||||
import org.apache.ibatis.mapping.BoundSql;
|
||||
import org.apache.ibatis.mapping.MappedStatement;
|
||||
import org.apache.ibatis.plugin.*;
|
||||
import org.apache.ibatis.session.ResultHandler;
|
||||
import org.apache.ibatis.session.RowBounds;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
|
||||
@Intercepts({
|
||||
@Signature(type = Executor.class, method = "update", args = {MappedStatement.class,
|
||||
Object.class}),
|
||||
@Signature(type = Executor.class, method = "query", args = {MappedStatement.class,
|
||||
Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class})})
|
||||
public class SqlStatementInterceptor implements Interceptor {
|
||||
|
||||
public static final Logger log = LoggerFactory.getLogger("sys-sql");
|
||||
|
||||
@Override
|
||||
public Object intercept(Invocation invocation) throws Throwable {
|
||||
long startTime = System.currentTimeMillis();
|
||||
try {
|
||||
return invocation.proceed();
|
||||
} finally {
|
||||
long timeConsuming = System.currentTimeMillis() - startTime;
|
||||
log.info("执行SQL:{}ms", timeConsuming);
|
||||
if (timeConsuming > 999 && timeConsuming < 5000) {
|
||||
log.info("执行SQL大于1s:{}ms", timeConsuming);
|
||||
} else if (timeConsuming >= 5000 && timeConsuming < 10000) {
|
||||
log.info("执行SQL大于5s:{}ms", timeConsuming);
|
||||
} else if (timeConsuming >= 10000) {
|
||||
log.info("执行SQL大于10s:{}ms", timeConsuming);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object plugin(Object target) {
|
||||
return Plugin.wrap(target, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProperties(Properties properties) {
|
||||
|
||||
}
|
||||
}
|
@@ -137,6 +137,11 @@
|
||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>com.mybatis-flex</groupId>
|
||||
<artifactId>mybatis-flex-processor</artifactId>
|
||||
<version>1.9.0</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@@ -4,7 +4,6 @@ import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||
|
||||
/**
|
||||
* 存储微服务启动类
|
||||
|
@@ -52,8 +52,14 @@ spring:
|
||||
publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANUVxjcrVoirBZaNmDrUqatHEW4FOHbO5ynW6zvhIbRMo6hEFGgglbURkjuHOlgEduxJVz6Xa+sG+FMrxTguOJECAwEAAQ==
|
||||
logging:
|
||||
config: classpath:log4j2-spring.xml
|
||||
# mybatis-plus日志
|
||||
mybatis-plus:
|
||||
mybatis-flex:
|
||||
global-config:
|
||||
banner: false
|
||||
print-banner: false
|
||||
key-config:
|
||||
key-type: auto
|
||||
normal-value-of-logic-delete: 0
|
||||
deleted-value-of-logic-delete: 1
|
||||
logic-delete-column: is_deleted
|
||||
mapper-locations:
|
||||
- "classpath*:/mapper/**/*.xml"
|
||||
|
||||
|
Reference in New Issue
Block a user