循环依赖处理

This commit is contained in:
even 2025-05-10 01:55:45 +08:00
parent 19858ca927
commit 6547ea089c
283 changed files with 1169 additions and 834 deletions

8
.idea/compiler.xml generated
View File

@ -13,10 +13,10 @@
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" /> <outputRelativeToContentRoot value="true" />
<processorPath useClasspath="false"> <processorPath useClasspath="false">
<entry name="$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-configuration-processor/3.3.4/spring-boot-configuration-processor-3.3.4.jar" /> <entry name="$PROJECT_DIR$/../../apache-maven-3.8.6-bin/repository/org/springframework/boot/spring-boot-configuration-processor/3.3.4/spring-boot-configuration-processor-3.3.4.jar" />
<entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar" /> <entry name="$PROJECT_DIR$/../../apache-maven-3.8.6-bin/repository/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar" />
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.6.2/mapstruct-processor-1.6.2.jar" /> <entry name="$PROJECT_DIR$/../../apache-maven-3.8.6-bin/repository/org/mapstruct/mapstruct-processor/1.6.2/mapstruct-processor-1.6.2.jar" />
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.6.2/mapstruct-1.6.2.jar" /> <entry name="$PROJECT_DIR$/../../apache-maven-3.8.6-bin/repository/org/mapstruct/mapstruct/1.6.2/mapstruct-1.6.2.jar" />
</processorPath> </processorPath>
<module name="spring-boot-starter-protection" /> <module name="spring-boot-starter-protection" />
<module name="module-ci-environment" /> <module name="module-ci-environment" />

View File

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="RemoteRepositoriesConfiguration"> <component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="huaweicloud" />
<option name="name" value="huawei" />
<option name="url" value="https://maven.aliyun.com/repository/public" />
</remote-repository>
<remote-repository> <remote-repository>
<option name="id" value="central" /> <option name="id" value="central" />
<option name="name" value="Central Repository" /> <option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" /> <option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository> </remote-repository>
<remote-repository>
<option name="id" value="huaweicloud" />
<option name="name" value="huawei" />
<option name="url" value="https://maven.aliyun.com/repository/public" />
</remote-repository>
<remote-repository> <remote-repository>
<option name="id" value="aliyunmaven" /> <option name="id" value="aliyunmaven" />
<option name="name" value="aliyun" /> <option name="name" value="aliyun" />

8
.idea/modules.xml generated
View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/modules/module-ci-process-biz/module-ci-process-biz.iml" filepath="$PROJECT_DIR$/modules/module-ci-process-biz/module-ci-process-biz.iml" />
</modules>
</component>
</project>

View File

@ -85,8 +85,8 @@
<commons-exec.version>1.4.0</commons-exec.version> <commons-exec.version>1.4.0</commons-exec.version>
<dd-plist.version>1.28</dd-plist.version> <dd-plist.version>1.28</dd-plist.version>
<apk-parser.version>2.6.10</apk-parser.version> <apk-parser.version>2.6.10</apk-parser.version>
<logback-core.version>1.2.11</logback-core.version> <logback-core.version>1.5.8</logback-core.version>
<logback-classic.version>1.2.11</logback-classic.version> <logback-classic.version>1.5.8</logback-classic.version>
<caffeine.version>2.9.3</caffeine.version> <caffeine.version>2.9.3</caffeine.version>
<resilience4j-circuitbreaker.version>2.3.0</resilience4j-circuitbreaker.version> <resilience4j-circuitbreaker.version>2.3.0</resilience4j-circuitbreaker.version>

View File

@ -171,6 +171,27 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
<version>3.5.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.16</version>
</dependency>
<dependency>
<groupId>io.github.mouzt</groupId>
<artifactId>bizlog-sdk</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies> </dependencies>

View File

@ -1,4 +1,4 @@
package cd.casic.framework.tenant.core.aop; package cd.casic.framework.commons.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;

View File

@ -1,4 +1,4 @@
package cd.casic.framework.web.config; package cd.casic.framework.commons.config;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;

View File

@ -1,4 +1,4 @@
package cd.casic.framework.tenant.core.context; package cd.casic.framework.commons.context;
import com.alibaba.ttl.TransmittableThreadLocal; import com.alibaba.ttl.TransmittableThreadLocal;

View File

@ -1,4 +1,4 @@
package cd.casic.framework.mybatis.core.dataobject; package cd.casic.framework.commons.dataobject;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,8 +1,7 @@
package cd.casic.module.system.dal.dataobject.dept; package cd.casic.framework.commons.dataobject.dept;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.tenant.core.db.TenantBaseDO; import cd.casic.framework.commons.dataobject.tenant.TenantBaseDO;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

View File

@ -1,7 +1,7 @@
package cd.casic.module.system.dal.dataobject.dept; package cd.casic.framework.commons.dataobject.dept;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.mybatis.core.dataobject.BaseDO; import cd.casic.framework.commons.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

View File

@ -1,7 +1,6 @@
package cd.casic.module.system.dal.dataobject.dept; package cd.casic.framework.commons.dataobject.dept;
import cd.casic.framework.mybatis.core.dataobject.BaseDO; import cd.casic.framework.commons.dataobject.BaseDO;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

View File

@ -1,6 +1,6 @@
package cd.casic.framework.redis.core; package cd.casic.framework.commons.util.redis.core;
import cd.casic.framework.redis.core.enums.AreaTypeEnum; import cd.casic.framework.commons.util.redis.core.enums.AreaTypeEnum;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cd.casic.framework.redis.core.enums; package cd.casic.framework.commons.util.redis.core.enums;
import cd.casic.framework.commons.core.IntArrayValuable; import cd.casic.framework.commons.core.IntArrayValuable;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,7 +1,7 @@
package cd.casic.framework.redis.core.utils; package cd.casic.framework.commons.util.redis.core.utils;
import cd.casic.framework.redis.core.Area; import cd.casic.framework.commons.util.redis.core.Area;
import cd.casic.framework.redis.core.enums.AreaTypeEnum; import cd.casic.framework.commons.util.redis.core.enums.AreaTypeEnum;
import cd.casic.framework.commons.util.object.ObjectUtils; import cd.casic.framework.commons.util.object.ObjectUtils;
import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;

View File

@ -1,6 +1,6 @@
package cd.casic.framework.redis.core.utils; package cd.casic.framework.commons.util.redis.core.utils;
import cd.casic.framework.redis.core.Area; import cd.casic.framework.commons.util.redis.core.Area;
import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.io.resource.ResourceUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -1,12 +1,12 @@
package cd.casic.framework.tenant.core.util; package cd.casic.framework.commons.util.tenant;
import cd.casic.framework.tenant.core.context.TenantContextHolder; import cd.casic.framework.commons.context.TenantContextHolder;
import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import java.util.Map; import java.util.Map;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import static cd.casic.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID;
/** /**
* 多租户 Util * 多租户 Util
@ -87,7 +87,7 @@ public class TenantUtils {
*/ */
public static void addTenantHeader(Map<String, String> headers, Long tenantId) { public static void addTenantHeader(Map<String, String> headers, Long tenantId) {
if (tenantId != null) { if (tenantId != null) {
headers.put(HEADER_TENANT_ID, tenantId.toString()); headers.put(WebFrameworkUtils.HEADER_TENANT_ID, tenantId.toString());
} }
} }

View File

