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

@@ -37,6 +37,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,14 +1,11 @@
package com.schisandra.auth.application.config;
import cn.dev33.satoken.interceptor.SaInterceptor;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.util.List;

View File

@@ -80,22 +80,29 @@ public class SchisandraAuthUserController {
}
}
/**
* @description: 用户登录
* @param: [schisandraAuthUserDTO]
* @return: com.schisandra.auth.common.entity.Result
* @author: landaiqing
* @date: 2024/5/31 1:19
*/
@PostMapping("login")
public Result login(@RequestBody SchisandraAuthUserDTO schisandraAuthUserDTO) {
HashMap<String, Object> map = new HashMap<>();
SchisandraAuthUserBO schisandraAuthUserBO=SchisandraAuthUserDTOConverter.INSTANCE.convertDTOToBO(schisandraAuthUserDTO);
SchisandraAuthUserDTO schisandraAuthUserDTO1=SchisandraAuthUserDTOConverter.INSTANCE.convertBOToDTO(schisandraAuthUserDomainService.login(schisandraAuthUserBO));
map.put("user",schisandraAuthUserDTO1);
if(schisandraAuthUserDTO1!=null){
if (StpUtil.isLogin(schisandraAuthUserDTO1.getId())){
StpUtil.logout(schisandraAuthUserDTO1.getId());
StpUtil.login(schisandraAuthUserDTO1.getId());
String token=StpUtil.getTokenValueByLoginId(schisandraAuthUserDTO1.getId());
SchisandraAuthUserDTO result=SchisandraAuthUserDTOConverter.INSTANCE.convertBOToDTO(schisandraAuthUserDomainService.login(schisandraAuthUserBO));
map.put("user",result);
if(result!=null){
if (StpUtil.isLogin(result.getId())){
StpUtil.logout(result.getId());
StpUtil.login(result.getId());
String token=StpUtil.getTokenValueByLoginId(result.getId());
map.put("token",token);
return Result.ok(map);
}else {
StpUtil.login(schisandraAuthUserDTO1.getId());
return Result.ok(schisandraAuthUserDTO1);
StpUtil.login(result.getId());
return Result.ok(result);
}
}else{
return Result.fail("用户名或密码错误");}

View File

@@ -12,7 +12,6 @@ import java.io.Serializable;
* @since 2024-04-17 12:05:46
*/
@Data
//@Builder
public class SchisandraAuthPermissionDTO implements Serializable {
private Long id;

View File

@@ -16,7 +16,6 @@ import java.util.Date;
* @Version: v1.0
*/
@Data
//@Builder
public class SchisandraAuthRoleDTO implements Serializable {
/**
* id

View File

@@ -36,6 +36,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,6 +1,5 @@
package com.schisandra.auth.domain.bo;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
@@ -54,8 +53,5 @@ SchisandraAuthPermissionBO implements Serializable {
private Integer isDeleted;
}

View File

@@ -18,7 +18,6 @@ import java.util.Date;
* @Version: v1.0
*/
@Data
//@Builder
public class SchisandraAuthRoleBO implements Serializable {
/**
* id

View File

@@ -8,7 +8,6 @@ import com.schisandra.auth.common.entity.Result;
import com.schisandra.auth.common.enums.IsDeletedFlagEnum;
import com.schisandra.auth.common.enums.UserRoleEnum;
import com.schisandra.auth.common.enums.UserStatusEnum;
import com.schisandra.auth.common.redis.RedisUtil;
import com.schisandra.auth.domain.bo.SchisandraAuthSocialUserBO;
import com.schisandra.auth.domain.bo.SchisandraAuthSocialUserMapperBO;
import com.schisandra.auth.domain.bo.SchisandraAuthUserBO;
@@ -82,6 +81,13 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
}
/**
* @description: 登录
* @param: [schisandraAuthUserBO]
* @return: com.schisandra.auth.domain.bo.SchisandraAuthUserBO
* @author: landaiqing
* @date: 2024/5/31 1:22
*/
@Override
public SchisandraAuthUserBO login(SchisandraAuthUserBO schisandraAuthUserBO) {
@@ -211,7 +217,7 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
}
SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper = new SchisandraAuthSocialUserMapper();
schisandraAuthSocialUserMapper.setSocialUserId(authSocialUser.getId());
SchisandraAuthSocialUserMapper result = schisandraAuthSocialUserMapperService.queryByCondition(schisandraAuthSocialUserMapper);
SchisandraAuthSocialUserMapper result = schisandraAuthSocialUserMapperService.queryBySocialUserId(schisandraAuthSocialUserMapper);
if (ObjectUtils.isEmpty(result)) {
if (log.isInfoEnabled()) {
log.error("schisandraAuthSocialUserMapperService.queryByCondition fail, param:{}", JSONObject.toJSONString(schisandraAuthSocialUserMapper));

View File

@@ -36,11 +36,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

@@ -3,6 +3,7 @@ package com.schisandra.auth.infra.basic.dao;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthPermission;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -12,6 +13,7 @@ import java.util.List;
* @author makejava
* @since 2024-04-11 13:00:10
*/
@Repository
public interface SchisandraAuthPermissionDao {
/**

View File

@@ -3,6 +3,7 @@ package com.schisandra.auth.infra.basic.dao;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthRole;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -12,6 +13,7 @@ import java.util.List;
* @author makejava
* @since 2024-03-22 21:35:31
*/
@Repository
public interface SchisandraAuthRoleDao {
/**

View File

@@ -1,7 +1,7 @@
package com.schisandra.auth.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthSocialUser;
import org.springframework.stereotype.Repository;

View File

@@ -1,7 +1,7 @@
package com.schisandra.auth.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthSocialUserMapper;
import org.springframework.stereotype.Repository;

View File

@@ -1,6 +1,6 @@
package com.schisandra.auth.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser;
import org.springframework.stereotype.Repository;

View File

@@ -1,6 +1,6 @@
package com.schisandra.auth.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthUserRole;
import org.springframework.stereotype.Repository;

View File

@@ -3,6 +3,7 @@ package com.schisandra.auth.infra.basic.dao;
import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -12,6 +13,7 @@ import java.util.List;
* @author makejava
* @since 2024-05-11 15:47:58
*/
@Repository
public interface SchisandraSmsConfigDao {
/**

View File

@@ -1,5 +1,7 @@
package com.schisandra.auth.infra.basic.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import java.util.Date;
@@ -14,7 +16,7 @@ import java.io.Serializable;
@Data
public class SchisandraAuthPermission implements Serializable {
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
private String name;

View File

@@ -1,5 +1,7 @@
package com.schisandra.auth.infra.basic.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import java.util.Date;
@@ -17,6 +19,7 @@ public class SchisandraAuthRole implements Serializable {
/**
* id
*/
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**

View File

@@ -1,10 +1,10 @@
package com.schisandra.auth.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;
@@ -16,151 +16,151 @@ import java.util.Date;
* @since 2024-05-23 20:07:57
*/
@Data
@TableName("schisandra_auth_social_user")
@Table("schisandra_auth_social_user")
public class SchisandraAuthSocialUser implements Serializable {
/**
*
*/
@TableId(value = "`id`", type = IdType.AUTO)
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 第三方系统的唯一ID
*/
@TableField("`uuid`")
@Column("uuid")
private String uuid;
/**
* 第三方用户来源
*/
@TableField("`source`")
@Column("source")
private String source;
/**
* 用户的授权令牌
*/
@TableField("`access_token`")
@Column("access_token")
private String accessToken;
/**
* 第三方用户的授权令牌的有效期
*/
@TableField("`expire_in`")
@Column("expire_in")
private Integer expireIn;
/**
* 刷新令牌
*/
@TableField("`refresh_token`")
@Column("refresh_token")
private String refreshToken;
/**
* 第三方用户的 open id
*/
@TableField("`open_id`")
@Column("open_id")
private String openId;
/**
* 第三方用户的 ID
*/
@TableField("`uid`")
@Column("uid")
private String uid;
/**
* 个别平台的授权信息
*/
@TableField("`access_code`")
@Column("access_code")
private String accessCode;
/**
* 第三方用户的 union id
*/
@TableField("`union_id`")
@Column("union_id")
private String unionId;
/**
* 第三方用户授予的权限
*/
@TableField("`scope`")
@Column("scope")
private String scope;
/**
* 个别平台的授权信息
*/
@TableField("`token_type`")
@Column("token_type")
private String tokenType;
/**
* id token
*/
@TableField("`id_token`")
@Column("id_token")
private String idToken;
/**
* 小米平台用户的附带属性
*/
@TableField("`mac_algorithm`")
@Column("mac_algorithm")
private String macAlgorithm;
/**
* 小米平台用户的附带属性
*/
@TableField("`mac_key`")
@Column("mac_key")
private String macKey;
/**
* 用户的授权code
*/
@TableField("`code`")
@Column("code")
private String code;
/**
* Twitter平台用户的附带属性
*/
@TableField("`oauth_token`")
@Column("oauth_token")
private String oauthToken;
/**
* Twitter平台用户的附带属性
*/
@TableField("`oauth_token_secret`")
@Column("oauth_token_secret")
private String oauthTokenSecret;
/**
* 状态
*/
@TableField("`status`")
@Column("status")
private Integer status;
/**
* 创建人
*/
@TableField("`created_by`")
@Column("created_by")
private String createdBy;
/**
* 创建时间
*/
@TableField("`created_time`")
@Column("created_time")
private Date createdTime;
/**
* 更新人
*/
@TableField("`update_by`")
@Column("update_by")
private String updateBy;
/**
* 更新时间
*/
@TableField("`update_time`")
@Column("update_time")
private Date updateTime;
/**
* 是否删除
*/
@TableField("`is_deleted`")
@Column("is_deleted")
private Integer isDeleted;
}

View File

@@ -1,10 +1,10 @@
package com.schisandra.auth.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;
@@ -16,55 +16,55 @@ import java.util.Date;
* @since 2024-05-23 20:13:10
*/
@Data
@TableName("schisandra_auth_social_user_mapper")
@Table("schisandra_auth_social_user_mapper")
public class SchisandraAuthSocialUserMapper implements Serializable {
/**
*
*/
@TableId(value = "`id`", type = IdType.AUTO)
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 系统用户ID
*/
@TableField("`user_id`")
@Column("user_id")
private Long userId;
/**
* 社会化用户ID
*/
@TableField("`social_user_id`")
@Column("social_user_id")
private Long socialUserId;
/**
* 创建人
*/
@TableField("`created_by`")
@Column("created_by")
private String createdBy;
/**
* 创建时间
*/
@TableField("`created_time`")
@Column("created_time")
private Date createdTime;
/**
* 更新人
*/
@TableField("`update_by`")
@Column("update_by")
private String updateBy;
/**
* 更新时间
*/
@TableField("`update_time`")
@Column("update_time")
private Date updateTime;
/**
*
*/
@TableField("`is_deleted`")
@Column("is_deleted")
private Integer isDeleted;
}

View File

@@ -1,10 +1,10 @@
package com.schisandra.auth.infra.basic.entity;
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 com.schisandra.auth.infra.interceptor.EncryptInterceptor;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.io.Serializable;
@@ -17,123 +17,123 @@ import java.util.Date;
* @since 2024-05-23 20:00:28
*/
@Data
@TableName(value = "schisandra_auth_user",autoResultMap = true)
@Table(value = "schisandra_auth_user")
public class SchisandraAuthUser implements Serializable {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
*
*/
@TableField(value = "`user_name`")
@Column(value = "user_name")
private String userName;
/**
*
*/
@TableField("`nick_name`")
@Column("nick_name")
private String nickName;
/**
*
*/
@TableField("`email`")
@Column("email")
private String email;
/**
*
*/
@TableField("`phone`")
@Column("phone")
private String phone;
/**
*
*/
@TableField(value = "`password`",typeHandler = EncryptInterceptor.class)
@Column(value = "password")
private String password;
/**
*
*/
@TableField("`gender`")
@Column("gender")
private String gender;
/**
*
*/
@TableField("`avatar`")
@Column("avatar")
private String avatar;
/**
*
*/
@TableField("`status`")
@Column("status")
private Integer status;
/**
*
*/
@TableField("`introduce`")
@Column("introduce")
private String introduce;
/**
*
*/
@TableField("`ext_json`")
@Column("ext_json")
private String extJson;
/**
* 创建人
*/
@TableField("`created_by`")
@Column("created_by")
private String createdBy;
/**
* 创建时间
*/
@TableField("`created_time`")
@Column("created_time")
private Date createdTime;
/**
* 更新人
*/
@TableField("`update_by`")
@Column("update_by")
private String updateBy;
/**
* 更新时间
*/
@TableField("`update_time`")
@Column("update_time")
private Date updateTime;
/**
*
*/
@TableField("`is_deleted`")
@Column("is_deleted")
private Integer isDeleted;
/**
*
*/
@TableField("`blog`")
@Column("blog")
private String blog;
/**
*
*/
@TableField("`location`")
@Column("location")
private String location;
/**
*
*/
@TableField("`company`")
@Column("company")
private String company;
}

View File

@@ -1,9 +1,10 @@
package com.schisandra.auth.infra.basic.entity;
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 com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.io.Serializable;
@@ -16,55 +17,55 @@ import java.util.Date;
* @since 2024-05-25 18:05:40
*/
@Data
@TableName("schisandra_auth_user_role")
@Table("schisandra_auth_user_role")
public class SchisandraAuthUserRole 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("`role_id`")
@Column("role_id")
private Long roleId;
/**
* 创建人
*/
@TableField("`created_by`")
@Column("created_by")
private String createdBy;
/**
* 创建时间
*/
@TableField("`created_time`")
@Column("created_time")
private Date createdTime;
/**
* 更新人
*/
@TableField("`update_by`")
@Column("update_by")
private String updateBy;
/**
* 更新时间
*/
@TableField("`update_time`")
@Column("update_time")
private Date updateTime;
/**
*
*/
@TableField("`is_deleted`")
@Column("is_deleted")
private Integer isDeleted;
}

View File

@@ -1,5 +1,7 @@
package com.schisandra.auth.infra.basic.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import java.util.Date;
@@ -17,6 +19,7 @@ public class SchisandraSmsConfig implements Serializable {
/**
* id
*/
@Id(value = "id", keyType = KeyType.Auto)
private Integer id;
/**
* 配置id

View File

@@ -45,7 +45,7 @@ public interface SchisandraAuthSocialUserMapperService {
/**
* 根据条件查询角色
*/
SchisandraAuthSocialUserMapper queryByCondition(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper);
SchisandraAuthSocialUserMapper queryBySocialUserId(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper);
int insertAuthSocialUserMapperByOauth(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper);
}

View File

@@ -42,10 +42,6 @@ public interface SchisandraAuthSocialUserService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraAuthSocialUser queryByCondition(SchisandraAuthSocialUser schisandraAuthSocialUser);
SchisandraAuthSocialUser selectByUuidAndType(String uuid,String type);

View File

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

View File

@@ -48,10 +48,6 @@ public interface SchisandraAuthUserService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraAuthUser queryByCondition(SchisandraAuthUser schisandraAuthUser);
int insertAuthUserByOauth(SchisandraAuthUser schisandraAuthUser);
}

View File

@@ -1,15 +1,13 @@
package com.schisandra.auth.infra.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.schisandra.auth.infra.basic.dao.SchisandraAuthSocialUserMapperDao;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthSocialUserMapper;
import com.schisandra.auth.infra.basic.entity.table.SchisandraAuthSocialUserMapperTableDef;
import com.schisandra.auth.infra.basic.service.SchisandraAuthSocialUserMapperService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 表服务实现类
@@ -31,7 +29,7 @@ public class SchisandraAuthSocialUserMapperServiceImpl implements SchisandraAuth
*/
@Override
public SchisandraAuthSocialUserMapper queryById(Long id) {
return this.schisandraAuthSocialUserMapperDao.selectById(id);
return this.schisandraAuthSocialUserMapperDao.selectOneById(id);
}
/**
@@ -53,7 +51,7 @@ public class SchisandraAuthSocialUserMapperServiceImpl implements SchisandraAuth
*/
@Override
public int update(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper) {
return this.schisandraAuthSocialUserMapperDao.updateById(schisandraAuthSocialUserMapper);
return this.schisandraAuthSocialUserMapperDao.update(schisandraAuthSocialUserMapper, true);
}
/**
@@ -74,25 +72,15 @@ public class SchisandraAuthSocialUserMapperServiceImpl implements SchisandraAuth
* @return 实例对象
*/
@Override
public SchisandraAuthSocialUserMapper queryByCondition(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper) {
public SchisandraAuthSocialUserMapper queryBySocialUserId(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper) {
LambdaQueryWrapper<SchisandraAuthSocialUserMapper> queryWrapper = Wrappers.<SchisandraAuthSocialUserMapper>lambdaQuery()
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getId()), SchisandraAuthSocialUserMapper::getId, schisandraAuthSocialUserMapper.getId())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getUserId()), SchisandraAuthSocialUserMapper::getUserId, schisandraAuthSocialUserMapper.getUserId())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getSocialUserId()), SchisandraAuthSocialUserMapper::getSocialUserId, schisandraAuthSocialUserMapper.getSocialUserId())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getCreatedBy()), SchisandraAuthSocialUserMapper::getCreatedBy, schisandraAuthSocialUserMapper.getCreatedBy())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getCreatedTime()), SchisandraAuthSocialUserMapper::getCreatedTime, schisandraAuthSocialUserMapper.getCreatedTime())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getUpdateBy()), SchisandraAuthSocialUserMapper::getUpdateBy, schisandraAuthSocialUserMapper.getUpdateBy())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getUpdateTime()), SchisandraAuthSocialUserMapper::getUpdateTime, schisandraAuthSocialUserMapper.getUpdateTime())
.eq(Objects.nonNull(schisandraAuthSocialUserMapper.getIsDeleted()), SchisandraAuthSocialUserMapper::getIsDeleted, schisandraAuthSocialUserMapper.getIsDeleted())
;
return schisandraAuthSocialUserMapperDao.selectOne(queryWrapper);
return schisandraAuthSocialUserMapperDao.selectOneByCondition(SchisandraAuthSocialUserMapperTableDef.SCHISANDRA_AUTH_SOCIAL_USER_MAPPER.SOCIAL_USER_ID.eq(schisandraAuthSocialUserMapper.getSocialUserId()));
}
@Override
public int insertAuthSocialUserMapperByOauth(SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper) {
return schisandraAuthSocialUserMapperDao.insert(schisandraAuthSocialUserMapper);
return schisandraAuthSocialUserMapperDao.insert(schisandraAuthSocialUserMapper, true);
}
}

