feat: mybatis-plus --> mybatis-flex

This commit is contained in:
landaiqing
2024-05-31 17:07:30 +08:00
parent 7ccf2582f1
commit cb316f6a29
97 changed files with 687 additions and 2109 deletions

View File

@@ -0,0 +1,3 @@
processor.enable=true
processor.allInTables.enable=false
processor.allInTables.package=com.schisandra.oss

View File

@@ -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>

View File

@@ -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;
}
}

View File

@@ -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();
}
}
}

View File

@@ -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 {
}

View File

@@ -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 {
}

View File

@@ -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 {
}

View File

@@ -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) {

View File

@@ -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;
/**

View File

@@ -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));

View File

@@ -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删除Buckettrue删除成功 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 ******************************/
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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到HTTPSHTTPS到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;
}

View File

@@ -43,10 +43,6 @@ public interface SchisandraOssAliService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraOssAli queryByCondition(SchisandraOssAli schisandraOssAli);
SchisandraOssAli getAliOssConfig(Long userId);
}

View File

@@ -42,9 +42,6 @@ public interface SchisandraOssBaiduService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraOssBaidu queryByCondition(SchisandraOssBaidu schisandraOssBaidu);
}

View File

@@ -46,10 +46,6 @@ public interface SchisandraOssMinioService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraOssMinio queryByCondition(SchisandraOssMinio schisandraOssMinio);
SchisandraOssMinio getMinioConfig(Long userId);

View File

@@ -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));
}
}

View File

@@ -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);
}
}

View File

@@ -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();
}
}

View File

@@ -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())
);
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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) {
}
}

View File

@@ -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>

View File

@@ -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;
/**
* 存储微服务启动类

View File

@@ -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"