@ -1,9 +1,10 @@
package cd.casic.framework.web.core.util; package cd.casic.framework.commons.util.util;
import cd.casic.framework.commons.config.WebProperties;
import cd.casic.framework.commons.enums.TerminalEnum; import cd.casic.framework.commons.enums.TerminalEnum;
import cd.casic.framework.commons.enums.UserTypeEnum; import cd.casic.framework.commons.enums.UserTypeEnum;
import cd.casic.framework.commons.pojo.CommonResult; import cd.casic.framework.commons.pojo.CommonResult;
import cd.casic.framework.web.config.WebProperties;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletRequest;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;

View File

@ -1,10 +1,10 @@
package cd.casic.framework.apilog.config; package cd.casic.framework.datapermission.config;
import cd.casic.framework.apilog.core.filter.ApiAccessLogFilter; import cd.casic.framework.apilog.core.filter.ApiAccessLogFilter;
import cd.casic.framework.apilog.core.interceptor.ApiAccessLogInterceptor; import cd.casic.framework.apilog.core.interceptor.ApiAccessLogInterceptor;
import cd.casic.framework.commons.config.WebProperties;
import cd.casic.framework.commons.enums.WebFilterOrderEnum; import cd.casic.framework.commons.enums.WebFilterOrderEnum;
import cd.casic.framework.web.config.OpsWebAutoConfiguration;
import cd.casic.framework.web.config.WebProperties;
import cd.casic.module.infra.api.logger.ApiAccessLogApi; import cd.casic.module.infra.api.logger.ApiAccessLogApi;
import jakarta.servlet.Filter; import jakarta.servlet.Filter;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;

View File

@ -2,8 +2,9 @@ package cd.casic.framework.datapermission.config;
import cd.casic.framework.datapermission.core.rule.dept.DeptDataPermissionRule; import cd.casic.framework.datapermission.core.rule.dept.DeptDataPermissionRule;
import cd.casic.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; import cd.casic.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer;
import cd.casic.framework.datapermission.service.PermissionApi;
import cd.casic.framework.security.core.LoginUser; import cd.casic.framework.security.core.LoginUser;
import cd.casic.module.system.api.permission.PermissionApi;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

View File