View File

@@ -1,17 +1,13 @@
package com.schisandra.auth.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.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.schisandra.auth.infra.basic.dao.SchisandraAuthSocialUserDao;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthSocialUser;
import com.schisandra.auth.infra.basic.entity.table.SchisandraAuthSocialUserTableDef;
import com.schisandra.auth.infra.basic.service.SchisandraAuthSocialUserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 表服务实现类
@@ -33,7 +29,7 @@ public class SchisandraAuthSocialUserServiceImpl implements SchisandraAuthSocial
*/
@Override
public SchisandraAuthSocialUser queryById(Long id) {
return this.schisandraAuthSocialUserDao.selectById(id);
return this.schisandraAuthSocialUserDao.selectOneById(id);
}
/**
@@ -55,7 +51,7 @@ public class SchisandraAuthSocialUserServiceImpl implements SchisandraAuthSocial
*/
@Override
public int update(SchisandraAuthSocialUser schisandraAuthSocialUser) {
return this.schisandraAuthSocialUserDao.updateById(schisandraAuthSocialUser);
return this.schisandraAuthSocialUserDao.update(schisandraAuthSocialUser, true);
}
/**
@@ -69,48 +65,13 @@ public class SchisandraAuthSocialUserServiceImpl implements SchisandraAuthSocial
return this.schisandraAuthSocialUserDao.deleteById(id) > 0;
}
/**
* 条件查询
*
* @param schisandraAuthSocialUser 条件
* @return 实例对象
*/
@Override
public SchisandraAuthSocialUser queryByCondition(SchisandraAuthSocialUser schisandraAuthSocialUser) {
LambdaQueryWrapper<SchisandraAuthSocialUser> queryWrapper = Wrappers.<SchisandraAuthSocialUser>lambdaQuery()
.eq(Objects.nonNull(schisandraAuthSocialUser.getId()), SchisandraAuthSocialUser::getId, schisandraAuthSocialUser.getId())
.eq(Objects.nonNull(schisandraAuthSocialUser.getUuid()), SchisandraAuthSocialUser::getUuid, schisandraAuthSocialUser.getUuid())
.eq(Objects.nonNull(schisandraAuthSocialUser.getSource()), SchisandraAuthSocialUser::getSource, schisandraAuthSocialUser.getSource())
.eq(Objects.nonNull(schisandraAuthSocialUser.getAccessToken()), SchisandraAuthSocialUser::getAccessToken, schisandraAuthSocialUser.getAccessToken())
.eq(Objects.nonNull(schisandraAuthSocialUser.getExpireIn()), SchisandraAuthSocialUser::getExpireIn, schisandraAuthSocialUser.getExpireIn())
.eq(Objects.nonNull(schisandraAuthSocialUser.getRefreshToken()), SchisandraAuthSocialUser::getRefreshToken, schisandraAuthSocialUser.getRefreshToken())
.eq(Objects.nonNull(schisandraAuthSocialUser.getOpenId()), SchisandraAuthSocialUser::getOpenId, schisandraAuthSocialUser.getOpenId())
.eq(Objects.nonNull(schisandraAuthSocialUser.getUid()), SchisandraAuthSocialUser::getUid, schisandraAuthSocialUser.getUid())
.eq(Objects.nonNull(schisandraAuthSocialUser.getAccessCode()), SchisandraAuthSocialUser::getAccessCode, schisandraAuthSocialUser.getAccessCode())
.eq(Objects.nonNull(schisandraAuthSocialUser.getUnionId()), SchisandraAuthSocialUser::getUnionId, schisandraAuthSocialUser.getUnionId())
.eq(Objects.nonNull(schisandraAuthSocialUser.getScope()), SchisandraAuthSocialUser::getScope, schisandraAuthSocialUser.getScope())
.eq(Objects.nonNull(schisandraAuthSocialUser.getTokenType()), SchisandraAuthSocialUser::getTokenType, schisandraAuthSocialUser.getTokenType())
.eq(Objects.nonNull(schisandraAuthSocialUser.getIdToken()), SchisandraAuthSocialUser::getIdToken, schisandraAuthSocialUser.getIdToken())
.eq(Objects.nonNull(schisandraAuthSocialUser.getMacAlgorithm()), SchisandraAuthSocialUser::getMacAlgorithm, schisandraAuthSocialUser.getMacAlgorithm())
.eq(Objects.nonNull(schisandraAuthSocialUser.getMacKey()), SchisandraAuthSocialUser::getMacKey, schisandraAuthSocialUser.getMacKey())
.eq(Objects.nonNull(schisandraAuthSocialUser.getCode()), SchisandraAuthSocialUser::getCode, schisandraAuthSocialUser.getCode())
.eq(Objects.nonNull(schisandraAuthSocialUser.getOauthToken()), SchisandraAuthSocialUser::getOauthToken, schisandraAuthSocialUser.getOauthToken())
.eq(Objects.nonNull(schisandraAuthSocialUser.getOauthTokenSecret()), SchisandraAuthSocialUser::getOauthTokenSecret, schisandraAuthSocialUser.getOauthTokenSecret())
.eq(Objects.nonNull(schisandraAuthSocialUser.getStatus()), SchisandraAuthSocialUser::getStatus, schisandraAuthSocialUser.getStatus())
.eq(Objects.nonNull(schisandraAuthSocialUser.getCreatedBy()), SchisandraAuthSocialUser::getCreatedBy, schisandraAuthSocialUser.getCreatedBy())
.eq(Objects.nonNull(schisandraAuthSocialUser.getCreatedTime()), SchisandraAuthSocialUser::getCreatedTime, schisandraAuthSocialUser.getCreatedTime())
.eq(Objects.nonNull(schisandraAuthSocialUser.getUpdateBy()), SchisandraAuthSocialUser::getUpdateBy, schisandraAuthSocialUser.getUpdateBy())
.eq(Objects.nonNull(schisandraAuthSocialUser.getUpdateTime()), SchisandraAuthSocialUser::getUpdateTime, schisandraAuthSocialUser.getUpdateTime())
.eq(Objects.nonNull(schisandraAuthSocialUser.getIsDeleted()), SchisandraAuthSocialUser::getIsDeleted, schisandraAuthSocialUser.getIsDeleted());
return schisandraAuthSocialUserDao.selectOne(queryWrapper);
}
@Override
public SchisandraAuthSocialUser selectByUuidAndType(String uuid, String type) {
return schisandraAuthSocialUserDao.selectOne(new QueryWrapper<SchisandraAuthSocialUser>()
.eq("uuid", uuid).eq("source", type).eq("is_deleted", 0));
return schisandraAuthSocialUserDao.selectOneByCondition(
SchisandraAuthSocialUserTableDef.SCHISANDRA_AUTH_SOCIAL_USER.UUID.eq(uuid)
.and(SchisandraAuthSocialUserTableDef.SCHISANDRA_AUTH_SOCIAL_USER.SOURCE.eq(type)
.and(SchisandraAuthSocialUserTableDef.SCHISANDRA_AUTH_SOCIAL_USER.IS_DELETED.eq(0))));
}
@Override
@@ -120,8 +81,7 @@ public class SchisandraAuthSocialUserServiceImpl implements SchisandraAuthSocial
@Override
public int updateByOauth(SchisandraAuthSocialUser schisandraAuthSocialUser) {
return schisandraAuthSocialUserDao.update(schisandraAuthSocialUser, new UpdateWrapper<SchisandraAuthSocialUser>()
.eq("id", schisandraAuthSocialUser.getId()).eq("is_deleted", 0));
return schisandraAuthSocialUserDao.update(schisandraAuthSocialUser, true);
}
}