@ -1,15 +1,17 @@
package cd.casic.framework.security.config; package cd.casic.framework.datapermission.config;
import cd.casic.framework.datapermission.service.PermissionApi;
import cd.casic.framework.datapermission.service.SecurityFrameworkService;
import cd.casic.framework.datapermission.service.SecurityFrameworkServiceImpl;
import cd.casic.framework.datapermission.service.user.OAuth2TokenApi;
import cd.casic.framework.datapermission.service.user.OAuth2TokenApiImpl;
import cd.casic.framework.security.config.SecurityProperties;
import cd.casic.framework.security.core.context.TransmittableThreadLocalSecurityContextHolderStrategy; import cd.casic.framework.security.core.context.TransmittableThreadLocalSecurityContextHolderStrategy;
import cd.casic.framework.security.core.filter.TokenAuthenticationFilter; import cd.casic.framework.datapermission.core.filter.TokenAuthenticationFilter;
import cd.casic.framework.security.core.handler.AccessDeniedHandlerImpl; import cd.casic.framework.security.core.handler.AccessDeniedHandlerImpl;
import cd.casic.framework.security.core.handler.AuthenticationEntryPointImpl; import cd.casic.framework.security.core.handler.AuthenticationEntryPointImpl;
import cd.casic.framework.security.core.service.SecurityFrameworkService; import cd.casic.framework.datapermission.handler.GlobalExceptionHandler;
import cd.casic.framework.security.core.service.SecurityFrameworkServiceImpl;
import cd.casic.framework.web.core.handler.GlobalExceptionHandler;
import cd.casic.module.system.api.oauth2.OAuth2TokenApi;
import cd.casic.module.system.api.permission.PermissionApi;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.beans.factory.config.MethodInvokingFactoryBean; import org.springframework.beans.factory.config.MethodInvokingFactoryBean;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
@ -68,12 +70,16 @@ public class OpsSecurityAutoConfiguration {
/** /**
* Token 认证过滤器 Bean * Token 认证过滤器 Bean
*/ */
@Bean @Bean
public TokenAuthenticationFilter authenticationTokenFilter(GlobalExceptionHandler globalExceptionHandler, public TokenAuthenticationFilter authenticationTokenFilter(GlobalExceptionHandler globalExceptionHandler,
OAuth2TokenApi oauth2TokenApi) { OAuth2TokenApi oauth2TokenApi) {
return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler, oauth2TokenApi); return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler, oauth2TokenApi);
} }
@Bean
public OAuth2TokenApi oAuth2TokenApi(){
return new OAuth2TokenApiImpl();
}
@Bean("ss") // 使用 Spring Security 的缩写方便使用 @Bean("ss") // 使用 Spring Security 的缩写方便使用
public SecurityFrameworkService securityFrameworkService(PermissionApi permissionApi) { public SecurityFrameworkService securityFrameworkService(PermissionApi permissionApi) {
return new SecurityFrameworkServiceImpl(permissionApi); return new SecurityFrameworkServiceImpl(permissionApi);

View File

@ -1,11 +1,12 @@
package cd.casic.framework.web.config; package cd.casic.framework.datapermission.config;
import cd.casic.framework.commons.config.WebProperties;
import cd.casic.framework.commons.enums.WebFilterOrderEnum; import cd.casic.framework.commons.enums.WebFilterOrderEnum;
import cd.casic.framework.datapermission.handler.GlobalExceptionHandler;
import cd.casic.framework.datapermission.handler.GlobalResponseBodyHandler;
import cd.casic.framework.web.core.filter.CacheRequestBodyFilter; import cd.casic.framework.web.core.filter.CacheRequestBodyFilter;
import cd.casic.framework.web.core.filter.DemoFilter; import cd.casic.framework.web.core.filter.DemoFilter;
import cd.casic.framework.web.core.handler.GlobalExceptionHandler; import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import cd.casic.framework.web.core.handler.GlobalResponseBodyHandler;
import cd.casic.framework.web.core.util.WebFrameworkUtils;
import cd.casic.module.infra.api.logger.ApiErrorLogApi; import cd.casic.module.infra.api.logger.ApiErrorLogApi;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.Filter; import jakarta.servlet.Filter;

View File

@ -1,7 +1,9 @@
package cd.casic.framework.security.config; package cd.casic.framework.datapermission.config;
import cd.casic.framework.security.core.filter.TokenAuthenticationFilter; import cd.casic.framework.commons.config.WebProperties;
import cd.casic.framework.web.config.WebProperties; import cd.casic.framework.datapermission.core.filter.TokenAuthenticationFilter;
import cd.casic.framework.security.config.AuthorizeRequestsCustomizer;
import cd.casic.framework.security.config.SecurityProperties;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;

View File

@ -1,7 +1,8 @@
package cd.casic.framework.xss.config; package cd.casic.framework.datapermission.config;
import cd.casic.framework.commons.enums.WebFilterOrderEnum; import cd.casic.framework.commons.enums.WebFilterOrderEnum;
import cd.casic.framework.xss.config.XssProperties;
import cd.casic.framework.xss.core.clean.JsoupXssCleaner; import cd.casic.framework.xss.core.clean.JsoupXssCleaner;
import cd.casic.framework.xss.core.clean.XssCleaner; import cd.casic.framework.xss.core.clean.XssCleaner;
import cd.casic.framework.xss.core.filter.XssFilter; import cd.casic.framework.xss.core.filter.XssFilter;
@ -18,7 +19,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.util.PathMatcher; import org.springframework.util.PathMatcher;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import static cd.casic.framework.web.config.OpsWebAutoConfiguration.createFilterBean;
@AutoConfiguration @AutoConfiguration
@EnableConfigurationProperties(XssProperties.class) @EnableConfigurationProperties(XssProperties.class)
@ -58,7 +58,7 @@ public class OpsXssAutoConfiguration implements WebMvcConfigurer {
@Bean @Bean
@ConditionalOnBean(XssCleaner.class) @ConditionalOnBean(XssCleaner.class)
public FilterRegistrationBean<XssFilter> xssFilter(XssProperties properties, PathMatcher pathMatcher, XssCleaner xssCleaner) { public FilterRegistrationBean<XssFilter> xssFilter(XssProperties properties, PathMatcher pathMatcher, XssCleaner xssCleaner) {
return createFilterBean(new XssFilter(properties, pathMatcher, xssCleaner), WebFilterOrderEnum.XSS_FILTER); return OpsWebAutoConfiguration.createFilterBean(new XssFilter(properties, pathMatcher, xssCleaner), WebFilterOrderEnum.XSS_FILTER);
} }
} }

View File

@ -0,0 +1,49 @@
package cd.casic.framework.datapermission.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Collections;
import java.util.Set;
/**
* 多租户配置
*
* @author mianbin modified from yudao
*/
@ConfigurationProperties(prefix = "ops.tenant")
@Data
public class TenantProperties {
/**
* 租户是否开启
*/
private static final Boolean ENABLE_DEFAULT = true;
/**
* 是否开启
*/
private Boolean enable = ENABLE_DEFAULT;
/**
* 需要忽略多租户的请求
*
* 默认情况下每个请求需要带上 tenant-id 的请求头但是部分请求是无需带上的例如说短信回调支付回调等 Open API
*/
private Set<String> ignoreUrls = Collections.emptySet();
/**
* 需要忽略多租户的表
*
* 即默认所有表都开启多租户的功能所以记得添加对应的 tenant_id 字段哟
*/
private Set<String> ignoreTables = Collections.emptySet();
/**
* 需要忽略多租户的 Spring Cache 缓存
*
* 即默认所有缓存都开启多租户的功能所以记得添加对应的 tenant_id 字段哟
*/
private Set<String> ignoreCaches = Collections.emptySet();
}

View File

@ -1,7 +1,7 @@
package cd.casic.module.system.convert.tenant; package cd.casic.framework.datapermission.convert;
import cd.casic.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; import cd.casic.framework.security.vo.vo.tenant.TenantSaveReqVO;
import cd.casic.module.system.controller.admin.user.vo.user.UserSaveReqVO; import cd.casic.framework.datapermission.core.vo.UserSaveReqVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;

View File

@ -1,18 +1,18 @@
package cd.casic.module.system.convert.user; package cd.casic.framework.datapermission.convert;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.framework.commons.util.collection.MapUtils; import cd.casic.framework.commons.util.collection.MapUtils;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; import cd.casic.framework.security.vo.dept.DeptSimpleRespVO;
import cd.casic.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; import cd.casic.framework.security.vo.dept.post.PostSimpleRespVO;
import cd.casic.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO; import cd.casic.framework.datapermission.core.vo.role.RoleSimpleRespVO;
import cd.casic.module.system.controller.admin.user.vo.profile.UserProfileRespVO; import cd.casic.framework.datapermission.service.auth.vo.profile.UserProfileRespVO;
import cd.casic.module.system.controller.admin.user.vo.user.UserRespVO; import cd.casic.framework.datapermission.core.vo.UserRespVO;
import cd.casic.module.system.controller.admin.user.vo.user.UserSimpleRespVO; import cd.casic.framework.datapermission.core.vo.UserSimpleRespVO;
import cd.casic.module.system.dal.dataobject.dept.DeptDO; import cd.casic.framework.commons.dataobject.dept.DeptDO;
import cd.casic.module.system.dal.dataobject.dept.PostDO; import cd.casic.framework.commons.dataobject.dept.PostDO;
import cd.casic.module.system.dal.dataobject.permission.RoleDO; import cd.casic.framework.security.dal.permission.RoleDO;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO; import cd.casic.framework.security.dal.user.AdminUserDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;

View File

@ -1,10 +1,10 @@
package cd.casic.module.system.dal.mysql.user; package cd.casic.framework.datapermission.core.dal;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.datapermission.core.vo.UserPageReqVO;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
import cd.casic.module.system.controller.admin.user.vo.user.UserPageReqVO; import cd.casic.framework.security.dal.user.AdminUserDO;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Collection; import java.util.Collection;

View File

@ -1,10 +1,10 @@
package cd.casic.module.system.dal.mysql.logger; package cd.casic.framework.datapermission.core.dal;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
import cd.casic.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; import cd.casic.framework.security.vo.loginlog.LoginLogPageReqVO;
import cd.casic.module.system.dal.dataobject.logger.LoginLogDO; import cd.casic.framework.security.vo.logger.LoginLogDO;
import cd.casic.module.system.enums.logger.LoginResultEnum; import cd.casic.module.system.enums.logger.LoginResultEnum;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,9 +1,10 @@
package cd.casic.module.system.dal.mysql.permission; package cd.casic.framework.datapermission.core.dal;
import cd.casic.framework.datapermission.core.dal.dataobject.MenuDO;
import cd.casic.framework.datapermission.service.permission.menu.MenuListReqVO;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuListReqVO;
import cd.casic.module.system.dal.dataobject.permission.MenuDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@ -1,11 +1,11 @@
package cd.casic.module.system.dal.mysql.permission; package cd.casic.framework.datapermission.core.dal;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.mybatis.core.dataobject.BaseDO; import cd.casic.framework.commons.dataobject.BaseDO;
import cd.casic.framework.datapermission.core.vo.RolePageReqVO;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
import cd.casic.module.system.controller.admin.permission.vo.role.RolePageReqVO; import cd.casic.framework.security.dal.permission.RoleDO;
import cd.casic.module.system.dal.dataobject.permission.RoleDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;

View File

@ -1,10 +1,10 @@
package cd.casic.module.system.dal.mysql.tenant; package cd.casic.framework.datapermission.core.dal;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
import cd.casic.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; import cd.casic.framework.security.vo.vo.tenant.TenantPageReqVO;
import cd.casic.module.system.dal.dataobject.tenant.TenantDO; import cd.casic.framework.security.dal.tenant.TenantDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@ -1,10 +1,11 @@
package cd.casic.module.system.dal.mysql.tenant; package cd.casic.framework.datapermission.core.dal;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.datapermission.core.vo.packages.TenantPackagePageReqVO;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
import cd.casic.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO;
import cd.casic.module.system.dal.dataobject.tenant.TenantPackageDO; import cd.casic.framework.security.dal.tenant.TenantPackageDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,7 @@
package cd.casic.module.system.dal.dataobject.permission; package cd.casic.framework.datapermission.core.dal.dataobject;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.mybatis.core.dataobject.BaseDO; import cd.casic.framework.commons.dataobject.BaseDO;
import cd.casic.module.system.enums.permission.MenuTypeEnum; import cd.casic.module.system.enums.permission.MenuTypeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,14 +1,14 @@
package cd.casic.framework.security.core.filter; package cd.casic.framework.datapermission.core.filter;
import cd.casic.framework.commons.exception.ServiceException; import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.pojo.CommonResult; import cd.casic.framework.commons.pojo.CommonResult;
import cd.casic.framework.commons.util.servlet.ServletUtils; import cd.casic.framework.commons.util.servlet.ServletUtils;
import cd.casic.framework.datapermission.service.user.OAuth2TokenApi;
import cd.casic.framework.security.config.SecurityProperties; import cd.casic.framework.security.config.SecurityProperties;
import cd.casic.framework.security.core.util.SecurityFrameworkUtils; import cd.casic.framework.security.core.util.SecurityFrameworkUtils;
import cd.casic.framework.security.core.LoginUser; import cd.casic.framework.security.core.LoginUser;
import cd.casic.framework.web.core.handler.GlobalExceptionHandler; import cd.casic.framework.datapermission.handler.GlobalExceptionHandler;
import cd.casic.framework.web.core.util.WebFrameworkUtils; import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import cd.casic.module.system.api.oauth2.OAuth2TokenApi;
import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;

View File

@ -4,11 +4,11 @@ import cd.casic.framework.commons.enums.UserTypeEnum;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.framework.commons.util.json.JsonUtils; import cd.casic.framework.commons.util.json.JsonUtils;
import cd.casic.framework.datapermission.core.rule.DataPermissionRule; import cd.casic.framework.datapermission.core.rule.DataPermissionRule;
import cd.casic.framework.mybatis.core.dataobject.BaseDO; import cd.casic.framework.commons.dataobject.BaseDO;
import cd.casic.framework.datapermission.service.PermissionApi;
import cd.casic.framework.mybatis.core.util.MyBatisUtils; import cd.casic.framework.mybatis.core.util.MyBatisUtils;
import cd.casic.framework.security.core.LoginUser; import cd.casic.framework.security.core.LoginUser;
import cd.casic.framework.security.core.util.SecurityFrameworkUtils; import cd.casic.framework.security.core.util.SecurityFrameworkUtils;
import cd.casic.module.system.api.permission.PermissionApi;
import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.role; package cd.casic.framework.datapermission.core.vo;
import cd.casic.framework.commons.pojo.PageParam; import cd.casic.framework.commons.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@ -1,8 +1,10 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import cd.casic.framework.excel.excel.core.annotations.DictFormat; import cd.casic.framework.excel.excel.core.annotations.DictFormat;
import cd.casic.framework.excel.excel.core.convert.DictConvert; import cd.casic.framework.excel.excel.core.convert.DictConvert;
import cd.casic.module.system.enums.DictTypeConstants; import cd.casic.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import cd.casic.framework.commons.pojo.PageParam; import cd.casic.framework.commons.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import cd.casic.framework.excel.excel.core.annotations.DictFormat; import cd.casic.framework.excel.excel.core.annotations.DictFormat;
import cd.casic.framework.excel.excel.core.convert.DictConvert; import cd.casic.framework.excel.excel.core.convert.DictConvert;

View File

@ -1,10 +1,11 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import cd.casic.framework.datapermission.operatelog.core.DeptParseFunction;
import cd.casic.framework.datapermission.operatelog.core.PostParseFunction;
import cd.casic.framework.datapermission.operatelog.core.SexParseFunction;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cd.casic.framework.commons.validation.Mobile; import cd.casic.framework.commons.validation.Mobile;
import cd.casic.module.system.framework.operatelog.core.DeptParseFunction;
import cd.casic.module.system.framework.operatelog.core.PostParseFunction;
import cd.casic.module.system.framework.operatelog.core.SexParseFunction;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mzt.logapi.starter.annotation.DiffLogField; import com.mzt.logapi.starter.annotation.DiffLogField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.user; package cd.casic.framework.datapermission.core.vo;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.validation.InEnum; import cd.casic.framework.commons.validation.InEnum;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.tenant.vo.packages; package cd.casic.framework.datapermission.core.vo.packages;
import cd.casic.framework.commons.pojo.PageParam; import cd.casic.framework.commons.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.tenant.vo.packages; package cd.casic.framework.datapermission.core.vo.packages;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.tenant.vo.packages; package cd.casic.framework.datapermission.core.vo.packages;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.validation.InEnum; import cd.casic.framework.commons.validation.InEnum;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.tenant.vo.packages; package cd.casic.framework.datapermission.core.vo.packages;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.role; package cd.casic.framework.datapermission.core.vo.role;
import cd.casic.framework.excel.excel.core.annotations.DictFormat; import cd.casic.framework.excel.excel.core.annotations.DictFormat;
import cd.casic.framework.excel.excel.core.convert.DictConvert; import cd.casic.framework.excel.excel.core.convert.DictConvert;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.role; package cd.casic.framework.datapermission.core.vo.role;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.validation.InEnum; import cd.casic.framework.commons.validation.InEnum;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.role; package cd.casic.framework.datapermission.core.vo.role;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.framework.web.core.handler; package cd.casic.framework.datapermission.handler;
import cd.casic.module.infra.api.logger.ApiErrorLogApi; import cd.casic.module.infra.api.logger.ApiErrorLogApi;
import cd.casic.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; import cd.casic.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO;
@ -14,7 +14,7 @@ import cd.casic.framework.commons.util.collection.SetUtils;
import cd.casic.framework.commons.util.json.JsonUtils; import cd.casic.framework.commons.util.json.JsonUtils;
import cd.casic.framework.commons.util.monitor.TracerUtils; import cd.casic.framework.commons.util.monitor.TracerUtils;
import cd.casic.framework.commons.util.servlet.ServletUtils; import cd.casic.framework.commons.util.servlet.ServletUtils;
import cd.casic.framework.web.core.util.WebFrameworkUtils; import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import com.fasterxml.jackson.databind.exc.InvalidFormatException; import com.fasterxml.jackson.databind.exc.InvalidFormatException;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@ -25,6 +25,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.AccessDeniedException;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.validation.BindException; import org.springframework.validation.BindException;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
@ -51,6 +52,7 @@ import static cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstant
@RestControllerAdvice @RestControllerAdvice
@AllArgsConstructor @AllArgsConstructor
@Slf4j @Slf4j
@Component
public class GlobalExceptionHandler { public class GlobalExceptionHandler {
/** /**

View File

@ -1,7 +1,7 @@
package cd.casic.framework.web.core.handler; package cd.casic.framework.datapermission.handler;
import cd.casic.framework.commons.pojo.CommonResult; import cd.casic.framework.commons.pojo.CommonResult;
import cd.casic.framework.web.core.util.WebFrameworkUtils; import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpRequest;

View File

@ -1,9 +1,9 @@
package cd.casic.module.system.framework.operatelog.core; package cd.casic.framework.datapermission.operatelog.core;
import cd.casic.framework.datapermission.service.user.AdminUserService;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO; import cd.casic.framework.security.dal.user.AdminUserDO;
import cd.casic.module.system.service.user.AdminUserService;
import com.mzt.logapi.service.IParseFunction; import com.mzt.logapi.service.IParseFunction;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -1,6 +1,7 @@
package cd.casic.module.system.framework.operatelog.core; package cd.casic.framework.datapermission.operatelog.core;
import cd.casic.framework.redis.core.utils.AreaUtils;
import cd.casic.framework.commons.util.redis.core.utils.AreaUtils;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.mzt.logapi.service.IParseFunction; import com.mzt.logapi.service.IParseFunction;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.framework.operatelog.core; package cd.casic.framework.datapermission.operatelog.core;
import cd.casic.framework.excel.dict.core.DictFrameworkUtils; import cd.casic.framework.excel.dict.core.DictFrameworkUtils;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;

View File

@ -1,9 +1,9 @@
package cd.casic.module.system.framework.operatelog.core; package cd.casic.framework.datapermission.operatelog.core;
import cd.casic.framework.commons.dataobject.dept.DeptDO;
import cd.casic.framework.datapermission.service.dept.DeptService;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cd.casic.module.system.dal.dataobject.dept.DeptDO;
import cd.casic.module.system.service.dept.DeptService;
import com.mzt.logapi.service.IParseFunction; import com.mzt.logapi.service.IParseFunction;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -1,9 +1,10 @@
package cd.casic.module.system.framework.operatelog.core; package cd.casic.framework.datapermission.operatelog.core;
import cd.casic.framework.commons.dataobject.dept.PostDO;
import cd.casic.framework.datapermission.service.dept.PostService;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cd.casic.module.system.dal.dataobject.dept.PostDO;
import cd.casic.module.system.service.dept.PostService;
import com.mzt.logapi.service.IParseFunction; import com.mzt.logapi.service.IParseFunction;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.framework.operatelog.core; package cd.casic.framework.datapermission.operatelog.core;
import cd.casic.framework.excel.dict.core.DictFrameworkUtils; import cd.casic.framework.excel.dict.core.DictFrameworkUtils;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;

View File

@ -0,0 +1,4 @@
/**
* 占位文件避免文件夹缩进
*/
package cd.casic.framework.datapermission.operatelog;

View File

@ -1,10 +1,11 @@
package cd.casic.module.system.service.permission; package cd.casic.framework.datapermission.service;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuListReqVO;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuSaveVO; import cd.casic.framework.datapermission.core.dal.dataobject.MenuDO;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuTreeVO; import cd.casic.framework.datapermission.service.permission.menu.MenuListReqVO;
import cd.casic.module.system.dal.dataobject.permission.MenuDO; import cd.casic.framework.datapermission.service.permission.menu.MenuSaveVO;
import cd.casic.framework.datapermission.service.permission.menu.MenuTreeVO;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;

View File

@ -1,17 +1,18 @@
package cd.casic.module.system.service.permission; package cd.casic.framework.datapermission.service;
import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.framework.datapermission.core.dal.MenuMapper;
import cd.casic.framework.datapermission.service.permission.menu.MenuListReqVO;
import cd.casic.framework.datapermission.service.permission.menu.MenuSaveVO;
import cd.casic.framework.datapermission.service.permission.menu.MenuTreeVO;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuTreeVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuListReqVO; import cd.casic.framework.security.redis.RedisKeyConstants;
import cd.casic.module.system.controller.admin.permission.vo.menu.MenuSaveVO;
import cd.casic.module.system.dal.dataobject.permission.MenuDO;
import cd.casic.module.system.dal.mysql.permission.MenuMapper;
import cd.casic.module.system.dal.redis.RedisKeyConstants;
import cd.casic.module.system.enums.permission.MenuTypeEnum; import cd.casic.module.system.enums.permission.MenuTypeEnum;
import cd.casic.module.system.service.tenant.TenantService;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -28,9 +29,8 @@ import java.util.stream.Collectors;
import static cd.casic.framework.commons.exception.util.ServiceExceptionUtil.exception; import static cd.casic.framework.commons.exception.util.ServiceExceptionUtil.exception;
import static cd.casic.framework.commons.util.collection.CollectionUtils.convertList; import static cd.casic.framework.commons.util.collection.CollectionUtils.convertList;
import static cd.casic.framework.commons.util.collection.CollectionUtils.convertMap; import static cd.casic.framework.commons.util.collection.CollectionUtils.convertMap;
import static cd.casic.module.system.dal.dataobject.permission.MenuDO.ID_ROOT;
import static cd.casic.module.system.enums.ErrorCodeConstants.*; import static cd.casic.module.system.enums.ErrorCodeConstants.*;
import cd.casic.framework.datapermission.core.dal.dataobject.MenuDO;
/** /**
* 菜单 Service 实现 * 菜单 Service 实现
* *
@ -150,7 +150,7 @@ public class MenuServiceImpl implements MenuService {
// 2. 遍历到 parentId 为根节点则无需判断 // 2. 遍历到 parentId 为根节点则无需判断
Long parentId = node.getParentId(); Long parentId = node.getParentId();
if (ObjUtil.equal(parentId, ID_ROOT)) { if (ObjUtil.equal(parentId, MenuDO.ID_ROOT)) {
return false; return false;
} }
@ -172,7 +172,7 @@ public class MenuServiceImpl implements MenuService {
@Cacheable(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#permission") @Cacheable(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#permission")
public List<Long> getMenuIdListByPermissionFromCache(String permission) { public List<Long> getMenuIdListByPermissionFromCache(String permission) {
List<MenuDO> menus = menuMapper.selectListByPermission(permission); List<MenuDO> menus = menuMapper.selectListByPermission(permission);
return convertList(menus, MenuDO::getId); return CollectionUtils.convertList(menus, MenuDO::getId);
} }
@Override @Override
@ -200,8 +200,8 @@ public class MenuServiceImpl implements MenuService {
* @param childId 当前菜单编号 * @param childId 当前菜单编号
*/ */
@VisibleForTesting @VisibleForTesting
void validateParentMenu(Long parentId, Long childId) { public void validateParentMenu(Long parentId, Long childId) {
if (parentId == null || ID_ROOT.equals(parentId)) { if (parentId == null || MenuDO.ID_ROOT.equals(parentId)) {
return; return;
} }
// 不能设置自己为父菜单 // 不能设置自己为父菜单
@ -230,7 +230,7 @@ public class MenuServiceImpl implements MenuService {
* @param id 菜单编号 * @param id 菜单编号
*/ */
@VisibleForTesting @VisibleForTesting
void validateMenu(Long parentId, String name, Long id) { public void validateMenu(Long parentId, String name, Long id) {
MenuDO menu = menuMapper.selectByParentIdAndName(parentId, name); MenuDO menu = menuMapper.selectByParentIdAndName(parentId, name);
if (menu == null) { if (menu == null) {
return; return;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.api.permission; package cd.casic.framework.datapermission.service;
import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO;

View File

@ -1,8 +1,7 @@
package cd.casic.module.system.api.permission; package cd.casic.framework.datapermission.service;
import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cd.casic.module.system.service.permission.PermissionService; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import java.util.Collection; import java.util.Collection;
@ -13,7 +12,7 @@ import java.util.Set;
* *
* @author mianbin modified from yudao * @author mianbin modified from yudao
*/ */
@Service @Component
public class PermissionApiImpl implements PermissionApi { public class PermissionApiImpl implements PermissionApi {
@Resource @Resource

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.service.permission; package cd.casic.framework.datapermission.service;
import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO;

View File

@ -1,5 +1,10 @@
package cd.casic.module.system.service.permission; package cd.casic.framework.datapermission.service;
import cd.casic.framework.datapermission.core.dal.dataobject.MenuDO;
import cd.casic.framework.datapermission.service.dept.DeptService;
import cd.casic.framework.security.dal.permission.*;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
@ -8,16 +13,9 @@ import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.framework.datapermission.core.annotation.DataPermission; import cd.casic.framework.datapermission.core.annotation.DataPermission;
import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cd.casic.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cd.casic.module.system.dal.dataobject.permission.MenuDO; import cd.casic.framework.security.redis.RedisKeyConstants;
import cd.casic.module.system.dal.dataobject.permission.RoleDO;
import cd.casic.module.system.dal.dataobject.permission.RoleMenuDO;
import cd.casic.module.system.dal.dataobject.permission.UserRoleDO;
import cd.casic.module.system.dal.mysql.permission.RoleMenuMapper;
import cd.casic.module.system.dal.mysql.permission.UserRoleMapper;
import cd.casic.module.system.dal.redis.RedisKeyConstants;
import cd.casic.module.system.enums.permission.DataScopeEnum; import cd.casic.module.system.enums.permission.DataScopeEnum;
import cd.casic.module.system.service.dept.DeptService; import cd.casic.framework.datapermission.service.user.AdminUserService;
import cd.casic.module.system.service.user.AdminUserService;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Suppliers; import com.google.common.base.Suppliers;
@ -201,7 +199,6 @@ public class PermissionServiceImpl implements PermissionService {
} }
// ========== 用户-角色的相关方法 ========== // ========== 用户-角色的相关方法 ==========
@Override @Override
@DSTransactional // 多数据源使用 @DSTransactional 保证本地事务以及数据源的切换 @DSTransactional // 多数据源使用 @DSTransactional 保证本地事务以及数据源的切换
@CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId") @CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId")
@ -256,7 +253,7 @@ public class PermissionServiceImpl implements PermissionService {
* @return 用户拥有的角色 * @return 用户拥有的角色
*/ */
@VisibleForTesting @VisibleForTesting
List<RoleDO> getEnableUserRoleListByUserIdFromCache(Long userId) { public List<RoleDO> getEnableUserRoleListByUserIdFromCache(Long userId) {
// 获得用户拥有的角色编号 // 获得用户拥有的角色编号
Set<Long> roleIds = getSelf().getUserRoleIdListByUserIdFromCache(userId); Set<Long> roleIds = getSelf().getUserRoleIdListByUserIdFromCache(userId);
// 获得角色数组并移除被禁用的 // 获得角色数组并移除被禁用的

View File

@ -1,10 +1,10 @@
package cd.casic.module.system.service.permission; package cd.casic.framework.datapermission.service;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.system.controller.admin.permission.vo.role.RolePageReqVO; import cd.casic.framework.datapermission.core.vo.RolePageReqVO;
import cd.casic.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; import cd.casic.framework.datapermission.core.vo.role.RoleSaveReqVO;
import cd.casic.module.system.dal.dataobject.permission.RoleDO; import cd.casic.framework.security.dal.permission.RoleDO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;

View File

@ -1,5 +1,10 @@
package cd.casic.module.system.service.permission; package cd.casic.framework.datapermission.service;
import cd.casic.framework.commons.exception.util.ServiceExceptionUtil;
import cd.casic.framework.datapermission.core.vo.RolePageReqVO;
import cd.casic.framework.datapermission.core.vo.role.RoleSaveReqVO;
import cd.casic.framework.security.dal.permission.RoleDO;
import cd.casic.framework.datapermission.core.dal.RoleMapper;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
@ -9,11 +14,7 @@ import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.module.system.controller.admin.permission.vo.role.RolePageReqVO; import cd.casic.framework.security.redis.RedisKeyConstants;
import cd.casic.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
import cd.casic.module.system.dal.dataobject.permission.RoleDO;
import cd.casic.module.system.dal.mysql.permission.RoleMapper;
import cd.casic.module.system.dal.redis.RedisKeyConstants;
import cd.casic.module.system.enums.permission.DataScopeEnum; import cd.casic.module.system.enums.permission.DataScopeEnum;
import cd.casic.module.system.enums.permission.RoleCodeEnum; import cd.casic.module.system.enums.permission.RoleCodeEnum;
import cd.casic.module.system.enums.permission.RoleTypeEnum; import cd.casic.module.system.enums.permission.RoleTypeEnum;
@ -133,7 +134,7 @@ public class RoleServiceImpl implements RoleService {
* @param id 角色编号 * @param id 角色编号
*/ */
@VisibleForTesting @VisibleForTesting
void validateRoleDuplicate(String name, String code, Long id) { public void validateRoleDuplicate(String name, String code, Long id) {
// 0. 超级管理员不允许创建 // 0. 超级管理员不允许创建
if (RoleCodeEnum.isSuperAdmin(code)) { if (RoleCodeEnum.isSuperAdmin(code)) {
throw exception(ROLE_ADMIN_CODE_ERROR, code); throw exception(ROLE_ADMIN_CODE_ERROR, code);
@ -160,7 +161,7 @@ public class RoleServiceImpl implements RoleService {
* @param id 角色编号 * @param id 角色编号
*/ */
@VisibleForTesting @VisibleForTesting
RoleDO validateRoleForUpdate(Long id) { public RoleDO validateRoleForUpdate(Long id) {
RoleDO role = roleMapper.selectById(id); RoleDO role = roleMapper.selectById(id);
if (role == null) { if (role == null) {
throw exception(ROLE_NOT_EXISTS); throw exception(ROLE_NOT_EXISTS);
@ -245,7 +246,7 @@ public class RoleServiceImpl implements RoleService {
throw exception(ROLE_NOT_EXISTS); throw exception(ROLE_NOT_EXISTS);
} }
if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) { if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {
throw exception(ROLE_IS_DISABLE, role.getName()); throw ServiceExceptionUtil.exception(ROLE_IS_DISABLE, role.getName());
} }
}); });
} }

View File

@ -0,0 +1,59 @@
package cd.casic.framework.datapermission.service;
/**
* Security 框架 Service 接口定义权限相关的校验操作
*
* @author mianbin modified from yudao
*/
public interface SecurityFrameworkService {
/**
* 判断是否有权限
*
* @param permission 权限
* @return 是否
*/
boolean hasPermission(String permission);
/**
* 判断是否有权限任一一个即可
*
* @param permissions 权限
* @return 是否
*/
boolean hasAnyPermissions(String... permissions);
/**
* 判断是否有角色
*
* 注意角色使用的是 SysRoleDO code 标识
*
* @param role 角色
* @return 是否
*/
boolean hasRole(String role);
/**
* 判断是否有角色任一一个即可
*
* @param roles 角色数组
* @return 是否
*/
boolean hasAnyRoles(String... roles);
/**
* 判断是否有授权
*
* @param scope 授权
* @return 是否
*/
boolean hasScope(String scope);
/**
* 判断是否有授权范围任一一个即可
*
* @param scope 授权范围数组
* @return 是否
*/
boolean hasAnyScopes(String... scope);
}

View File

@ -1,8 +1,7 @@
package cd.casic.framework.security.core.service; package cd.casic.framework.datapermission.service;
import cd.casic.framework.security.core.LoginUser; import cd.casic.framework.security.core.LoginUser;
import cd.casic.framework.security.core.util.SecurityFrameworkUtils; import cd.casic.framework.security.core.util.SecurityFrameworkUtils;
import cd.casic.module.system.api.permission.PermissionApi;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,9 +1,9 @@
package cd.casic.module.system.service.tenant; package cd.casic.framework.datapermission.service;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; import cd.casic.framework.datapermission.core.vo.packages.TenantPackagePageReqVO;
import cd.casic.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; import cd.casic.framework.datapermission.core.vo.packages.TenantPackageSaveReqVO;
import cd.casic.module.system.dal.dataobject.tenant.TenantPackageDO; import cd.casic.framework.security.dal.tenant.TenantPackageDO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.util.List; import java.util.List;

View File

@ -1,15 +1,16 @@
package cd.casic.module.system.service.tenant; package cd.casic.framework.datapermission.service;
import cd.casic.framework.datapermission.core.dal.TenantPackageMapper;
import cd.casic.framework.datapermission.core.vo.packages.TenantPackagePageReqVO;
import cd.casic.framework.datapermission.core.vo.packages.TenantPackageSaveReqVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO;
import cd.casic.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; import cd.casic.framework.security.dal.tenant.TenantDO;
import cd.casic.module.system.dal.dataobject.tenant.TenantDO; import cd.casic.framework.security.dal.tenant.TenantPackageDO;
import cd.casic.module.system.dal.dataobject.tenant.TenantPackageDO;
import cd.casic.module.system.dal.mysql.tenant.TenantPackageMapper;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;

View File

@ -1,12 +1,13 @@
package cd.casic.module.system.service.tenant; package cd.casic.framework.datapermission.service;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.tenant.core.context.TenantContextHolder; import cd.casic.framework.commons.context.TenantContextHolder;
import cd.casic.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO;
import cd.casic.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; import cd.casic.framework.datapermission.service.handler.TenantInfoHandler;
import cd.casic.module.system.dal.dataobject.tenant.TenantDO; import cd.casic.framework.datapermission.service.handler.TenantMenuHandler;
import cd.casic.module.system.service.tenant.handler.TenantInfoHandler; import cd.casic.framework.security.dal.tenant.TenantDO;
import cd.casic.module.system.service.tenant.handler.TenantMenuHandler; import cd.casic.framework.security.vo.vo.tenant.TenantPageReqVO;
import cd.casic.framework.security.vo.vo.tenant.TenantSaveReqVO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,20 @@
package cd.casic.module.system.service.tenant; package cd.casic.framework.datapermission.service;
import cd.casic.framework.commons.exception.util.ServiceExceptionUtil;
import cd.casic.framework.datapermission.config.TenantProperties;
import cd.casic.framework.datapermission.convert.TenantConvert;
import cd.casic.framework.datapermission.core.dal.TenantMapper;
import cd.casic.framework.datapermission.core.dal.dataobject.MenuDO;
import cd.casic.framework.datapermission.service.handler.TenantInfoHandler;
import cd.casic.framework.datapermission.service.handler.TenantMenuHandler;
import cd.casic.framework.datapermission.service.user.AdminUserService;
import cd.casic.framework.datapermission.core.vo.role.RoleSaveReqVO;
import cd.casic.framework.security.dal.permission.RoleDO;
import cd.casic.framework.security.dal.tenant.TenantDO;
import cd.casic.framework.security.dal.tenant.TenantPackageDO;
import cd.casic.framework.security.vo.vo.tenant.TenantPageReqVO;
import cd.casic.framework.security.vo.vo.tenant.TenantSaveReqVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
@ -9,33 +25,16 @@ import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.framework.commons.util.date.DateUtils; import cd.casic.framework.commons.util.date.DateUtils;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.tenant.config.TenantProperties; import cd.casic.framework.commons.context.TenantContextHolder;
import cd.casic.framework.tenant.core.context.TenantContextHolder; import cd.casic.framework.commons.util.tenant.TenantUtils;
import cd.casic.framework.tenant.core.util.TenantUtils;
import cd.casic.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
import cd.casic.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO;
import cd.casic.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO;
import cd.casic.module.system.convert.tenant.TenantConvert;
import cd.casic.module.system.dal.dataobject.permission.MenuDO;
import cd.casic.module.system.dal.dataobject.permission.RoleDO;
import cd.casic.module.system.dal.dataobject.tenant.TenantDO;
import cd.casic.module.system.dal.dataobject.tenant.TenantPackageDO;
import cd.casic.module.system.dal.mysql.tenant.TenantMapper;
import cd.casic.module.system.enums.permission.RoleCodeEnum; import cd.casic.module.system.enums.permission.RoleCodeEnum;
import cd.casic.module.system.enums.permission.RoleTypeEnum; import cd.casic.module.system.enums.permission.RoleTypeEnum;
import cd.casic.module.system.service.permission.MenuService;
import cd.casic.module.system.service.permission.PermissionService;
import cd.casic.module.system.service.permission.RoleService;
import cd.casic.module.system.service.tenant.handler.TenantInfoHandler;
import cd.casic.module.system.service.tenant.handler.TenantMenuHandler;
import cd.casic.module.system.service.user.AdminUserService;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -87,10 +86,10 @@ public class TenantServiceImpl implements TenantService {
throw exception(TENANT_NOT_EXISTS); throw exception(TENANT_NOT_EXISTS);
} }
if (tenant.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) { if (tenant.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) {
throw exception(TENANT_DISABLE, tenant.getName()); throw ServiceExceptionUtil.exception(TENANT_DISABLE, tenant.getName());
} }
if (DateUtils.isExpired(tenant.getExpireTime())) { if (DateUtils.isExpired(tenant.getExpireTime())) {
throw exception(TENANT_EXPIRE, tenant.getName()); throw ServiceExceptionUtil.exception(TENANT_EXPIRE, tenant.getName());
} }
} }

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.auth.vo; package cd.casic.framework.datapermission.service.auth.vo;
import cd.casic.framework.commons.validation.InEnum; import cd.casic.framework.commons.validation.InEnum;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.auth.vo; package cd.casic.framework.datapermission.service.auth.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.auth.vo; package cd.casic.framework.datapermission.service.auth.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.auth.vo; package cd.casic.framework.datapermission.service.auth.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,8 +1,9 @@
package cd.casic.module.system.controller.admin.user.vo.profile; package cd.casic.framework.datapermission.service.auth.vo.profile;
import cd.casic.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; import cd.casic.framework.datapermission.core.vo.role.RoleSimpleRespVO;
import cd.casic.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; import cd.casic.framework.security.vo.dept.DeptSimpleRespVO;
import cd.casic.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO;
import cd.casic.framework.security.vo.dept.post.PostSimpleRespVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.profile; package cd.casic.framework.datapermission.service.auth.vo.profile;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.user.vo.profile; package cd.casic.framework.datapermission.service.auth.vo.profile;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;

View File

@ -1,10 +1,10 @@
package cd.casic.module.system.service.dept; package cd.casic.framework.datapermission.service.dept;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import cd.casic.framework.commons.dataobject.dept.DeptDO;
import cd.casic.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; import cd.casic.framework.security.vo.dept.DeptListReqVO;
import cd.casic.module.system.dal.dataobject.dept.DeptDO; import cd.casic.framework.security.vo.dept.DeptSaveReqVO;
import java.util.*; import java.util.*;

View File

@ -1,15 +1,16 @@
package cd.casic.module.system.service.dept; package cd.casic.framework.datapermission.service.dept;
import cd.casic.framework.datapermission.core.annotation.DataPermission;
import cd.casic.framework.security.dal.dept.DeptMapper;
import cd.casic.framework.security.vo.dept.DeptListReqVO;
import cd.casic.framework.security.vo.dept.DeptSaveReqVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.datapermission.core.annotation.DataPermission;
import cd.casic.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import cd.casic.framework.commons.dataobject.dept.DeptDO;
import cd.casic.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; import cd.casic.framework.security.redis.RedisKeyConstants;
import cd.casic.module.system.dal.dataobject.dept.DeptDO;
import cd.casic.module.system.dal.mysql.dept.DeptMapper;
import cd.casic.module.system.dal.redis.RedisKeyConstants;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
@ -89,7 +90,7 @@ public class DeptServiceImpl implements DeptService {
} }
@VisibleForTesting @VisibleForTesting
void validateDeptExists(Long id) { public void validateDeptExists(Long id) {
if (id == null) { if (id == null) {
return; return;
} }
@ -100,7 +101,7 @@ public class DeptServiceImpl implements DeptService {
} }
@VisibleForTesting @VisibleForTesting
void validateParentDept(Long id, Long parentId) { public void validateParentDept(Long id, Long parentId) {
if (parentId == null || DeptDO.PARENT_ID_ROOT.equals(parentId)) { if (parentId == null || DeptDO.PARENT_ID_ROOT.equals(parentId)) {
return; return;
} }
@ -135,7 +136,7 @@ public class DeptServiceImpl implements DeptService {
} }
@VisibleForTesting @VisibleForTesting
void validateDeptNameUnique(Long id, Long parentId, String name) { public void validateDeptNameUnique(Long id, Long parentId, String name) {
DeptDO dept = deptMapper.selectByParentIdAndName(parentId, name); DeptDO dept = deptMapper.selectByParentIdAndName(parentId, name);
if (dept == null) { if (dept == null) {
return; return;

View File

@ -1,9 +1,9 @@
package cd.casic.module.system.service.dept; package cd.casic.framework.datapermission.service.dept;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.system.controller.admin.dept.vo.post.PostPageReqVO; import cd.casic.framework.security.vo.dept.post.PostPageReqVO;
import cd.casic.module.system.controller.admin.dept.vo.post.PostSaveReqVO; import cd.casic.framework.security.vo.dept.post.PostSaveReqVO;
import cd.casic.module.system.dal.dataobject.dept.PostDO; import cd.casic.framework.commons.dataobject.dept.PostDO;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import java.util.Collection; import java.util.Collection;

View File

@ -1,13 +1,14 @@
package cd.casic.module.system.service.dept; package cd.casic.framework.datapermission.service.dept;
import cd.casic.framework.security.dal.dept.PostMapper;
import cd.casic.framework.security.vo.dept.post.PostPageReqVO;
import cd.casic.framework.security.vo.dept.post.PostSaveReqVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.module.system.controller.admin.dept.vo.post.PostPageReqVO;
import cd.casic.module.system.controller.admin.dept.vo.post.PostSaveReqVO; import cd.casic.framework.commons.dataobject.dept.PostDO;
import cd.casic.module.system.dal.dataobject.dept.PostDO;
import cd.casic.module.system.dal.mysql.dept.PostMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;

View File

@ -1,6 +1,6 @@
package cd.casic.module.system.service.tenant.handler; package cd.casic.framework.datapermission.service.handler;
import cd.casic.module.system.dal.dataobject.tenant.TenantDO; import cd.casic.framework.security.dal.tenant.TenantDO;
/** /**
* 租户信息处理 * 租户信息处理

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.service.tenant.handler; package cd.casic.framework.datapermission.service.handler;
import java.util.Set; import java.util.Set;

View File

@ -1,10 +1,10 @@
package cd.casic.module.system.service.logger; package cd.casic.framework.datapermission.service.log;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.security.vo.logger.LoginLogDO;
import cd.casic.framework.security.vo.loginlog.LoginLogPageReqVO;
import cd.casic.module.system.api.logger.dto.LoginLogCreateReqDTO; import cd.casic.module.system.api.logger.dto.LoginLogCreateReqDTO;
import cd.casic.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
import cd.casic.module.system.dal.dataobject.logger.LoginLogDO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
/** /**

View File

@ -1,11 +1,12 @@
package cd.casic.module.system.service.logger; package cd.casic.framework.datapermission.service.log;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.datapermission.core.dal.LoginLogMapper;
import cd.casic.framework.security.vo.logger.LoginLogDO;
import cd.casic.framework.security.vo.loginlog.LoginLogPageReqVO;
import cd.casic.module.system.api.logger.dto.LoginLogCreateReqDTO; import cd.casic.module.system.api.logger.dto.LoginLogCreateReqDTO;
import cd.casic.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
import cd.casic.module.system.dal.dataobject.logger.LoginLogDO;
import cd.casic.module.system.dal.mysql.logger.LoginLogMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.menu; package cd.casic.framework.datapermission.service.permission.menu;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.menu; package cd.casic.framework.datapermission.service.permission.menu;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.menu; package cd.casic.framework.datapermission.service.permission.menu;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.menu; package cd.casic.framework.datapermission.service.permission.menu;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.controller.admin.permission.vo.menu; package cd.casic.framework.datapermission.service.permission.menu;
import cd.casic.framework.commons.enums.CommonStatusEnum; import cd.casic.framework.commons.enums.CommonStatusEnum;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;

View File

@ -1,15 +1,17 @@
package cd.casic.module.system.service.user; package cd.casic.framework.datapermission.service.user;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.collection.CollectionUtils; import cd.casic.framework.commons.util.collection.CollectionUtils;
import cd.casic.module.system.controller.admin.auth.vo.AuthRegisterReqVO; import cd.casic.framework.datapermission.core.service.auth.vo.AuthRegisterReqVO;
import cd.casic.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
import cd.casic.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cd.casic.framework.datapermission.service.auth.vo.profile.UserProfileUpdatePasswordReqVO;
import cd.casic.module.system.controller.admin.user.vo.user.UserImportExcelVO; import cd.casic.framework.datapermission.service.auth.vo.profile.UserProfileUpdateReqVO;
import cd.casic.module.system.controller.admin.user.vo.user.UserImportRespVO; import cd.casic.framework.security.dal.user.AdminUserDO;
import cd.casic.module.system.controller.admin.user.vo.user.UserPageReqVO; import cd.casic.framework.datapermission.core.vo.UserImportExcelVO;
import cd.casic.module.system.controller.admin.user.vo.user.UserSaveReqVO; import cd.casic.framework.datapermission.core.vo.UserImportRespVO;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO; import cd.casic.framework.datapermission.core.vo.UserPageReqVO;
import cd.casic.framework.datapermission.core.vo.UserSaveReqVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import jakarta.validation.Valid; import jakarta.validation.Valid;

View File

@ -1,4 +1,4 @@
package cd.casic.module.system.api.oauth2; package cd.casic.framework.datapermission.service.user;
import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO; import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;

View File

@ -1,11 +1,10 @@
package cd.casic.module.system.api.oauth2; package cd.casic.framework.datapermission.service.user;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.security.dal.oauth2.OAuth2AccessTokenDO;
import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO; import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; import cd.casic.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO;
import cd.casic.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import cd.casic.module.system.service.oauth2.OAuth2TokenService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;

View File

@ -1,9 +1,10 @@
package cd.casic.module.system.service.oauth2; package cd.casic.framework.datapermission.service.user;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; import cd.casic.framework.security.dal.oauth2.OAuth2AccessTokenDO;
import cd.casic.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import cd.casic.framework.security.vo.vo.token.OAuth2AccessTokenPageReqVO;
import java.util.List; import java.util.List;

View File

@ -1,5 +1,12 @@
package cd.casic.module.system.service.oauth2; package cd.casic.framework.datapermission.service.user;
import cd.casic.framework.commons.context.TenantContextHolder;
import cd.casic.framework.commons.util.tenant.TenantUtils;
import cd.casic.framework.security.dal.oauth2.*;
import cd.casic.framework.security.dal.user.AdminUserDO;
import cd.casic.framework.security.oauth2.OAuth2ClientService;
import cd.casic.framework.security.redis.oauth2.OAuth2AccessTokenRedisDAO;
import cd.casic.framework.security.vo.vo.token.OAuth2AccessTokenPageReqVO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
@ -11,17 +18,6 @@ import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.date.DateUtils; import cd.casic.framework.commons.util.date.DateUtils;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.security.core.LoginUser; import cd.casic.framework.security.core.LoginUser;
import cd.casic.framework.tenant.core.context.TenantContextHolder;
import cd.casic.framework.tenant.core.util.TenantUtils;
import cd.casic.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
import cd.casic.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import cd.casic.module.system.dal.dataobject.oauth2.OAuth2ClientDO;
import cd.casic.module.system.dal.dataobject.oauth2.OAuth2RefreshTokenDO;
import cd.casic.module.system.dal.dataobject.user.AdminUserDO;
import cd.casic.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper;
import cd.casic.module.system.dal.mysql.oauth2.OAuth2RefreshTokenMapper;
import cd.casic.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO;
import cd.casic.module.system.service.user.AdminUserService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -54,7 +50,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
@Resource @Resource
private OAuth2ClientService oauth2ClientService; private OAuth2ClientService oauth2ClientService;
@Resource @Resource
@Lazy // 懒加载避免循环依赖 // @Lazy // 懒加载避免循环依赖
private AdminUserService adminUserService; private AdminUserService adminUserService;
@Override @Override

Some files were not shown because too many files have changed in this diff Show More