View File

@@ -1,7 +1,6 @@
package com.schisandra.auth.infra.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.schisandra.auth.infra.basic.dao.SchisandraAuthUserRoleDao;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthUserRole;
import com.schisandra.auth.infra.basic.service.SchisandraAuthUserRoleService;
@@ -31,7 +30,7 @@ public class SchisandraAuthUserRoleServiceImpl implements SchisandraAuthUserRole
*/
@Override
public SchisandraAuthUserRole queryById(Long id) {
return this.schisandraAuthUserRoleDao.selectById(id);
return this.schisandraAuthUserRoleDao.selectOneById(id);
}
/**
@@ -53,7 +52,7 @@ public class SchisandraAuthUserRoleServiceImpl implements SchisandraAuthUserRole
*/
@Override
public int update(SchisandraAuthUserRole schisandraAuthUserRole) {
return this.schisandraAuthUserRoleDao.updateById(schisandraAuthUserRole);
return this.schisandraAuthUserRoleDao.update(schisandraAuthUserRole,true);
}
/**
@@ -67,27 +66,5 @@ public class SchisandraAuthUserRoleServiceImpl implements SchisandraAuthUserRole
return this.schisandraAuthUserRoleDao.deleteById(id) > 0;
}
/**
* 条件查询
*
* @param schisandraAuthUserRole 条件
* @return 实例对象
*/
@Override
public SchisandraAuthUserRole queryByCondition(SchisandraAuthUserRole schisandraAuthUserRole) {
LambdaQueryWrapper<SchisandraAuthUserRole> queryWrapper = Wrappers.<SchisandraAuthUserRole>lambdaQuery()
.eq(Objects.nonNull(schisandraAuthUserRole.getId()), SchisandraAuthUserRole::getId, schisandraAuthUserRole.getId())
.eq(Objects.nonNull(schisandraAuthUserRole.getUserId()), SchisandraAuthUserRole::getUserId, schisandraAuthUserRole.getUserId())
.eq(Objects.nonNull(schisandraAuthUserRole.getRoleId()), SchisandraAuthUserRole::getRoleId, schisandraAuthUserRole.getRoleId())
.eq(Objects.nonNull(schisandraAuthUserRole.getCreatedBy()), SchisandraAuthUserRole::getCreatedBy, schisandraAuthUserRole.getCreatedBy())
.eq(Objects.nonNull(schisandraAuthUserRole.getCreatedTime()), SchisandraAuthUserRole::getCreatedTime, schisandraAuthUserRole.getCreatedTime())
.eq(Objects.nonNull(schisandraAuthUserRole.getUpdateBy()), SchisandraAuthUserRole::getUpdateBy, schisandraAuthUserRole.getUpdateBy())
.eq(Objects.nonNull(schisandraAuthUserRole.getUpdateTime()), SchisandraAuthUserRole::getUpdateTime, schisandraAuthUserRole.getUpdateTime())
.eq(Objects.nonNull(schisandraAuthUserRole.getIsDeleted()), SchisandraAuthUserRole::getIsDeleted, schisandraAuthUserRole.getIsDeleted())
;
return schisandraAuthUserRoleDao.selectOne(queryWrapper);
}
}

View File

@@ -1,15 +1,13 @@
package com.schisandra.auth.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.auth.infra.basic.dao.SchisandraAuthUserDao;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser;
import com.schisandra.auth.infra.basic.entity.table.SchisandraAuthUserTableDef;
import com.schisandra.auth.infra.basic.service.SchisandraAuthUserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* (SchisandraAuthUser)表服务实现类
@@ -25,12 +23,14 @@ public class SchisandraAuthUserServiceImpl implements SchisandraAuthUserService
@Override
public SchisandraAuthUser queryByEmail(String email) {
return this.schisandraAuthUserDao.selectOne(new QueryWrapper<SchisandraAuthUser>().eq("email",email));
return schisandraAuthUserDao.selectOneByCondition(SchisandraAuthUserTableDef.SCHISANDRA_AUTH_USER.EMAIL.eq(email)
.and(SchisandraAuthUserTableDef.SCHISANDRA_AUTH_USER.IS_DELETED.eq(0)));
}
@Override
public SchisandraAuthUser queryByPhone(String phone) {
return this.schisandraAuthUserDao.selectOne(new QueryWrapper<SchisandraAuthUser>().eq("phone", phone).eq("is_deleted", 0));
return schisandraAuthUserDao.selectOneByCondition(SchisandraAuthUserTableDef.SCHISANDRA_AUTH_USER.PHONE.eq(phone)
.and(SchisandraAuthUserTableDef.SCHISANDRA_AUTH_USER.IS_DELETED.eq(0)));
}
/**
@@ -41,7 +41,7 @@ public class SchisandraAuthUserServiceImpl implements SchisandraAuthUserService
*/
@Override
public SchisandraAuthUser queryById(Long id) {
return this.schisandraAuthUserDao.selectById(id);
return this.schisandraAuthUserDao.selectOneById(id);
}
/**
@@ -64,7 +64,7 @@ public class SchisandraAuthUserServiceImpl implements SchisandraAuthUserService
*/
@Override
public int update(SchisandraAuthUser schisandraAuthUser) {
return this.schisandraAuthUserDao.updateById(schisandraAuthUser);
return this.schisandraAuthUserDao.update(schisandraAuthUser, true);
}
/**
@@ -78,38 +78,6 @@ public class SchisandraAuthUserServiceImpl implements SchisandraAuthUserService
return this.schisandraAuthUserDao.deleteById(id) > 0;
}
/**
* 条件查询
*
* @param schisandraAuthUser 条件
* @return 实例对象
*/
@Override
public SchisandraAuthUser queryByCondition(SchisandraAuthUser schisandraAuthUser) {
LambdaQueryWrapper<SchisandraAuthUser> queryWrapper = Wrappers.<SchisandraAuthUser>lambdaQuery()
.eq(Objects.nonNull(schisandraAuthUser.getId()), SchisandraAuthUser::getId, schisandraAuthUser.getId())
.eq(Objects.nonNull(schisandraAuthUser.getUserName()), SchisandraAuthUser::getUserName, schisandraAuthUser.getUserName())
.eq(Objects.nonNull(schisandraAuthUser.getNickName()), SchisandraAuthUser::getNickName, schisandraAuthUser.getNickName())
.eq(Objects.nonNull(schisandraAuthUser.getEmail()), SchisandraAuthUser::getEmail, schisandraAuthUser.getEmail())
.eq(Objects.nonNull(schisandraAuthUser.getPhone()), SchisandraAuthUser::getPhone, schisandraAuthUser.getPhone())
.eq(Objects.nonNull(schisandraAuthUser.getPassword()), SchisandraAuthUser::getPassword, schisandraAuthUser.getPassword())
.eq(Objects.nonNull(schisandraAuthUser.getGender()), SchisandraAuthUser::getGender, schisandraAuthUser.getGender())
.eq(Objects.nonNull(schisandraAuthUser.getAvatar()), SchisandraAuthUser::getAvatar, schisandraAuthUser.getAvatar())
.eq(Objects.nonNull(schisandraAuthUser.getStatus()), SchisandraAuthUser::getStatus, schisandraAuthUser.getStatus())
.eq(Objects.nonNull(schisandraAuthUser.getIntroduce()), SchisandraAuthUser::getIntroduce, schisandraAuthUser.getIntroduce())
.eq(Objects.nonNull(schisandraAuthUser.getExtJson()), SchisandraAuthUser::getExtJson, schisandraAuthUser.getExtJson())
.eq(Objects.nonNull(schisandraAuthUser.getCreatedBy()), SchisandraAuthUser::getCreatedBy, schisandraAuthUser.getCreatedBy())
.eq(Objects.nonNull(schisandraAuthUser.getCreatedTime()), SchisandraAuthUser::getCreatedTime, schisandraAuthUser.getCreatedTime())
.eq(Objects.nonNull(schisandraAuthUser.getUpdateBy()), SchisandraAuthUser::getUpdateBy, schisandraAuthUser.getUpdateBy())
.eq(Objects.nonNull(schisandraAuthUser.getUpdateTime()), SchisandraAuthUser::getUpdateTime, schisandraAuthUser.getUpdateTime())
.eq(Objects.nonNull(schisandraAuthUser.getIsDeleted()), SchisandraAuthUser::getIsDeleted, schisandraAuthUser.getIsDeleted())
.eq(Objects.nonNull(schisandraAuthUser.getBlog()), SchisandraAuthUser::getBlog, schisandraAuthUser.getBlog())
.eq(Objects.nonNull(schisandraAuthUser.getLocation()), SchisandraAuthUser::getLocation, schisandraAuthUser.getLocation())
.eq(Objects.nonNull(schisandraAuthUser.getCompany()), SchisandraAuthUser::getCompany, schisandraAuthUser.getCompany());
return schisandraAuthUserDao.selectOne(queryWrapper);
}
@Override
public int insertAuthUserByOauth(SchisandraAuthUser schisandraAuthUser) {

View File

@@ -0,0 +1,33 @@
package com.schisandra.auth.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.auth.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.auth.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.auth.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

@@ -1,69 +0,0 @@
package com.schisandra.auth.infra.interceptor;
import cn.hutool.core.util.StrUtil;
import com.schisandra.auth.common.redis.RedisUtil;
import com.schisandra.auth.common.utils.AESUtils;
import lombok.SneakyThrows;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Component
public class EncryptInterceptor<T> extends BaseTypeHandler<T> {
@Resource
RedisUtil redisUtil;
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
String key = redisUtil.get("key1");
// String md5BySalt = SaSecureUtil.md5BySalt("123456", "abc");
try {
ps.setString(i, AESUtils.encrypt((String) parameter, key));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public T getNullableResult(ResultSet rs, String columnName) throws SQLException {
String key = redisUtil.get("key1");
try {
if ( "password".equals(columnName)) {
String columnValue = rs.getString(columnName);
return (T) columnValue;
}else {
String columnValue = rs.getString(columnName);
return StrUtil.isBlank(columnValue) ? (T) columnValue : (T) AESUtils.decrypt(columnValue, key);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@SneakyThrows
@Override
public T getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String key = redisUtil.get("key1");
String columnValue = rs.getString(columnIndex);
return StrUtil.isBlank(columnValue) ? (T) columnValue : (T) AESUtils.decrypt(columnValue, key);
}
@Override
public T getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String key = redisUtil.get("key1");
String columnValue = cs.getString(columnIndex);
try {
return StrUtil.isBlank(columnValue) ? (T) columnValue : (T) AESUtils.decrypt(columnValue, key);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

View File

@@ -4,7 +4,7 @@
<resultMap id="BaseResultMap" type="com.schisandra.auth.infra.basic.entity.SchisandraAuthUser">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="user_name" jdbcType="VARCHAR" property="userName" typeHandler="com.schisandra.auth.infra.interceptor.EncryptInterceptor"/>
<result column="user_name" jdbcType="VARCHAR" property="userName"/>
<result column="nick_name" jdbcType="VARCHAR" property="nickName"/>
<result column="email" jdbcType="VARCHAR" property="email"/>
<result column="phone" jdbcType="VARCHAR" property="phone"/>

View File

@@ -1,144 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : MySQL Cloud
Source Server Type : MySQL
Source Server Version : 50744 (5.7.44)
Source Host : 116.196.80.239:3306
Source Schema : schisandra-cloud-storage
Target Server Type : MySQL
Target Server Version : 50744 (5.7.44)
File Encoding : 65001
Date: 26/04/2024 01:28:16
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for schisandra_auth_permission
-- ----------------------------
DROP TABLE IF EXISTS `schisandra_auth_permission`;
CREATE TABLE `schisandra_auth_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`parent_id` bigint(20) NULL DEFAULT NULL,
`type` tinyint(4) NULL DEFAULT NULL,
`menu_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`status` tinyint(4) NULL DEFAULT NULL,
`show` tinyint(4) NULL DEFAULT NULL,
`icon` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`permission_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_deleted` int(11) NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of schisandra_auth_permission
-- ----------------------------
INSERT INTO `schisandra_auth_permission` VALUES (1, '普通用户', 0, 1, '1adiwd/awdw', 0, 0, 'httt://1.png', 'subject:add', NULL, NULL, NULL, NULL, 1);
INSERT INTO `schisandra_auth_permission` VALUES (2, '管理员', 0, 1, '1adiwd/awdw', 0, 0, 'httt://1.png', 'subject:add', NULL, NULL, NULL, NULL, 0);
-- ----------------------------
-- Table structure for schisandra_auth_role
-- ----------------------------
DROP TABLE IF EXISTS `schisandra_auth_role`;
CREATE TABLE `schisandra_auth_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`role_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`role_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_deleted` int(11) NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of schisandra_auth_role
-- ----------------------------
INSERT INTO `schisandra_auth_role` VALUES (1, '普通用户', 'normal_user', NULL, NULL, NULL, NULL, 0);
INSERT INTO `schisandra_auth_role` VALUES (2, '管理员', 'admin', NULL, NULL, NULL, NULL, 0);
INSERT INTO `schisandra_auth_role` VALUES (3, '超级管理员', 'super_admin', NULL, NULL, NULL, NULL, 0);
-- ----------------------------
-- Table structure for schisandra_auth_role_permission
-- ----------------------------
DROP TABLE IF EXISTS `schisandra_auth_role_permission`;
CREATE TABLE `schisandra_auth_role_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`role_id` bigint(20) NULL DEFAULT NULL,
`permission_id` bigint(20) NULL DEFAULT NULL,
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_deleted` int(11) NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of schisandra_auth_role_permission
-- ----------------------------
INSERT INTO `schisandra_auth_role_permission` VALUES (1, 2, 1, NULL, NULL, NULL, NULL, 0);
INSERT INTO `schisandra_auth_role_permission` VALUES (2, 3, 2, NULL, NULL, NULL, NULL, 0);
INSERT INTO `schisandra_auth_role_permission` VALUES (3, 1, 1, NULL, NULL, NULL, NULL, 0);
-- ----------------------------
-- Table structure for schisandra_auth_user
-- ----------------------------
DROP TABLE IF EXISTS `schisandra_auth_user`;
CREATE TABLE `schisandra_auth_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`nick_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`email` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`sex` tinyint(4) NULL DEFAULT NULL,
`avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`status` tinyint(4) NULL DEFAULT NULL,
`introduce` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ext_json` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_deleted` int(11) NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of schisandra_auth_user
-- ----------------------------
INSERT INTO `schisandra_auth_user` VALUES (8, 'oF9UX6c2GNEHUpoQZRTrkHTmLYHs', NULL, NULL, NULL, NULL, NULL, 'http://117.72.10.84:9000/user/icon/微信图片_20231203153718(1).png', 0, NULL, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `schisandra_auth_user` VALUES (9, '666', '666', '666', '555', '666', 1, '', 1, '', '', NULL, NULL, NULL, NULL, 1);
-- ----------------------------
-- Table structure for schisandra_auth_user_role
-- ----------------------------
DROP TABLE IF EXISTS `schisandra_auth_user_role`;
CREATE TABLE `schisandra_auth_user_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NULL DEFAULT NULL,
`role_id` bigint(20) NULL DEFAULT NULL,
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_deleted` int(11) NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of schisandra_auth_user_role
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -133,6 +133,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

@@ -80,21 +80,17 @@ sms:
isPrint: false
HttpLog: true
# 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"
# 前端地址
web:
url: http://127.0.0.1:5173/
feign:
client:
config:
default:
connectTimeout: 60000
readTimeout: 60000
ribbon:
ConnectTimeout: 60000
ReadTimeout: 60000

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,10 +1,10 @@
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;
@@ -16,309 +16,309 @@ import java.util.Date;
* @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,10 +1,10 @@
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;
@@ -16,247 +16,247 @@ import java.util.Date;
* @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,10 +1,11 @@
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;
@@ -16,205 +17,205 @@ import java.util.Date;
* @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"

View File

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

View File

@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam;
@FeignClient("schisandra-cloud-storage-system-dev")
public interface SchisandraSystemFeignService {
@RequestMapping(value = "/system/getConfigByKey",method = RequestMethod.GET)
@PostMapping(value = "/system/getConfigByKey")
Result<SchisandraSysConfigDTO> getConfigByKey(@RequestParam(value = "key") String key);
@PostMapping("/system/oauth/getOauthConfigByType")
Result<SchisandraSysOauthDTO> getOauthConfigByType(@RequestParam("type") String type);

View File

@@ -11,7 +11,6 @@
<packaging>pom</packaging>
<name>schisandra-cloud-storage-system-application</name>
<url>http://maven.apache.org</url>
<modules>
<module>schisandra-cloud-storage-system-application-controller</module>
<module>schisandra-cloud-storage-system-application-job</module>
@@ -23,11 +22,5 @@
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -11,6 +11,32 @@
<packaging>jar</packaging>
<name>schisandra-cloud-storage-system-application-controller</name>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.schisandra.system</groupId>
<artifactId>schisandra-cloud-storage-system-domain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.system</groupId>
<artifactId>schisandra-cloud-storage-system-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
@@ -39,34 +65,14 @@
<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>
</plugins>
</build>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.schisandra.system</groupId>
<artifactId>schisandra-cloud-storage-system-domain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.system</groupId>
<artifactId>schisandra-cloud-storage-system-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -30,7 +30,7 @@ public class SchisandraSysConfigController {
/**
* 新增
*/
@RequestMapping("add")
@PostMapping("add")
public Result<Boolean> add(@RequestBody SchisandraSysConfigDTO schisandraSysConfigDTO) {
try {
@@ -60,7 +60,7 @@ public class SchisandraSysConfigController {
/**
* 修改
*/
@RequestMapping("update")
@PostMapping("update")
public Result<Boolean> update(@RequestBody SchisandraSysConfigDTO schisandraSysConfigDTO) {
try {
@@ -90,7 +90,7 @@ public class SchisandraSysConfigController {
/**
* 删除
*/
@RequestMapping("delete")
@DeleteMapping("delete")
public Result<Boolean> delete(@RequestBody SchisandraSysConfigDTO schisandraSysConfigDTO) {
try {
@@ -117,7 +117,7 @@ public class SchisandraSysConfigController {
}
@RequestMapping(value = "getConfigByKey",method = RequestMethod.GET)
@PostMapping(value = "getConfigByKey")
public Result<SchisandraSysConfigDTO> getConfigByKey(@RequestParam(value = "key") String key) {
try {
if (log.isInfoEnabled()) {

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,17 @@
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!--mybatis plus-->
<!--mybatis flex-->
<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.system</groupId>

View File

@@ -1,7 +1,7 @@
package com.schisandra.system.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.system.infra.basic.entity.SchisandraSysConfig;
import org.springframework.stereotype.Repository;

View File

@@ -1,7 +1,8 @@
package com.schisandra.system.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.system.infra.basic.entity.SchisandraSysLog;
import org.springframework.stereotype.Repository;

View File

@@ -1,7 +1,8 @@
package com.schisandra.system.infra.basic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisflex.core.BaseMapper;
import com.schisandra.system.infra.basic.entity.SchisandraSysOauth;
import org.springframework.stereotype.Repository;

View File

@@ -1,10 +1,10 @@
package com.schisandra.system.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;
@@ -16,73 +16,73 @@ import java.util.Date;
* @since 2024-05-11 22:45:55
*/
@Data
@TableName("schisandra_sys_config")
@Table("schisandra_sys_config")
public class SchisandraSysConfig implements Serializable {
/**
* id
*/
@TableId(value = "`id`", type = IdType.AUTO)
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 名称
*/
@TableField("`config_name`")
@Column("config_name")
private String configName;
/**
* 参数键
*/
@TableField("`config_key`")
@Column("config_key")
private String configKey;
/**
* 参数值
*/
@TableField("`config_value`")
@Column("config_value")
private String configValue;
/**
* 创建者
*/
@TableField("`create_by`")
@Column("create_by")
private String createBy;
/**
* 系统内置0是 1否
*/
@TableField("`config_type`")
@Column("config_type")
private Integer configType;
/**
* 创建时间
*/
@TableField("`create_date`")
@Column("create_date")
private Date createDate;
/**
* 更新者
*/
@TableField("`update_by`")
@Column("update_by")
private String updateBy;
/**
* 更新时间
*/
@TableField("`update_date`")
@Column("update_date")
private Date updateDate;
/**
* 备注信息
*/
@TableField("`remarks`")
@Column("remarks")
private String remarks;
/**
* 是否删除 0未删除 1已删除
*/
@TableField("`is_deleted`")
@Column("is_deleted")
private Integer isDeleted;
}

View File

@@ -1,10 +1,11 @@
package com.schisandra.system.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.math.BigDecimal;
@@ -17,127 +18,127 @@ import java.util.Date;
* @since 2024-05-12 14:21:42
*/
@Data
@TableName("schisandra_sys_log")
@Table("schisandra_sys_log")
public class SchisandraSysLog implements Serializable {
/**
* 编号
*/
@TableId(value = "`id`", type = IdType.AUTO)
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 日志类型
*/
@TableField("`log_type`")
@Column("log_type")
private String logType;
/**
* 日志标题
*/
@TableField("`log_title`")
@Column("log_title")
private String logTitle;
/**
* 创建者
*/
@TableField("`create_by`")
@Column("create_by")
private String createBy;
/**
* 用户名称
*/
@TableField("`create_by_name`")
@Column("create_by_name")
private String createByName;
/**
* 创建时间
*/
@TableField("`create_date`")
@Column("create_date")
private Date createDate;
/**
* 请求URI
*/
@TableField("`request_uri`")
@Column("request_uri")
private String requestUri;
/**
* 操作方式
*/
@TableField("`request_method`")
@Column("request_method")
private String requestMethod;
/**
* 操作提交的数据
*/
@TableField("`request_params`")
@Column("request_params")
private String requestParams;
/**
* 新旧数据比较结果
*/
@TableField("`diff_modify_data`")
@Column("diff_modify_data")
private String diffModifyData;
/**
* 业务主键
*/
@TableField("`biz_key`")
@Column("biz_key")
private String bizKey;
/**
* 业务类型
*/
@TableField("`biz_type`")
@Column("biz_type")
private String bizType;
/**
* 操作IP地址
*/
@TableField("`remote_addr`")
@Column("remote_addr")
private String remoteAddr;
/**
* 请求服务器地址
*/
@TableField("`server_addr`")
@Column("server_addr")
private String serverAddr;
/**
* 是否异常
*/
@TableField("`is_exception`")
@Column("is_exception")
private String isException;
/**
* 异常信息
*/
@TableField("`exception_info`")
@Column("exception_info")
private String exceptionInfo;
/**
* 用户代理
*/
@TableField("`user_agent`")
@Column("user_agent")
private String userAgent;
/**
* 设备名称/操作系统
*/
@TableField("`device_name`")
@Column("device_name")
private String deviceName;
/**
* 浏览器名称
*/
@TableField("`browser_name`")
@Column("browser_name")
private String browserName;
/**
* 执行时间
*/
@TableField("`execute_time`")
@Column("execute_time")
private BigDecimal executeTime;
}

View File

@@ -1,10 +1,10 @@
package com.schisandra.system.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;
@@ -16,103 +16,103 @@ import java.util.Date;
* @since 2024-05-25 23:08:26
*/
@Data
@TableName("schisandra_sys_oauth")
@Table("schisandra_sys_oauth")
public class SchisandraSysOauth implements Serializable {
/**
*
*/
@TableId(value = "`id`", type = IdType.AUTO)
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 类型
*/
@TableField("`client_type`")
@Column("client_type")
private String clientType;
/**
* Client Id
*/
@TableField("`client_id`")
@Column("client_id")
private String clientId;
/**
* Client Secret
*/
@TableField("`client_secret`")
@Column("client_secret")
private String clientSecret;
/**
* 应用回调地址
*/
@TableField("`redirect_uri`")
@Column("redirect_uri")
private String redirectUri;
/**
* Key
*/
@TableField("`stack_overflow_Key`")
@Column("stack_overflow_Key")
private String stackOverflowKey;
/**
* 团队名
*/
@TableField("`domain_prefix`")
@Column("domain_prefix")
private String domainPrefix;
/**
* 目录(租户) ID
*/
@TableField("`tenant_id`")
@Column("tenant_id")
private String tenantId;
/**
*
*/
@TableField("`alipay_public_key`")
@Column("alipay_public_key")
private String alipayPublicKey;
/**
*
*/
@TableField("`agent_id`")
@Column("agent_id")
private String agentId;
/**
* 创建人
*/
@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("`status`")
@Column("status")
private String status;
}

View File

@@ -43,10 +43,6 @@ public interface SchisandraSysConfigService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraSysConfig queryByCondition(SchisandraSysConfig schisandraSysConfig);
SchisandraSysConfig getConfigByKey(String key);
}

View File

@@ -42,9 +42,5 @@ public interface SchisandraSysLogService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraSysLog queryByCondition(SchisandraSysLog schisandraSysLog);
}

View File

@@ -42,10 +42,6 @@ public interface SchisandraSysOauthService {
*/
boolean deleteById(Long id);
/**
* 根据条件查询角色
*/
SchisandraSysOauth queryByCondition(SchisandraSysOauth schisandraSysOauth);
SchisandraSysOauth getOauthConfigByType(String type);
}

View File

@@ -1,16 +1,13 @@
package com.schisandra.system.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.system.infra.basic.entity.SchisandraSysConfig;
import com.schisandra.system.infra.basic.dao.SchisandraSysConfigDao;
import com.schisandra.system.infra.basic.entity.SchisandraSysConfig;
import com.schisandra.system.infra.basic.entity.table.SchisandraSysConfigTableDef;
import com.schisandra.system.infra.basic.service.SchisandraSysConfigService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 表服务实现类
@@ -32,7 +29,7 @@ public class SchisandraSysConfigServiceImpl implements SchisandraSysConfigServic
*/
@Override
public SchisandraSysConfig queryById(Long id) {
return this.schisandraSysConfigDao.selectById(id);
return this.schisandraSysConfigDao.selectOneById(id);
}
/**
@@ -54,7 +51,7 @@ public class SchisandraSysConfigServiceImpl implements SchisandraSysConfigServic
*/
@Override
public int update(SchisandraSysConfig schisandraSysConfig) {
return this.schisandraSysConfigDao.updateById(schisandraSysConfig);
return this.schisandraSysConfigDao.update(schisandraSysConfig, true);
}
/**
@@ -69,35 +66,14 @@ public class SchisandraSysConfigServiceImpl implements SchisandraSysConfigServic
}
/**
* 条件查询
* 通过关键字查找配置
*
* @param schisandraSysConfig 条件
* @return 实例对象
* @param key key
* @return 实
*/
@Override
public SchisandraSysConfig queryByCondition(SchisandraSysConfig schisandraSysConfig) {
LambdaQueryWrapper<SchisandraSysConfig> queryWrapper = Wrappers.<SchisandraSysConfig>lambdaQuery()
.eq(Objects.nonNull(schisandraSysConfig.getId()), SchisandraSysConfig::getId, schisandraSysConfig.getId())
.eq(Objects.nonNull(schisandraSysConfig.getConfigName()), SchisandraSysConfig::getConfigName, schisandraSysConfig.getConfigName())
.eq(Objects.nonNull(schisandraSysConfig.getConfigKey()), SchisandraSysConfig::getConfigKey, schisandraSysConfig.getConfigKey())
.eq(Objects.nonNull(schisandraSysConfig.getConfigValue()), SchisandraSysConfig::getConfigValue, schisandraSysConfig.getConfigValue())
.eq(Objects.nonNull(schisandraSysConfig.getCreateBy()), SchisandraSysConfig::getCreateBy, schisandraSysConfig.getCreateBy())
.eq(Objects.nonNull(schisandraSysConfig.getConfigType()), SchisandraSysConfig::getConfigType, schisandraSysConfig.getConfigType())
.eq(Objects.nonNull(schisandraSysConfig.getCreateDate()), SchisandraSysConfig::getCreateDate, schisandraSysConfig.getCreateDate())
.eq(Objects.nonNull(schisandraSysConfig.getUpdateBy()), SchisandraSysConfig::getUpdateBy, schisandraSysConfig.getUpdateBy())
.eq(Objects.nonNull(schisandraSysConfig.getUpdateDate()), SchisandraSysConfig::getUpdateDate, schisandraSysConfig.getUpdateDate())
.eq(Objects.nonNull(schisandraSysConfig.getRemarks()), SchisandraSysConfig::getRemarks, schisandraSysConfig.getRemarks())
.eq(Objects.nonNull(schisandraSysConfig.getIsDeleted()), SchisandraSysConfig::getIsDeleted, schisandraSysConfig.getIsDeleted())
;
return schisandraSysConfigDao.selectOne(queryWrapper);
}
@Override
public SchisandraSysConfig getConfigByKey(String key) {
return schisandraSysConfigDao.selectOne(new QueryWrapper<SchisandraSysConfig>().eq("config_key", key)
.eq("is_deleted", 0));
return schisandraSysConfigDao.selectOneByCondition(SchisandraSysConfigTableDef.SCHISANDRA_SYS_CONFIG.CONFIG_KEY.eq(key));
}
}

View File

@@ -1,8 +1,6 @@
package com.schisandra.system.infra.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.schisandra.system.infra.basic.dao.SchisandraSysLogDao;
import com.schisandra.system.infra.basic.entity.SchisandraSysLog;
import com.schisandra.system.infra.basic.service.SchisandraSysLogService;
@@ -31,7 +29,7 @@ public class SchisandraSysLogServiceImpl implements SchisandraSysLogService {
*/
@Override
public SchisandraSysLog queryById(Long id) {
return this.schisandraSysLogDao.selectById(id);
return this.schisandraSysLogDao.selectOneById(id);
}
/**
@@ -53,7 +51,7 @@ public class SchisandraSysLogServiceImpl implements SchisandraSysLogService {
*/
@Override
public int update(SchisandraSysLog schisandraSysLog) {
return this.schisandraSysLogDao.updateById(schisandraSysLog);
return this.schisandraSysLogDao.update(schisandraSysLog,true);
}
/**
@@ -67,39 +65,5 @@ public class SchisandraSysLogServiceImpl implements SchisandraSysLogService {
return this.schisandraSysLogDao.deleteById(id) > 0;
}
/**
* 条件查询
*
* @param schisandraSysLog 条件
* @return 实例对象
*/
@Override
public SchisandraSysLog queryByCondition(SchisandraSysLog schisandraSysLog) {
LambdaQueryWrapper<SchisandraSysLog> queryWrapper = Wrappers.<SchisandraSysLog>lambdaQuery()
.eq(Objects.nonNull(schisandraSysLog.getId()), SchisandraSysLog::getId, schisandraSysLog.getId())
.eq(Objects.nonNull(schisandraSysLog.getLogType()), SchisandraSysLog::getLogType, schisandraSysLog.getLogType())
.eq(Objects.nonNull(schisandraSysLog.getLogTitle()), SchisandraSysLog::getLogTitle, schisandraSysLog.getLogTitle())
.eq(Objects.nonNull(schisandraSysLog.getCreateBy()), SchisandraSysLog::getCreateBy, schisandraSysLog.getCreateBy())
.eq(Objects.nonNull(schisandraSysLog.getCreateByName()), SchisandraSysLog::getCreateByName, schisandraSysLog.getCreateByName())
.eq(Objects.nonNull(schisandraSysLog.getCreateDate()), SchisandraSysLog::getCreateDate, schisandraSysLog.getCreateDate())
.eq(Objects.nonNull(schisandraSysLog.getRequestUri()), SchisandraSysLog::getRequestUri, schisandraSysLog.getRequestUri())
.eq(Objects.nonNull(schisandraSysLog.getRequestMethod()), SchisandraSysLog::getRequestMethod, schisandraSysLog.getRequestMethod())
.eq(Objects.nonNull(schisandraSysLog.getRequestParams()), SchisandraSysLog::getRequestParams, schisandraSysLog.getRequestParams())
.eq(Objects.nonNull(schisandraSysLog.getDiffModifyData()), SchisandraSysLog::getDiffModifyData, schisandraSysLog.getDiffModifyData())
.eq(Objects.nonNull(schisandraSysLog.getBizKey()), SchisandraSysLog::getBizKey, schisandraSysLog.getBizKey())
.eq(Objects.nonNull(schisandraSysLog.getBizType()), SchisandraSysLog::getBizType, schisandraSysLog.getBizType())
.eq(Objects.nonNull(schisandraSysLog.getRemoteAddr()), SchisandraSysLog::getRemoteAddr, schisandraSysLog.getRemoteAddr())
.eq(Objects.nonNull(schisandraSysLog.getServerAddr()), SchisandraSysLog::getServerAddr, schisandraSysLog.getServerAddr())
.eq(Objects.nonNull(schisandraSysLog.getIsException()), SchisandraSysLog::getIsException, schisandraSysLog.getIsException())
.eq(Objects.nonNull(schisandraSysLog.getExceptionInfo()), SchisandraSysLog::getExceptionInfo, schisandraSysLog.getExceptionInfo())
.eq(Objects.nonNull(schisandraSysLog.getUserAgent()), SchisandraSysLog::getUserAgent, schisandraSysLog.getUserAgent())
.eq(Objects.nonNull(schisandraSysLog.getDeviceName()), SchisandraSysLog::getDeviceName, schisandraSysLog.getDeviceName())
.eq(Objects.nonNull(schisandraSysLog.getBrowserName()), SchisandraSysLog::getBrowserName, schisandraSysLog.getBrowserName())
.eq(Objects.nonNull(schisandraSysLog.getExecuteTime()), SchisandraSysLog::getExecuteTime, schisandraSysLog.getExecuteTime())
;
return schisandraSysLogDao.selectOne(queryWrapper);
}
}

View File

@@ -1,11 +1,8 @@
package com.schisandra.system.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.system.infra.basic.dao.SchisandraSysOauthDao;
import com.schisandra.system.infra.basic.entity.SchisandraSysOauth;
import com.schisandra.system.infra.basic.entity.table.SchisandraSysOauthTableDef;
import com.schisandra.system.infra.basic.service.SchisandraSysOauthService;
import org.springframework.stereotype.Service;
@@ -32,7 +29,7 @@ public class SchisandraSysOauthServiceImpl implements SchisandraSysOauthService
*/
@Override
public SchisandraSysOauth queryById(Long id) {
return this.schisandraSysOauthDao.selectById(id);
return this.schisandraSysOauthDao.selectOneById(id);
}
/**
@@ -54,7 +51,7 @@ public class SchisandraSysOauthServiceImpl implements SchisandraSysOauthService
*/
@Override
public int update(SchisandraSysOauth schisandraSysOauth) {
return this.schisandraSysOauthDao.updateById(schisandraSysOauth);
return this.schisandraSysOauthDao.update(schisandraSysOauth,true);
}
/**
@@ -69,41 +66,14 @@ public class SchisandraSysOauthServiceImpl implements SchisandraSysOauthService
}
/**
* 条件查询
* 通过主键删除数据
*
* @param schisandraSysOauth 条件
* @return 实例对象
* @param type 客户端类型
* @return 实
*/
@Override
public SchisandraSysOauth queryByCondition(SchisandraSysOauth schisandraSysOauth) {
LambdaQueryWrapper<SchisandraSysOauth> queryWrapper = Wrappers.<SchisandraSysOauth>lambdaQuery()
.eq(Objects.nonNull(schisandraSysOauth.getId()), SchisandraSysOauth::getId, schisandraSysOauth.getId())
.eq(Objects.nonNull(schisandraSysOauth.getClientType()), SchisandraSysOauth::getClientType, schisandraSysOauth.getClientType())
.eq(Objects.nonNull(schisandraSysOauth.getClientId()), SchisandraSysOauth::getClientId, schisandraSysOauth.getClientId())
.eq(Objects.nonNull(schisandraSysOauth.getClientSecret()), SchisandraSysOauth::getClientSecret, schisandraSysOauth.getClientSecret())
.eq(Objects.nonNull(schisandraSysOauth.getRedirectUri()), SchisandraSysOauth::getRedirectUri, schisandraSysOauth.getRedirectUri())
.eq(Objects.nonNull(schisandraSysOauth.getStackOverflowKey()), SchisandraSysOauth::getStackOverflowKey, schisandraSysOauth.getStackOverflowKey())
.eq(Objects.nonNull(schisandraSysOauth.getDomainPrefix()), SchisandraSysOauth::getDomainPrefix, schisandraSysOauth.getDomainPrefix())
.eq(Objects.nonNull(schisandraSysOauth.getTenantId()), SchisandraSysOauth::getTenantId, schisandraSysOauth.getTenantId())
.eq(Objects.nonNull(schisandraSysOauth.getAlipayPublicKey()), SchisandraSysOauth::getAlipayPublicKey, schisandraSysOauth.getAlipayPublicKey())
.eq(Objects.nonNull(schisandraSysOauth.getAgentId()), SchisandraSysOauth::getAgentId, schisandraSysOauth.getAgentId())
.eq(Objects.nonNull(schisandraSysOauth.getCreatedBy()), SchisandraSysOauth::getCreatedBy, schisandraSysOauth.getCreatedBy())
.eq(Objects.nonNull(schisandraSysOauth.getCreatedTime()), SchisandraSysOauth::getCreatedTime, schisandraSysOauth.getCreatedTime())
.eq(Objects.nonNull(schisandraSysOauth.getUpdateTime()), SchisandraSysOauth::getUpdateTime, schisandraSysOauth.getUpdateTime())
.eq(Objects.nonNull(schisandraSysOauth.getUpdateBy()), SchisandraSysOauth::getUpdateBy, schisandraSysOauth.getUpdateBy())
.eq(Objects.nonNull(schisandraSysOauth.getIsDeleted()), SchisandraSysOauth::getIsDeleted, schisandraSysOauth.getIsDeleted())
.eq(Objects.nonNull(schisandraSysOauth.getStatus()), SchisandraSysOauth::getStatus, schisandraSysOauth.getStatus())
;
return schisandraSysOauthDao.selectOne(queryWrapper);
}
@Override
public SchisandraSysOauth getOauthConfigByType(String type) {
return schisandraSysOauthDao.selectOne(new QueryWrapper<SchisandraSysOauth>()
.eq("client_type",type)
.eq("is_deleted",0));
return schisandraSysOauthDao.selectOneByCondition(SchisandraSysOauthTableDef.SCHISANDRA_SYS_OAUTH.CLIENT_TYPE.eq(type));
}
}

View File

@@ -0,0 +1,33 @@
package com.schisandra.system.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

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

@@ -1,5 +1,6 @@
package com.schisandra.system;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -13,7 +14,7 @@ import org.springframework.context.annotation.ComponentScan;
*/
@SpringBootApplication
@ComponentScan("com.schisandra")
@MapperScan("com.schisandra.**.dao")
@MapperScan("com.schisandra.system.**.dao")
public class SystemApplication {
public static void main(String[] args) {
SpringApplication.run(SystemApplication.class);

View File

@@ -52,10 +52,6 @@ spring:
publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANUVxjcrVoirBZaNmDrUqatHEW4FOHbO5ynW6zvhIbRMo6hEFGgglbURkjuHOlgEduxJVz6Xa+sG+FMrxTguOJECAwEAAQ==
logging:
config: classpath:log4j2-spring.xml
# mybatis-plus日志
mybatis-plus:
global-config:
banner: false
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
sa-token:
# token 名称(同时也是 cookie 名称)
@@ -75,15 +71,17 @@ sa-token:
token-prefix: schisandra
is-print: false
feign:
client:
config:
default:
connectTimeout: 60000
readTimeout: 60000
ribbon:
ConnectTimeout: 60000
ReadTimeout: 60000
mybatis-flex:
global-config:
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"