From e9328b45426d3a494ae023aa317be270c2cf78da Mon Sep 17 00:00:00 2001 From: ant Date: Tue, 28 May 2024 17:39:58 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E8=B0=83=E6=95=B4=E5=BF=98=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chushang-common/chushang-common-bom/pom.xml | 5 + .../common/core/constant/CommonConstants.java | 1 + .../core/constant/SecurityConstants.java | 4 + .../chushang/common/core/util/JwtUtils.java | 16 + .../com/chushang/common/core/web/Result.java | 14 +- .../chushang-common-data-scope/pom.xml | 24 + .../datascope}/annotation/DataScope.java | 2 +- .../datascope}/aspect/DataScopeAspect.java | 86 ++- .../datascope/entity/DataScopeEntity.java | 29 + .../main/resources/META-INF/spring.factories | 1 + .../common/log/aspect/SysLogAspect.java | 34 +- .../log/constant/LogApplicationName.java | 18 + .../common/log/entity/SysLogEntity.java | 11 +- .../common/log/entity/dto/ListLogDTO.java | 12 +- .../log/{ => entity}/mapper/SysLogMapper.java | 6 +- .../common/log/enums/BusinessType.java | 2 +- .../common/log/service/SysLogService.java | 35 +- .../log/service/impl/SysLogServiceImpl.java | 6 +- .../mybatis/MybatisAutoConfiguration.java | 41 +- .../security/aspect/InnerAuthAspect.java | 4 +- .../context/SecurityContextHolder.java | 11 +- .../security/entity/vo/LoginUser.java | 15 +- .../feign/FeignRequestInterceptor.java | 5 + .../interceptor/HeaderInterceptor.java | 1 + .../security/service/TokenService.java | 7 +- .../security/utils/SecurityUtils.java | 6 +- chushang-common/pom.xml | 1 + .../auth/controller/UserController.java | 4 +- .../chushang/auth/service/UserService.java | 15 +- .../chushang/gateway/filter/AuthFilter.java | 3 + .../chushang/oss/entity/FileSourceInfo.java | 54 +- .../com/chushang/oss/entity/dto/OcrDTO.java | 13 + .../chushang/oss/entity/vo/FileSourceVo.java | 16 + .../com/chushang/oss/enums/OcrTypeEnum.java | 29 + .../chushang-module-oss/oss-service/pom.xml | 4 + .../oss/controller/FileController.java | 66 +++ .../oss/service/FileSourceService.java | 32 ++ .../com/chushang/oss/service/OcrService.java | 9 + .../oss/service/impl/AliOcrServiceImpl.java | 19 + .../oss/service/impl/AliServiceImpl.java | 7 +- .../oss/service/impl/FileSourceService.java | 22 - .../oss/service/impl/WxOcrServiceImpl.java | 19 + .../src/main/resources/application.yml | 2 +- .../system-feign/pom.xml | 4 + .../chushang/system/entity/bo/DataAuth.java | 28 - .../chushang/system/entity/bo/RoleUser.java | 4 +- .../system/entity/dto/ListDeptDTO.java | 4 +- .../system/entity/enums/AuthTypeEnum.java | 41 -- .../chushang/system/entity/po/SysConfig.java | 13 +- .../chushang/system/entity/po/SysDept.java | 14 +- .../system/entity/po/SysDictData.java | 4 +- .../system/entity/po/SysDictType.java | 2 +- .../system/entity/po/SysLoginInfo.java | 2 +- .../chushang/system/entity/po/SysMenu.java | 4 +- .../chushang/system/entity/po/SysPost.java | 7 +- .../chushang/system/entity/po/SysRole.java | 20 +- .../system/entity/po/SysRoleDept.java | 4 +- .../system/entity/po/SysRoleMenu.java | 4 +- .../chushang/system/entity/po/SysTenant.java | 55 ++ .../system/entity/po/SysTenantPackage.java | 70 +++ .../chushang/system/entity/po/SysUser.java | 27 +- .../system/entity/po/SysUserData.java | 37 -- .../system/entity/po/SysUserRole.java | 4 +- .../chushang/system/entity/vo/TreeSelect.java | 37 +- .../system/feign/RemoteDataScopeService.java | 27 + .../system/feign/RemoteUserService.java | 3 +- .../system-service/sql/tb_order_system.sql | 498 ------------------ .../chushang/system/SystemApplication.java | 2 +- .../system/controller/DeptController.java | 8 +- .../system/controller/DictTypeController.java | 5 +- .../system/controller/MenuController.java | 17 +- .../system/controller/PostController.java | 9 + .../system/controller/RoleController.java | 18 +- .../system}/controller/SysLogController.java | 28 +- .../controller/SysLoginInfoController.java | 9 +- .../controller/SysUserDataController.java | 67 --- .../system/controller/UserController.java | 115 ++-- .../chushang/system/mapper/SysDeptMapper.java | 2 +- .../chushang/system/mapper/SysMenuMapper.java | 8 +- .../chushang/system/mapper/SysPostMapper.java | 6 +- .../chushang/system/mapper/SysRoleMapper.java | 2 +- .../system/mapper/SysTenantMapper.java | 10 + .../system/mapper/SysTenantPackageMapper.java | 10 + .../system/mapper/SysUserDataMapper.java | 10 - .../chushang/system/mapper/SysUserMapper.java | 2 +- .../remote/RemoteDataScopeController.java | 24 + .../remote/RemoteLoginInfoController.java | 32 ++ .../system/remote/RemoteUserController.java | 73 +++ .../system/service/ISysDeptService.java | 18 +- .../system/service/ISysMenuService.java | 18 +- .../system/service/ISysPermissionService.java | 23 + .../system/service/ISysPostService.java | 11 +- .../system/service/ISysRoleDeptService.java | 8 +- .../system/service/ISysRoleMenuService.java | 10 +- .../system/service/ISysRoleService.java | 12 +- .../system/service/ISysUserDataService.java | 61 --- .../system/service/ISysUserRoleService.java | 6 +- .../system/service/ISysUserService.java | 14 +- .../service/SysTenantPackageService.java | 7 + .../system/service/SysTenantService.java | 7 + .../service/impl/ISysUserDataServiceImpl.java | 55 -- .../service/impl/SysDeptServiceImpl.java | 12 +- .../service/impl/SysMenuServiceImpl.java | 12 +- .../impl/SysPermissionServiceImpl.java | 14 +- .../service/impl/SysPostServiceImpl.java | 15 +- .../service/impl/SysRoleServiceImpl.java | 15 +- .../impl/SysTenantPackageServiceImpl.java | 13 + .../service/impl/SysTenantServiceImpl.java | 13 + .../service/impl/SysUserServiceImpl.java | 31 +- .../src/main/resources/application.yml | 1 + .../src/main/resources/logback-nacos.xml | 2 +- .../main/resources/mapper/SysDeptMapper.xml | 10 +- .../main/resources/mapper/SysMenuMapper.xml | 71 +-- .../src/test/java/DemoTest.java | 85 ++- 114 files changed, 1337 insertions(+), 1288 deletions(-) create mode 100644 chushang-common/chushang-common-data-scope/pom.xml rename {chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system => chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope}/annotation/DataScope.java (88%) rename {chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system => chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope}/aspect/DataScopeAspect.java (73%) create mode 100644 chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/entity/DataScopeEntity.java create mode 100644 chushang-common/chushang-common-data-scope/src/main/resources/META-INF/spring.factories create mode 100644 chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/constant/LogApplicationName.java rename chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/{ => entity}/mapper/SysLogMapper.java (53%) create mode 100644 chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java create mode 100644 chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java create mode 100644 chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java create mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java create mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java create mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java create mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliOcrServiceImpl.java delete mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/FileSourceService.java create mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/WxOcrServiceImpl.java delete mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/DataAuth.java delete mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java create mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenant.java create mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenantPackage.java delete mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserData.java create mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java delete mode 100644 chushang-modules/chushang-module-system/system-service/sql/tb_order_system.sql rename {chushang-common/chushang-common-log/src/main/java/com/chushang/common/log => chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system}/controller/SysLogController.java (54%) delete mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantMapper.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantPackageMapper.java delete mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserDataMapper.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java delete mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserDataService.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantPackageService.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantService.java delete mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/ISysUserDataServiceImpl.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantPackageServiceImpl.java create mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantServiceImpl.java diff --git a/chushang-common/chushang-common-bom/pom.xml b/chushang-common/chushang-common-bom/pom.xml index ee5c88d..a1b2fd1 100644 --- a/chushang-common/chushang-common-bom/pom.xml +++ b/chushang-common/chushang-common-bom/pom.xml @@ -27,6 +27,11 @@ chushang-common-core ${common.version} + + com.chushang + chushang-common-data-scope + ${common.version} + com.chushang chushang-common-easy-es diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/CommonConstants.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/CommonConstants.java index ad8af24..c1f3ce3 100644 --- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/CommonConstants.java +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/CommonConstants.java @@ -41,5 +41,6 @@ public interface CommonConstants { */ String TRACE_ID = "traceId"; String SPAN = "span"; + String START_TIME = "startTime"; } diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java index d378d11..390a236 100644 --- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java @@ -59,6 +59,10 @@ public interface SecurityConstants { * 角色权限 */ String ROLE_PERMISSION = "role_permission"; + /** + * 租户字段 + */ + String TENANT_ID = "tenant_id"; } diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/JwtUtils.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/JwtUtils.java index fbf51d9..0ab8bc5 100644 --- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/JwtUtils.java +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/JwtUtils.java @@ -120,4 +120,20 @@ public class JwtUtils { return Convert.toStr(claims.get(key), ""); } + + public static String getTenantId(Claims claims) { + return getValue(claims, SecurityConstants.TENANT_ID); + } + + /** + * 根据令牌获取用户ID + * + * @param token 令牌 + * @return 用户ID + */ + public static String getTenantId(String token) + { + Claims claims = parseToken(token); + return getValue(claims, SecurityConstants.TENANT_ID); + } } diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/Result.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/Result.java index 77dc270..bb46afd 100644 --- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/Result.java +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/Result.java @@ -19,6 +19,7 @@ package com.chushang.common.core.web; import lombok.*; import lombok.experimental.Accessors; +import java.io.Serial; import java.io.Serializable; import java.util.HashMap; import java.util.Map; @@ -28,6 +29,8 @@ import java.util.Map; * * @author lengleng */ +@Setter +@Getter @ToString @NoArgsConstructor @AllArgsConstructor @@ -39,18 +42,13 @@ public class Result implements Serializable { public static final int FAIL_CODE = 500; + @Serial private static final long serialVersionUID = 1L; - @Getter - @Setter private int code; - @Getter - @Setter private String msg; - @Getter - @Setter private T data; public static Result> putAll(Map params) { @@ -132,4 +130,8 @@ public class Result implements Serializable { } + public boolean isSuccess() { + return SUCCESS_CODE == this.code; + } + } diff --git a/chushang-common/chushang-common-data-scope/pom.xml b/chushang-common/chushang-common-data-scope/pom.xml new file mode 100644 index 0000000..fba1310 --- /dev/null +++ b/chushang-common/chushang-common-data-scope/pom.xml @@ -0,0 +1,24 @@ + + + + chushang-common + com.chushang + 1.0.0 + + 4.0.0 + + chushang-common-data-scope + + + com.chushang + chushang-common-security + + + com.chushang + chushang-common-mybatis + + + + diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/annotation/DataScope.java b/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/annotation/DataScope.java similarity index 88% rename from chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/annotation/DataScope.java rename to chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/annotation/DataScope.java index ec16183..50d641c 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/annotation/DataScope.java +++ b/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/annotation/DataScope.java @@ -1,4 +1,4 @@ -package com.chushang.system.annotation; +package com.chushang.datascope.annotation; import java.lang.annotation.*; diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/aspect/DataScopeAspect.java b/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/aspect/DataScopeAspect.java similarity index 73% rename from chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/aspect/DataScopeAspect.java rename to chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/aspect/DataScopeAspect.java index 3f6924f..b20d666 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/aspect/DataScopeAspect.java +++ b/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/aspect/DataScopeAspect.java @@ -1,15 +1,15 @@ -package com.chushang.system.aspect; +package com.chushang.datascope.aspect; import cn.hutool.core.collection.CollectionUtil; +import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.text.Convert; import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.core.util.StringUtils; import com.chushang.common.mybatis.base.BaseEntity; +import com.chushang.datascope.annotation.DataScope; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.context.SecurityContextHolder; import com.chushang.security.utils.SecurityUtils; -import com.chushang.system.annotation.DataScope; -import com.chushang.system.entity.po.SysRole; -import com.chushang.system.entity.po.SysUser; import com.chushang.security.entity.vo.LoginUser; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; @@ -20,6 +20,7 @@ import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; import java.lang.reflect.Method; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -33,32 +34,31 @@ public class DataScopeAspect { * 数据权限过滤关键字 */ public static final String DATA_SCOPE = "dataScope"; + /** + * 部门角色权限过滤 + */ public static final String ROLE_SCOPE = "roleScope"; /** * 全部数据权限 */ public static final String DATA_SCOPE_ALL = "1"; - /** * 自定数据权限 */ public static final String DATA_SCOPE_CUSTOM = "2"; - /** * 部门数据权限 */ public static final String DATA_SCOPE_DEPT = "3"; - /** * 部门及以下数据权限 */ public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; - /** * 仅本人数据权限 */ public static final String DATA_SCOPE_SELF = "5"; - @Pointcut("@annotation(com.chushang.system.annotation.DataScope)") + @Pointcut("@annotation(com.chushang.datascope.annotation.DataScope)") public void dataScopePointCut() { } @@ -73,13 +73,12 @@ public class DataScopeAspect { protected void handleDataScope(final JoinPoint joinPoint) { // 获取当前的用户 - LoginUser loginUser = SecurityUtils.getLoginUser(); + LoginUser loginUser = SecurityUtils.getLoginUser(); if (StringUtils.isNotNull(loginUser)) { - SysUser currentUser = loginUser.getSysUser(); + List scopes = loginUser.getScopes(); + Long userId = loginUser.getUserId(); // 如果是超级管理员,则不过滤数据 - if (StringUtils.isNotNull(currentUser) - && !currentUser.isAdmin() - && !SecurityUtils.isAdmin()) + if (!SecurityUtils.isAdmin()) { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); @@ -87,8 +86,8 @@ public class DataScopeAspect { method.getAnnotation(DataScope.class); String permission = StringUtils.defaultIfEmpty(dataScope.permission(), SecurityContextHolder.getPermission()); - dataScopeFilter(joinPoint, currentUser, dataScope.deptAlias(), - dataScope.userAlias(), permission); + dataScopeFilter(joinPoint, scopes, dataScope.deptAlias(), + dataScope.userAlias(), permission, userId); } } } @@ -96,22 +95,23 @@ public class DataScopeAspect { /** * 数据范围过滤 * - * @param joinPoint 切点 - * @param user 用户 - * @param deptAlias 部门别名 - * @param userAlias 用户别名 + * @param joinPoint 切点 + * @param dataScopes 用户角色数据权限 + * @param deptAlias 部门别名 + * @param userAlias 用户别名 + * @param userId 用户id */ - public void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) { + public void dataScopeFilter(JoinPoint joinPoint, List dataScopes, String deptAlias, String userAlias, String permission, Long userId) { StringBuilder dataScopeSqlString = new StringBuilder(); // 根据部门过滤role 显示 StringBuilder roleSqlString = new StringBuilder(); List conditions = new ArrayList<>(); - for (SysRole role : user.getRoles()) { - String dataScope = role.getDataScope(); + for (DataScopeEntity scope : dataScopes) { + String dataScope = scope.getScope(); + Set permissions = scope.getPermissions(); if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) { continue; } - Set permissions = role.getPermissions(); if (StringUtils.isNotEmpty(permission) && CollectionUtil.isNotEmpty(permissions) && !CollectionUtil.containsAny(permissions, Convert.toList(permission))) { continue; @@ -122,41 +122,31 @@ public class DataScopeAspect { } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { dataScopeSqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, - role.getRoleId())); + scope.getRoleId())); } else if (DATA_SCOPE_DEPT.equals(dataScope)) { - dataScopeSqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + dataScopeSqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, scope.getDeptId())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { dataScopeSqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", - deptAlias, user.getDeptId(), user.getDeptId())); + deptAlias, scope.getDeptId(), scope.getDeptId())); // 当且仅当用在角色列表页面, 并且角色为 部门及以下 roleSqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} OR find_in_set( {}, ancestors ) ) ", - "r", user.getDeptId(), user.getDeptId())); + "r", scope.getDeptId(), scope.getDeptId())); } else if (DATA_SCOPE_SELF.equals(dataScope)) { if (StringUtils.isNotBlank(userAlias)) { - dataScopeSqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + dataScopeSqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, userId)); } else { // 数据权限为仅本人且没有userAlias别名不查询任何数据 - dataScopeSqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + dataScopeSqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, scope.getDeptId())); } } conditions.add(dataScope); } - if (StringUtils.isNotBlank(dataScopeSqlString.toString())) { - Object params = joinPoint.getArgs()[0]; String v = " AND (" + dataScopeSqlString.substring(4) + ")"; - Map sqlParam; - if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { - BaseEntity baseEntity = (BaseEntity) params; - sqlParam = baseEntity.getSqlParam(); - } else if (StringUtils.isNotNull(params) && params instanceof CommonParam) { - CommonParam commonParam = (CommonParam) params; - sqlParam = commonParam.getSqlParam(); - }else { - return; - } + Map sqlParam = getSqlParam(joinPoint); + if (null == sqlParam) return; sqlParam.put(DATA_SCOPE, v); sqlParam.put(ROLE_SCOPE, roleSqlString.toString()); } @@ -166,6 +156,13 @@ public class DataScopeAspect { * 拼接权限sql前先清空params.dataScope参数防止注入 */ private void clearDataScope(final JoinPoint joinPoint) { + Map sqlParam = getSqlParam(joinPoint); + if (null == sqlParam) return; + sqlParam.put(DATA_SCOPE, ""); + sqlParam.put(ROLE_SCOPE, ""); + } + + private Map getSqlParam(final JoinPoint joinPoint){ Object params = joinPoint.getArgs()[0]; Map sqlParam; if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { @@ -175,9 +172,8 @@ public class DataScopeAspect { CommonParam commonParam = (CommonParam) params; sqlParam = commonParam.getSqlParam(); }else { - return; + return null; } - sqlParam.put(DATA_SCOPE, ""); - sqlParam.put(ROLE_SCOPE, ""); + return sqlParam; } } diff --git a/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/entity/DataScopeEntity.java b/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/entity/DataScopeEntity.java new file mode 100644 index 0000000..3fa2df0 --- /dev/null +++ b/chushang-common/chushang-common-data-scope/src/main/java/com/chushang/datascope/entity/DataScopeEntity.java @@ -0,0 +1,29 @@ +package com.chushang.datascope.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +/** + * 数据权限临时表 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataScopeEntity{ + + private Long roleId; + + private Long deptId; + + private Long userId; + + private String scope; + + private Set permissions; + +} diff --git a/chushang-common/chushang-common-data-scope/src/main/resources/META-INF/spring.factories b/chushang-common/chushang-common-data-scope/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..e756436 --- /dev/null +++ b/chushang-common/chushang-common-data-scope/src/main/resources/META-INF/spring.factories @@ -0,0 +1 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java index dc20fc2..e2035d7 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java @@ -8,8 +8,11 @@ package com.chushang.common.log.aspect; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.constant.CommonConstants; import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.jackson.JacksonUtils; import com.chushang.common.core.util.IPUtils; @@ -32,12 +35,16 @@ import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; +import java.util.concurrent.ThreadPoolExecutor; import java.util.stream.Collectors; @@ -74,7 +81,7 @@ public class SysLogAspect { //执行时长(毫秒) long time = System.currentTimeMillis() - beginTime; //保存日志 - saveSysLog(point, time, LogTypeEnum.NORMAL, null); + saveSysLog(point, LogTypeEnum.NORMAL, null); } /** @@ -88,11 +95,10 @@ public class SysLogAspect { long beginTime = System.currentTimeMillis(); //执行时长(毫秒) long time = System.currentTimeMillis() - beginTime; - - saveSysLog(joinPoint, time, LogTypeEnum.ERROR, ex.getMessage()); + saveSysLog(joinPoint,LogTypeEnum.ERROR, ex.getMessage()); } - private void saveSysLog(JoinPoint joinPoint, long time, LogTypeEnum type, String ex) { + private void saveSysLog(JoinPoint joinPoint,LogTypeEnum type, String ex) { try { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); @@ -115,7 +121,7 @@ public class SysLogAspect { // 将导出的response 过滤掉 List argList = Arrays.stream(args) - .filter(arg -> !(arg instanceof HttpServletResponse) && !(arg instanceof HttpServletRequest)) + .filter(arg -> !(arg instanceof MultipartFile) && !(arg instanceof HttpServletResponse) && !(arg instanceof HttpServletRequest)) .collect(Collectors.toList()); sysLogEntity.setParams(JacksonUtils.toJSONString(argList)); } @@ -131,14 +137,20 @@ public class SysLogAspect { //设置IP地址 sysLogEntity.setRemoteAddr(ipAddr); // 请求uri - sysLogEntity.setRequestUri(URLUtil.getPath(request.getRequestURI())); + String uri = URLUtil.getPath(request.getRequestURI()); + sysLogEntity.setRequestUri(uri); // 请求代理 sysLogEntity.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT)); + assert StrUtil.isNotEmpty(uri); + String[] split = uri.split("/"); + if (split.length > 0 ){ + sysLogEntity.setApplicationName(split[1]); + } LoginUser loginUser = SecurityUtils.getLoginUser(); // 请求账号信息 if (null != loginUser) { - Integer userId = loginUser.getUserId(); + Long userId = loginUser.getUserId(); //用户名 sysLogEntity.setUserId(userId); String username = loginUser.getUsername(); @@ -148,14 +160,16 @@ public class SysLogAspect { if (!ipAddr.equals("localhost") && !ipAddr.equals("127.0.0.1")) { throw new ResultException("没有权限"); } - sysLogEntity.setUserId(1); + sysLogEntity.setUserId(1L); sysLogEntity.setUsername("error"); } + String startTime = request.getHeader(CommonConstants.START_TIME); // 执行时间 - sysLogEntity.setTime(time); + sysLogEntity.setTime(startTime != null ? System.currentTimeMillis() - Convert.toLong(startTime) : null); // 日志类型 sysLogEntity.setType(type); sysLogEntity.setException(ex); + assert syslog != null; if (syslog.isDatabase()){ sysLogService.save(sysLogEntity); }else { @@ -167,6 +181,4 @@ public class SysLogAspect { log.error("uri : {}, save log error", URLUtil.getPath(request.getRequestURI()), e); } } - - } diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/constant/LogApplicationName.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/constant/LogApplicationName.java new file mode 100644 index 0000000..45abde1 --- /dev/null +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/constant/LogApplicationName.java @@ -0,0 +1,18 @@ +package com.chushang.common.log.constant; + +public interface LogApplicationName { + + /** + * 系统 + */ + String SYSTEM = "system-service"; + /** + * 文件 + */ + String OSS = "oss-service"; + /** + * 后台任务 + */ + String TASK = "task-service"; + +} diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/SysLogEntity.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/SysLogEntity.java index 2618c69..548fe28 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/SysLogEntity.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/SysLogEntity.java @@ -74,7 +74,7 @@ public class SysLogEntity { * 操作用户id */ @TableField(value = "user_id") - private Integer userId; + private Long userId; /** * 操作用户账号 */ @@ -109,4 +109,13 @@ public class SysLogEntity { @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL) @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) private LocalDateTime updateTime; + /** + * 服务名称 + */ + @TableField(value = "application_name") + private String applicationName; + /** + * 部门id -- 根据部门划分不同的数据? + */ + private Integer deptId; } diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/dto/ListLogDTO.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/dto/ListLogDTO.java index 5123dc3..3772bf3 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/dto/ListLogDTO.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/dto/ListLogDTO.java @@ -4,6 +4,8 @@ import com.chushang.common.mybatis.page.CommonParam; import lombok.Data; import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + /** * by zhaowenyuan create 2022/5/20 19:09 */ @@ -11,7 +13,13 @@ import lombok.EqualsAndHashCode; @Data public class ListLogDTO extends CommonParam { - private String title; - private String operType; + private String remoteAddr; + private String operation; + private String username; + private String businessType; + private String type; + + private LocalDateTime beginTime; + private LocalDateTime endTime; } diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/mapper/SysLogMapper.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/mapper/SysLogMapper.java similarity index 53% rename from chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/mapper/SysLogMapper.java rename to chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/mapper/SysLogMapper.java index 80bf0c4..b7d8cda 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/mapper/SysLogMapper.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/entity/mapper/SysLogMapper.java @@ -1,8 +1,12 @@ -package com.chushang.common.log.mapper; +package com.chushang.common.log.entity.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.chushang.common.log.entity.SysLogEntity; +import org.apache.ibatis.annotations.Delete; public interface SysLogMapper extends BaseMapper { + @Delete("TRUNCATE TABLE sys_log") + void cleanLog(); + } \ No newline at end of file diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java index 760137a..af27b46 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java @@ -60,7 +60,7 @@ public enum BusinessType /** * 清空数据 */ - CLEAN(10,"清空数据"), + CLEAR(10,"清空数据"), ; private final Integer code; private final String desc; diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/SysLogService.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/SysLogService.java index 0843785..41fc341 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/SysLogService.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/SysLogService.java @@ -1,10 +1,13 @@ package com.chushang.common.log.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.common.core.web.EnumUtils; import com.chushang.common.log.entity.SysLogEntity; import com.chushang.common.log.entity.dto.ListLogDTO; +import com.chushang.common.log.enums.LogTypeEnum; import com.chushang.common.mybatis.utils.PageResult; import org.apache.commons.lang3.StringUtils; @@ -16,17 +19,31 @@ import java.util.Arrays; public interface SysLogService extends IService { default PageResult queryPage(ListLogDTO params){ - String key = params.getTitle(); + String operation = params.getOperation(); + LambdaQueryWrapper lambdaQueryWrapper = new QueryWrapper() + .orderBy(true, "asc".equals(params.getIsAsc()), params.getOrderBy()) + .lambda() + .eq(null != params.getType(), SysLogEntity::getType, EnumUtils.getByCode(params.getType(), LogTypeEnum.class)) + .like(StringUtils.isNotBlank(operation), SysLogEntity::getOperation, operation) + .like(StringUtils.isNotEmpty(params.getRemoteAddr()), SysLogEntity::getRemoteAddr, params.getRemoteAddr()) + .like(StringUtils.isNotEmpty(params.getUsername()), SysLogEntity::getUsername, params.getUsername()) + ; + if (StringUtils.isNotEmpty(params.getBusinessType())){ + lambdaQueryWrapper.in(SysLogEntity::getOperationType, Arrays.asList(params.getBusinessType().split(","))); + } + if (null != params.getBeginTime() && null != params.getEndTime()){ + lambdaQueryWrapper.between(SysLogEntity::getCreateTime,params.getBeginTime(), params.getEndTime()); + }else if (null != params.getBeginTime()){ + lambdaQueryWrapper.ge(SysLogEntity::getCreateTime, params.getBeginTime()); + }else if (null != params.getEndTime()){ + lambdaQueryWrapper.le(SysLogEntity::getCreateTime, params.getEndTime()); + } + IPage page = this.page( - new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(params.getPage(), params.getLimit()), - new QueryWrapper() - .orderBy(true, "asc".equals(params.getIsAsc()), params.getOrderBy()) - .lambda() - .like(StringUtils.isNotBlank(key),SysLogEntity::getUsername, key) - .or() - .like(StringUtils.isNotEmpty(key), SysLogEntity::getOperation, key) - .in(StringUtils.isNotEmpty(params.getOperType()), SysLogEntity::getOperationType, Arrays.asList(params.getOperType().split(","))) + new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(params.getPage(), params.getLimit()),lambdaQueryWrapper ); return new PageResult(page); } + + void cleanLog(); } diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/impl/SysLogServiceImpl.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/impl/SysLogServiceImpl.java index 270a6f3..542a6b4 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/impl/SysLogServiceImpl.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/service/impl/SysLogServiceImpl.java @@ -2,7 +2,7 @@ package com.chushang.common.log.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.common.log.entity.SysLogEntity; -import com.chushang.common.log.mapper.SysLogMapper; +import com.chushang.common.log.entity.mapper.SysLogMapper; import com.chushang.common.log.service.SysLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -13,4 +13,8 @@ import org.springframework.stereotype.Service; @Slf4j @Service public class SysLogServiceImpl extends ServiceImpl implements SysLogService { + @Override + public void cleanLog() { + baseMapper.cleanLog(); + } } diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java index bf14338..4a5af01 100644 --- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java +++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/MybatisAutoConfiguration.java @@ -17,14 +17,23 @@ package com.chushang.common.mybatis; import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; +import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.common.core.util.ServletUtils; +import com.chushang.common.core.util.StringUtils; import com.chushang.common.mybatis.config.MybatisPlusMapperRefresh; import com.chushang.common.mybatis.config.MybatisPlusMetaObjectHandler; import com.chushang.common.mybatis.resolver.SqlFilterArgumentResolver; +import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.LongValue; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; @@ -36,10 +45,8 @@ import org.springframework.core.io.Resource; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; +import javax.servlet.http.HttpServletRequest; +import java.util.*; /** * @author lengleng @@ -47,6 +54,7 @@ import java.util.Set; *

* mybatis plus 统一配置 */ +@Slf4j @Configuration(proxyBeanMethods = false) @MapperScan({"com.chushang.**.mapper"}) public class MybatisAutoConfiguration implements WebMvcConfigurer { @@ -72,6 +80,27 @@ public class MybatisAutoConfiguration implements WebMvcConfigurer { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + /** + * 新多租户插件配置,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存万一出现问题 + */ + interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() { + @Override + public Expression getTenantId() { + String tenantId = ServletUtils.getRequest().getHeader(SecurityConstants.TENANT_ID); + // 租户id, 应当就是其 + return new LongValue(tenantId); + } + + // 这是 default 方法,默认返回 false 表示所有表都需要拼多租户条件 + @Override + public boolean ignoreTable(String tableName) { + log.info("tableName {}", tableName); + String tenantId = ServletUtils.getRequest().getHeader(SecurityConstants.TENANT_ID); + // 租户id 为空不拼接租户, 否则拼接租户id + return StringUtils.isEmpty(tenantId); + } + })); + // 分页插件, 对于单一数据库类型来说,都建议配置该值,避免每次分页都去抓取数据库类型 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 乐观锁 @@ -88,6 +117,10 @@ public class MybatisAutoConfiguration implements WebMvcConfigurer { return new MybatisPlusMetaObjectHandler(); } + + + + // @Bean // public MybatisPlusMapperRefresh mybatisPlusMapperRefresh(ApplicationContext applicationContext, SqlSessionFactory sqlSessionFactory){ // Set mapperLocations = new LinkedHashSet<>(); diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java index 7952d5b..fc00c3f 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/aspect/InnerAuthAspect.java @@ -32,8 +32,10 @@ public class InnerAuthAspect implements Ordered String userid = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USER_ID); String username = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USERNAME); + // 设置租户id + String tenantId = ServletUtils.getRequest().getHeader(SecurityConstants.TENANT_ID); // 用户信息验证 - if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))) + if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username) || StringUtils.isEmpty(tenantId))) { throw new InnerAuthException("没有设置用户信息,不允许访问 "); } diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java index 7560c0e..a2ee455 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/context/SecurityContextHolder.java @@ -52,9 +52,9 @@ public class SecurityContextHolder THREAD_LOCAL.set(threadLocalMap); } - public static Integer getUserId() + public static Long getUserId() { - return Convert.toInt(get(SecurityConstants.DETAILS_USER_ID), 0); + return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L); } public static void setUserId(String account) @@ -96,4 +96,11 @@ public class SecurityContextHolder { set(SecurityConstants.ROLE_PERMISSION, permissions); } + + public static void setTenantId(String tenantId){ + set(SecurityConstants.TENANT_ID, tenantId); + } + public static String getTenantId(){ + return get(SecurityConstants.TENANT_ID); + } } diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java index 06a5465..9593803 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/entity/vo/LoginUser.java @@ -3,6 +3,7 @@ package com.chushang.security.entity.vo; import lombok.Data; import java.io.Serializable; +import java.util.List; import java.util.Map; import java.util.Set; @@ -10,7 +11,7 @@ import java.util.Set; * by zhaowenyuan create 2022/5/19 12:09 */ @Data -public class LoginUser implements Serializable +public class LoginUser implements Serializable { private static final long serialVersionUID = 1L; @@ -22,7 +23,7 @@ public class LoginUser implements Serializable /** * 用户名id */ - private Integer userId; + private Long userId; /** * 用户名 @@ -53,12 +54,18 @@ public class LoginUser implements Serializable * 角色对象 */ private Set roles; - + /** + * 用户数据权限 + */ + private List scopes; /** * 用户信息 */ private T sysUser; - + /** + * 租户ID + */ + private Long tenantId; /** * 当前用户对应的 数据权限 */ diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java index 8eb2ee4..d7b28df 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/feign/FeignRequestInterceptor.java @@ -47,6 +47,11 @@ public class FeignRequestInterceptor implements RequestInterceptor { requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication); } + // 租户id + String tenantId = headers.get(SecurityConstants.TENANT_ID); + if (StringUtils.isNotEmpty(tenantId)){ + requestTemplate.header(SecurityConstants.TENANT_ID, tenantId); + } // 配置客户端IP requestTemplate.header("X-Forwarded-For", IPUtils.clientIp(ServletUtils.getRequest())); } diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java index 186c660..cd3c9a1 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/interceptor/HeaderInterceptor.java @@ -32,6 +32,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID)); SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); + SecurityContextHolder.setTenantId(ServletUtils.getHeader(request, SecurityConstants.TENANT_ID)); String token = SecurityUtils.getToken(); if (StringUtils.isNotEmpty(token)) diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java index a872f6c..f6da4b8 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java @@ -42,8 +42,9 @@ public class TokenService public Map createToken(LoginUser loginUser) { String token = IdUtils.getId(31); - Integer userId = loginUser.getUserId(); + Long userId = loginUser.getUserId(); String username = loginUser.getUsername(); + Long tenantId = loginUser.getTenantId(); String tokenKey = token + "#" + userId; loginUser.setToken(tokenKey); loginUser.setIpaddr(IPUtils.clientIp(ServletUtils.getRequest())); @@ -55,6 +56,8 @@ public class TokenService claimsMap.put(SecurityConstants.USER_KEY, tokenKey); claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); claimsMap.put(SecurityConstants.DETAILS_USERNAME, username); + // 租户id + claimsMap.put(SecurityConstants.TENANT_ID, tenantId); // 接口返回信息 Map rspMap = new HashMap<>(); @@ -186,7 +189,7 @@ public class TokenService /** * 根据 用户ID 进行用户强退 */ - public void forcedRetreat(Integer userId){ + public void forcedRetreat(Long userId){ RKeys rKeys = redissonClient.getKeys(); long l = rKeys.deleteByPattern(CacheConstants.LOGIN_TOKEN_KEY + "*" + "#" + userId); if (log.isDebugEnabled()){ diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java index 5eb9662..b5a3881 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java @@ -23,15 +23,15 @@ public class SecurityUtils /** * 获取用户ID */ - public static Integer getUserId() + public static Long getUserId() { return SecurityContextHolder.getUserId(); } public static boolean isAdmin(){ - Integer userId = SecurityContextHolder.getUserId(); + Long userId = SecurityContextHolder.getUserId(); - LoginUser loginUser = getLoginUser(); + LoginUser loginUser = getLoginUser(); Set roles = loginUser.getRoles(); // 包含 admin 的账号 或者 id == 1 的就是 admin -- 必须是 admin 的才是超管权限 boolean flag = roles.contains(AuthUtil.SUPER_ADMIN); diff --git a/chushang-common/pom.xml b/chushang-common/pom.xml index af04778..e106bd6 100644 --- a/chushang-common/pom.xml +++ b/chushang-common/pom.xml @@ -17,6 +17,7 @@ chushang-common-bom chushang-common-canal chushang-common-core + chushang-common-data-scope chushang-common-easy-es chushang-common-excel chushang-common-feign diff --git a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java index 4bd71a9..1e71aad 100644 --- a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java +++ b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/controller/UserController.java @@ -4,11 +4,13 @@ import com.chushang.auth.service.UserService; import com.chushang.common.core.util.JwtUtils; import com.chushang.common.core.util.StringUtils; import com.chushang.common.core.web.AjaxResult; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.auth.AuthUtil; import com.chushang.security.service.TokenService; import com.chushang.security.utils.SecurityUtils; import com.chushang.system.entity.bo.LoginBody; import com.chushang.security.entity.vo.LoginUser; +import com.chushang.system.entity.po.SysUser; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +35,7 @@ public class UserController public AjaxResult login(@RequestBody LoginBody form) { // 用户登录 - LoginUser loginUser = userService.login(form.getUsername(), form.getPassword()); + LoginUser loginUser = userService.login(form.getUsername(), form.getPassword()); // 获取登录token return AjaxResult.success(tokenService.createToken(loginUser)); } diff --git a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java index cd82a64..10a8738 100644 --- a/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java +++ b/chushang-modules/chushang-module-auth/auth-service/src/main/java/com/chushang/auth/service/UserService.java @@ -5,6 +5,7 @@ import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.util.IPUtils; import com.chushang.common.core.util.ServletUtils; import com.chushang.common.core.web.Result; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.utils.SecurityUtils; import com.chushang.system.entity.enums.LoginStatusEnum; import com.chushang.system.entity.po.SysLoginInfo; @@ -33,11 +34,11 @@ public class UserService { /** * 登录 */ - public LoginUser login(String username, String password) + public LoginUser login(String username, String password) { // 查询用户信息 long start = System.currentTimeMillis(); - Result> rLoginUser = remoteUserService.getUserInfo(username, SecurityConstants.INNER); + Result> rLoginUser = remoteUserService.getUserInfo(username, SecurityConstants.INNER); long end = System.currentTimeMillis(); log.info("time : {}",end - start); if (Result.FAIL_CODE == rLoginUser.getCode()){ @@ -48,7 +49,7 @@ public class UserService { recordLoginInfo(username, LoginStatusEnum.LOGIN_FAIL_STATUS, "登录用户不存在"); throw new ResultException("登录用户:" + username + " 不存在"); } - LoginUser loginUser = rLoginUser.getData(); + LoginUser loginUser = rLoginUser.getData(); SysUser sysUser = loginUser.getSysUser(); Boolean status = sysUser.getStatus(); if (!status) @@ -63,12 +64,16 @@ public class UserService { throw new ResultException("用户不存在/密码错误"); } recordLoginInfo(username, LoginStatusEnum.LOGIN_SUCCESS, "登录成功"); - sysUser.setPassword(""); - sysUser.setSalt(""); loginUser.setSysUser(sysUser); + loginUser.setTenantId(sysUser.getTenantId()); return loginUser; } + public static void main(String[] args) { + String s = SecurityUtils.encryptPassword("123456", "h2HheUVZmF"); + System.out.println(s); + } + public void logout(String username) { recordLoginInfo(username, LoginStatusEnum.LOGOUT_SUCCESS, "退出成功"); } diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java index b61e11f..4faeea4 100644 --- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java +++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java @@ -84,6 +84,7 @@ public class AuthFilter implements GlobalFilter, Ordered } String userid = JwtUtils.getUserId(claims); String username = JwtUtils.getUserName(claims); + String tenantId = JwtUtils.getTenantId(claims); if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { return unauthorizedResponse(exchange, "令牌验证失败"); @@ -93,6 +94,8 @@ public class AuthFilter implements GlobalFilter, Ordered addHeader(mutate, SecurityConstants.USER_KEY, userkey); addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); + // 租户Id + addHeader(mutate, SecurityConstants.TENANT_ID, tenantId); // 内部请求来源参数清除 removeHeader(mutate); diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java index c7352e4..fcdb262 100644 --- a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java +++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/FileSourceInfo.java @@ -1,6 +1,7 @@ package com.chushang.oss.entity; import com.baomidou.mybatisplus.annotation.*; +import com.chushang.common.mybatis.base.BaseEntity; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,33 +10,68 @@ import java.time.LocalDateTime; @Data @TableName("tb_oss_source_info") @NoArgsConstructor -public class FileSourceInfo { - - public FileSourceInfo(String fid) { - this.fid = fid; - } +public class FileSourceInfo extends BaseEntity{ @TableId(value = "fid", type = IdType.INPUT) private String fid; + /** + * 文件原始名称 + */ @TableField("name") private String name; + /** + * 文件类型 + */ @TableField("mime_type") private String mimeType; + /** + * 文件 所属类型 + * 查看字典 sys_file_type + */ + @TableField("file_type") + private String fileType; + /** + * 文件大小 + */ @TableField("size") private Long size; + /** + * 文件md5 + */ @TableField("md5") private String md5; + /** + * 文件存储路径 + */ @TableField("path") private String path; + /** + * 存储桶名称 + */ + @TableField(value = "bucket_name") + private String bucketName; + /** + * 真实路径 -- 携带http(s) + */ @TableField("real_path") private String realPath; + /** + * 上传IP + */ @TableField("upload_ip") private String uploadIp; + /** + * 文件存储域 + */ @TableField("storage_region") private String storageRegion; - @TableField("if_del") - private Integer ifDel; - @TableField(value = "create_time", fill = FieldFill.INSERT) - private LocalDateTime createTime; + /** + * 创建人 + */ + @TableField( + value = "create_by", + updateStrategy = FieldStrategy.NEVER + ) + protected String createBy; } diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java new file mode 100644 index 0000000..cbb16a1 --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/dto/OcrDTO.java @@ -0,0 +1,13 @@ +package com.chushang.oss.entity.dto; + +import com.chushang.oss.enums.OcrTypeEnum; +import lombok.Data; + +@Data +public class OcrDTO { + + private String imgPath; + + private OcrTypeEnum ocrType; + +} diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java new file mode 100644 index 0000000..aea019c --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/entity/vo/FileSourceVo.java @@ -0,0 +1,16 @@ +package com.chushang.oss.entity.vo; + +import com.alibaba.fastjson2.JSONObject; +import lombok.Data; + +@Data +public class FileSourceVo { + private String fid; + private String name; + private Long size; + private JSONObject ocr; + /** + * 文件路径 + */ + private String filePath; +} diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java new file mode 100644 index 0000000..46f4dfb --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/enums/OcrTypeEnum.java @@ -0,0 +1,29 @@ +package com.chushang.oss.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum OcrTypeEnum { + COMM("comm","文字识别"), + DRIVING("driving","行驶证"), + BANKCARD("bankcard","银行卡"), + BIZLICENSE("bizlicense","营业执照"), + DRIVINGLICENSE("drivinglicense","驾驶证"), + IDCARD("idcard","身份证"), + NONE("none","未知") + ; + + private final String code; + private final String name; + + public static OcrTypeEnum findByCode(String code) { + for(OcrTypeEnum e:OcrTypeEnum.values()) { + if(e.getCode().equals(code)) { + return e; + } + } + return NONE; + } +} diff --git a/chushang-modules/chushang-module-oss/oss-service/pom.xml b/chushang-modules/chushang-module-oss/oss-service/pom.xml index 7ca08ca..2a8f9e3 100644 --- a/chushang-modules/chushang-module-oss/oss-service/pom.xml +++ b/chushang-modules/chushang-module-oss/oss-service/pom.xml @@ -13,6 +13,10 @@ com.chushang oss-feign + + com.chushang + chushang-common-log + diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java new file mode 100644 index 0000000..ed2ecf6 --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java @@ -0,0 +1,66 @@ +package com.chushang.oss.controller; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.core.web.Result; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.oss.entity.dto.OcrDTO; +import com.chushang.oss.entity.vo.FileSourceVo; +import com.chushang.oss.enums.OcrTypeEnum; +import com.chushang.oss.service.FileSourceService; +import com.chushang.oss.service.OcrService; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping(value = "/file") +public class FileController { + + @Resource + FileSourceService fileSourceService; + @Resource + OcrService ocrService; + + /** + * todo + */ + @SysLog(value = "文件上传", businessType = BusinessType.INSERT) + @PostMapping(value = "/upload") + public AjaxResult uploadFile(@RequestParam(value = "file") MultipartFile file, + @RequestParam(value = "ocrType", required = false) String ocrType) { + FileSourceVo vo = BeanUtil.copyProperties(fileSourceService.addFile(file, "ip"), FileSourceVo.class); + if (StrUtil.isNotEmpty(ocrType)) { + OcrDTO ocr = new OcrDTO(); + OcrTypeEnum ocrTypeEnum = OcrTypeEnum.findByCode(ocrType); + if (ocrTypeEnum != OcrTypeEnum.NONE) { + ocr.setOcrType(ocrTypeEnum); + ocr.setImgPath(vo.getFilePath()); + Result ocrInfo = ocrService.ocr(ocr); + if (ocrInfo.isSuccess()) { + vo.setOcr(ocrInfo.getData()); + } + } + } + return AjaxResult.success(vo); + } + + @SysLog(value = "文件下载", businessType = BusinessType.OTHER) + @GetMapping(value = "/download/{fid}") + public AjaxResult downloadFile(@PathVariable String fid) { + return AjaxResult.success(); + } + + @SysLog(value = "文件", businessType = BusinessType.DELETE) + @DeleteMapping(value = "/del/{fid}") + public AjaxResult delFile() { + return AjaxResult.success(); + } + +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java new file mode 100644 index 0000000..2691562 --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java @@ -0,0 +1,32 @@ +package com.chushang.oss.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.oss.entity.FileSourceInfo; +import com.chushang.oss.mapper.FileSourceMapper; +import com.chushang.oss.service.OssService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; + +/** + * @auther: zhao + * @date: 2024/4/29 10:25 + */ +@Slf4j +@Service +public class FileSourceService + extends ServiceImpl + implements IService +{ + + @Resource + OssService ossService; + + + public FileSourceInfo addFile(MultipartFile file, String ip) { + return null; + } +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java new file mode 100644 index 0000000..32eaf2b --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java @@ -0,0 +1,9 @@ +package com.chushang.oss.service; + +import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.web.Result; +import com.chushang.oss.entity.dto.OcrDTO; + +public interface OcrService { + Result ocr(OcrDTO ocr); +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliOcrServiceImpl.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliOcrServiceImpl.java new file mode 100644 index 0000000..9541ba2 --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliOcrServiceImpl.java @@ -0,0 +1,19 @@ +package com.chushang.oss.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.web.Result; +import com.chushang.oss.entity.dto.OcrDTO; +import com.chushang.oss.service.OcrService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("aliOcrService") +@ConditionalOnExpression("'${ocr.service}'.equals('ali')") +public class AliOcrServiceImpl implements OcrService { + @Override + public Result ocr(OcrDTO ocr) { + return null; + } +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliServiceImpl.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliServiceImpl.java index f0c7d10..17c84c5 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliServiceImpl.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/AliServiceImpl.java @@ -6,9 +6,12 @@ import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.DeleteObjectsRequest; import com.aliyun.oss.model.DeleteObjectsResult; import com.aliyun.oss.model.Payer; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.util.StringUtils; import com.chushang.oss.config.UploadConfig; +import com.chushang.oss.entity.FileSourceInfo; +import com.chushang.oss.mapper.FileSourceMapper; import com.chushang.oss.service.OssService; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; @@ -25,7 +28,7 @@ import java.util.List; * 阿里云存储 */ @Slf4j -@Service +@Service("aliOssService") @ConditionalOnExpression("'${oss.storage}'.equals('ali')") public class AliServiceImpl implements OssService { @@ -33,7 +36,7 @@ public class AliServiceImpl implements OssService { @Resource private UploadConfig config; -// + // public AliyunUploadStorageService(CloudProperties cloudProperties){ // this.config = (AliyunProperties) cloudProperties; // //初始化 diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/FileSourceService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/FileSourceService.java deleted file mode 100644 index ea98831..0000000 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/FileSourceService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.chushang.oss.service.impl; - -import com.chushang.oss.service.OssService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -/** - * @auther: zhao - * @date: 2024/4/29 10:25 - */ -@Slf4j -@Service -public class FileSourceService { - - @Resource - OssService ossService; - - - -} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/WxOcrServiceImpl.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/WxOcrServiceImpl.java new file mode 100644 index 0000000..3dcfb11 --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/WxOcrServiceImpl.java @@ -0,0 +1,19 @@ +package com.chushang.oss.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.web.Result; +import com.chushang.oss.entity.dto.OcrDTO; +import com.chushang.oss.service.OcrService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("wxOcrService") +@ConditionalOnExpression("'${ocr.service}'.equals('wx')") +public class WxOcrServiceImpl implements OcrService { + @Override + public Result ocr(OcrDTO ocr) { + return null; + } +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/resources/application.yml b/chushang-modules/chushang-module-oss/oss-service/src/main/resources/application.yml index cb745d8..ecd8c3d 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/resources/application.yml +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: shutdown: graceful port: 8085 servlet: - context-path: /cs/system + context-path: /oss tomcat: uri-encoding: UTF-8 threads: diff --git a/chushang-modules/chushang-module-system/system-feign/pom.xml b/chushang-modules/chushang-module-system/system-feign/pom.xml index c07a03e..c0158ff 100644 --- a/chushang-modules/chushang-module-system/system-feign/pom.xml +++ b/chushang-modules/chushang-module-system/system-feign/pom.xml @@ -33,5 +33,9 @@ com.chushang chushang-common-excel + + com.chushang + chushang-common-data-scope + diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/DataAuth.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/DataAuth.java deleted file mode 100644 index 2b2c6a5..0000000 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/DataAuth.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.chushang.system.entity.bo; - -import com.chushang.system.entity.enums.AuthTypeEnum; -import lombok.Data; - -import javax.validation.constraints.NotNull; - -/** - * @author by zhaowenyuan create 2022/8/24 10:27 - */ -@Data -public class DataAuth { - /** - * 用户Id - */ - @NotNull(message = "user id is null") - private Integer userId; - /** - * 授权类型 - */ - @NotNull(message = "auth type is null") - private AuthTypeEnum authType; - /** - * 授权数据 - */ - private String authData; - -} diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/RoleUser.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/RoleUser.java index 9cedbdd..5338ccd 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/RoleUser.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/bo/RoleUser.java @@ -12,9 +12,9 @@ import javax.validation.constraints.NotNull; public class RoleUser { @NotNull(message = "role id is null") - private Integer roleId; + private Long roleId; @NotNull(message = "user ids is null") - private Integer[] userIds; + private Long[] userIds; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDeptDTO.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDeptDTO.java index d7aeda3..6e17266 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDeptDTO.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDeptDTO.java @@ -11,9 +11,9 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) public class ListDeptDTO extends CommonParam { - private Integer deptId; + private Long deptId; - private Integer parentId; + private Long parentId; private String deptName; diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java deleted file mode 100644 index 015f408..0000000 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.chushang.system.entity.enums; - -import com.baomidou.mybatisplus.annotation.EnumValue; -import com.baomidou.mybatisplus.annotation.IEnum; -import com.fasterxml.jackson.annotation.JsonValue; -import com.chushang.common.core.web.EnumUtils; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * @author by zhaowenyuan create 2022/8/24 10:29 - */ -@Getter -@AllArgsConstructor -public enum AuthTypeEnum implements EnumUtils.CodeEnum, IEnum { - APP(1, "appData","项目授权", " select id from sanyi_app "), - PLATFORM(2, "platformData","平台授权", " select id from sanyi_platform "), - /** - * 需要根据角色进行特殊处理的需求 --> 为false 代表不处理, true 时, 代表处理 - */ - SPECIAL(3, "special", "特殊处理", "FALSE"), - ; - - @JsonValue - @EnumValue - private final Integer code; - private final String codeType; - private final String desc; - private final String sql; - - @Override - public Integer getValue() { - return this.code; - } - - @Override - public String getMsg() { - return desc; - } -} - diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java index 2dfb97d..4d3bfcd 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java @@ -20,7 +20,6 @@ import java.io.Serial; * * @author ruoyi */ -@Setter @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @@ -31,7 +30,7 @@ public class SysConfig extends BaseEntity private static final long serialVersionUID = 1L; /** 参数主键 */ - @TableId(value = "config_id", type = IdType.AUTO) + @TableId(value = "config_id", type = IdType.ASSIGN_ID) @ExcelProperty(value = "参数主键", index = 0) private Long configId; @@ -60,7 +59,7 @@ public class SysConfig extends BaseEntity updateStrategy = FieldStrategy.NEVER ) @ExcelProperty(value = "创建人", index = 5) - protected String createBy; + private String createBy; /** * 修改人 */ @@ -69,5 +68,11 @@ public class SysConfig extends BaseEntity insertStrategy = FieldStrategy.NEVER ) @ExcelProperty(value = "修改人", index = 6) - protected String updateBy; + private String updateBy; + + /** + * 租户Id + */ + @TableField(value = "tenant_id") + private Long tenantId; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDept.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDept.java index b859df4..0566138 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDept.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDept.java @@ -27,11 +27,11 @@ public class SysDept extends BaseEntity /** 部门ID */ @TableId(value = "dept_id", type = IdType.AUTO) - private Integer deptId; + private Long deptId; /** 父部门ID */ @TableField(value = "parent_dept_id") - private Integer parentId; + private Long parentId; /** 祖级列表 */ private String ancestors; @@ -63,7 +63,7 @@ public class SysDept extends BaseEntity value = "create_by", updateStrategy = FieldStrategy.NEVER ) - protected String createBy; + private String createBy; /** * 修改人 */ @@ -71,5 +71,11 @@ public class SysDept extends BaseEntity value = "update_by", insertStrategy = FieldStrategy.NEVER ) - protected String updateBy; + private String updateBy; + + /** + * 租户Id + */ + @TableField(value = "tenant_id") + private Long tenantId; } \ No newline at end of file diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictData.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictData.java index 4e21fbd..17348f3 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictData.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictData.java @@ -22,9 +22,9 @@ public class SysDictData extends BaseEntity { /** * 字典编码 */ - @TableId(value = "dict_code", type = IdType.AUTO) + @TableId(value = "dict_code", type = IdType.ASSIGN_ID) @ExcelProperty(value = "字典编码", index = 0) - private Integer dictCode; + private Long dictCode; /** * 字典排序 diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java index f2efeb3..2669a5e 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java @@ -33,7 +33,7 @@ public class SysDictType extends BaseEntity private static final long serialVersionUID = 1L; /** 字典主键 */ - @TableId(value = "dict_id", type = IdType.AUTO) + @TableId(value = "dict_id", type = IdType.ASSIGN_ID) @ExcelProperty(value = "字典主键", index = 0) private Long dictId; diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java index 8e3b1d0..866d18a 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java @@ -24,7 +24,7 @@ import java.time.LocalDateTime; @NoArgsConstructor public class SysLoginInfo extends BaseEntity { - @TableId(value = "info_id", type = IdType.AUTO) + @TableId(value = "info_id", type = IdType.ASSIGN_ID) private Long infoId; @TableField(value = "username") diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysMenu.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysMenu.java index 32586a2..b7d3052 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysMenu.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysMenu.java @@ -29,8 +29,8 @@ public class SysMenu extends BaseEntity { /** * 自增主键Id */ - @TableId(value = "menu_id", type = IdType.AUTO) - private Integer menuId; + @TableId(value = "menu_id", type = IdType.ASSIGN_ID) + private Long menuId; /** * 菜单名称 */ diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysPost.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysPost.java index ac63e96..71a9ab8 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysPost.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysPost.java @@ -34,7 +34,7 @@ public class SysPost extends BaseEntity /** 岗位序号 */ @TableId(value = "post_id", type = IdType.AUTO) @ExcelProperty(value = "岗位序号", index = 0) - private Integer postId; + private Long postId; /** 岗位编码 */ @ExcelProperty(value = "岗位编码", index = 1) @@ -74,4 +74,9 @@ public class SysPost extends BaseEntity /** 用户是否存在此岗位标识 默认不存在 */ @TableField(exist = false) private boolean flag = false; + /** + * 不同 部门 岗位隔离 + */ + @ExcelProperty(value = "状态", index = 6) + private Long deptId; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRole.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRole.java index bb5e9a7..af3c079 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRole.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRole.java @@ -28,8 +28,8 @@ public class SysRole extends BaseEntity { /** * 自增主键id */ - @TableId(value = "role_id", type = IdType.AUTO) - private Integer roleId; + @TableId(value = "role_id", type = IdType.ASSIGN_ID) + private Long roleId; /** * 角色名称 @@ -43,7 +43,7 @@ public class SysRole extends BaseEntity { /** * 默认的 所属部门 --> 为当前创建用户的部门id */ - private Integer deptId; + private Long deptId; /** * 排序 @@ -78,12 +78,12 @@ public class SysRole extends BaseEntity { /** 菜单组 */ @TableField(exist = false) - private Integer[] menuIds; + private Long[] menuIds; /** * 部门组 */ @TableField(exist = false) - private Integer[] deptIds; + private Long[] deptIds; @TableField(exist = false) private Set permissions; @@ -111,13 +111,19 @@ public class SysRole extends BaseEntity { return isAdmin(this.roleId); } - public static boolean isAdmin(Integer roleId) + public static boolean isAdmin(Long roleId) { return roleId != null && 1 == roleId; } - public SysRole(Integer roleId){ + public SysRole(Long roleId){ this.roleId = roleId; } + /** + * 租户Id + */ + @TableField(value = "tenant_id") + private Long tenantId; + } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleDept.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleDept.java index 5e7a616..cf629af 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleDept.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleDept.java @@ -24,11 +24,11 @@ public class SysRoleDept implements Serializable { /** * 角色Id */ - private Integer roleId; + private Long roleId; /** * 部门id */ - private Integer deptId; + private Long deptId; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleMenu.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleMenu.java index 4861baa..b08c4ac 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleMenu.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysRoleMenu.java @@ -27,12 +27,12 @@ public class SysRoleMenu implements Serializable { /** * 角色Id */ - private Integer roleId; + private Long roleId; /** * 菜单id */ - private Integer menuId; + private Long menuId; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenant.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenant.java new file mode 100644 index 0000000..9e4f59b --- /dev/null +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenant.java @@ -0,0 +1,55 @@ +package com.chushang.system.entity.po; + +import com.baomidou.mybatisplus.annotation.*; +import com.chushang.common.mybatis.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 租户表 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("sys_tenant") +public class SysTenant extends BaseEntity { + + /** + * 租户id + */ + @TableId(value = "tenant_id", type = IdType.ASSIGN_ID) + private Long tenantId; + /** + * 租户名称 + */ + private String tenantName; + /** + * 租户状态 + */ + private Boolean status; + /** + * 租户套餐Id + */ + private Long packageId; + + /** + * 租户排序 + */ + private Integer orderNum; + /** + * 创建人角色 + */ + @TableField(updateStrategy = FieldStrategy.NOT_NULL) + private String createBy; + /** + * 修改人 + */ + @TableField(updateStrategy = FieldStrategy.NOT_NULL) + private String updateBy; + /** + * 租户套餐 + */ + @TableField(exist = false) + private SysTenantPackage tenantPackage; +} diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenantPackage.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenantPackage.java new file mode 100644 index 0000000..a148d43 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysTenantPackage.java @@ -0,0 +1,70 @@ +package com.chushang.system.entity.po; + +import com.baomidou.mybatisplus.annotation.*; +import com.chushang.common.mybatis.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 租户套餐表 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("sys_tenant_package") +public class SysTenantPackage extends BaseEntity { + /** + * 套餐Id + */ + @TableId(value = "package_id", type = IdType.ASSIGN_ID) + private Long packageId; + /** + * 套餐名称 + */ + private String packageName; + /** + * 备注信息 + */ + private String remark; + /** + * 套餐开始时间 + */ + private LocalDate startDate; + /** + * 套餐结束时间 + */ + private LocalDate endDate; + /** + * 套餐排序 + */ + private Integer orderNum; + + /** + * 创建人角色 + */ + @TableField(updateStrategy = FieldStrategy.NOT_NULL) + private String createBy; + + /** + * 修改人 + */ + @TableField(updateStrategy = FieldStrategy.NOT_NULL) + private String updateBy; + + /** + * 套餐状态 + */ + private Boolean status; + + /** + * 判断租户是否在有效期 + */ + public boolean isValid(){ + LocalDate now = LocalDate.now(); + return (this.startDate.isAfter(now) && this.endDate.isBefore(now) && status); + } +} diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUser.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUser.java index 9ce0804..9df7802 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUser.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUser.java @@ -3,6 +3,7 @@ package com.chushang.system.entity.po; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.annotation.*; import com.chushang.common.mybatis.base.BaseEntity; +import com.chushang.datascope.entity.DataScopeEntity; import lombok.*; import lombok.experimental.Accessors; @@ -28,8 +29,8 @@ public class SysUser extends BaseEntity { /** * 自增主键id */ - @TableId(value = "user_id", type = IdType.AUTO) - private Integer userId; + @TableId(value = "user_id", type = IdType.ASSIGN_ID) + private Long userId; /** * 用户账号 @@ -56,7 +57,7 @@ public class SysUser extends BaseEntity { /** * 所属部门id */ - private Integer deptId; + private Long deptId; /** * 头像 */ @@ -88,28 +89,34 @@ public class SysUser extends BaseEntity { @TableField(updateStrategy = FieldStrategy.NOT_NULL) private String updateBy; + + private String deptName; + @TableField(exist = false) private SysDept dept; @TableField(exist = false) private List roles; + + @TableField(exist = false) + private List dataScopes; /** * 角色组 */ @TableField(exist = false) - private Integer[] roleIds; + private Long[] roleIds; /** * 角色id */ @TableField(exist = false) - private Integer roleId; + private Long roleId; public boolean isAdmin() { return isAdmin(this.userId) || isAdmin(this.roles); } - public static boolean isAdmin(Integer userId) + public static boolean isAdmin(Long userId) { return userId != null && 1 == userId; } @@ -122,11 +129,15 @@ public class SysUser extends BaseEntity { } return admin > 0; } - public SysUser(Integer userId) + public SysUser(Long userId) { this.userId = userId; } - + /** + * 租户Id + */ + @TableField(value = "tenant_id") + private Long tenantId; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserData.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserData.java deleted file mode 100644 index 246c18a..0000000 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserData.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.chushang.system.entity.po; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.chushang.system.entity.enums.AuthTypeEnum; -import lombok.*; -import lombok.experimental.SuperBuilder; - -import java.io.Serializable; - -/** - * @author by zhaowenyuan create 2022/8/24 10:20 - * 用户数据授权 - */ -@Data -@ToString -@AllArgsConstructor -@NoArgsConstructor -@Builder -@TableName(value = "sys_user_data") -public class SysUserData implements Serializable { - - /** 用户ID */ - @TableId(value = "user_id") - private Integer userId; - /** - * 数据类型 - */ - @TableField(value = "data_type") - private AuthTypeEnum dataType; - /** - * 类型对应的值 id 或者其他的唯一标识符号 - */ - @TableField(value = "data_value") - private String dataValue; -} diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserRole.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserRole.java index a9d5a06..77ab957 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserRole.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysUserRole.java @@ -30,12 +30,12 @@ public class SysUserRole implements Serializable { /** * 角色id */ - private Integer roleId; + private Long roleId; /** * 用户id */ - private Integer userId; + private Long userId; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/vo/TreeSelect.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/vo/TreeSelect.java index 3334468..35f0338 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/vo/TreeSelect.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/vo/TreeSelect.java @@ -3,7 +3,10 @@ package com.chushang.system.entity.vo; import com.fasterxml.jackson.annotation.JsonInclude; import com.chushang.system.entity.po.SysDept; import com.chushang.system.entity.po.SysMenu; +import lombok.Getter; +import lombok.Setter; +import java.io.Serial; import java.io.Serializable; import java.util.List; import java.util.stream.Collectors; @@ -13,12 +16,15 @@ import java.util.stream.Collectors; * * @author ruoyi */ +@Setter +@Getter public class TreeSelect implements Serializable { + @Serial private static final long serialVersionUID = 1L; /** 节点ID */ - private Integer id; + private Long id; /** 节点名称 */ private String label; @@ -46,33 +52,4 @@ public class TreeSelect implements Serializable this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } - public Integer getId() - { - return id; - } - - public void setId(Integer id) - { - this.id = id; - } - - public String getLabel() - { - return label; - } - - public void setLabel(String label) - { - this.label = label; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java new file mode 100644 index 0000000..24f22e3 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java @@ -0,0 +1,27 @@ +package com.chushang.system.feign; + +import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.datascope.entity.DataScopeEntity; +import com.chushang.system.constants.SystemConstants; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * 用于数据权限 判断远程调用 + */ +@FeignClient(contextId = "remoteDataScopeService", + value = SystemConstants.SYSTEM_SERVICE, + path = SystemConstants.APPLICATION_NAME + "/data/scope" +) +public interface RemoteDataScopeService { + + @GetMapping(value = "/dept/list") + public List listDeptIds(@RequestParam(value = "dataScope") DataScopeEntity dataScope, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + +} diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java index 44f6ade..f9c3f52 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java @@ -2,6 +2,7 @@ package com.chushang.system.feign; import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.web.Result; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.entity.vo.LoginUser; import com.chushang.system.constants.SystemConstants; import com.chushang.system.entity.po.SysUser; @@ -27,6 +28,6 @@ public interface RemoteUserService { * @return 结果 */ @GetMapping("/info/{username}") - Result> getUserInfo(@PathVariable(value = "username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + Result> getUserInfo(@PathVariable(value = "username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/chushang-modules/chushang-module-system/system-service/sql/tb_order_system.sql b/chushang-modules/chushang-module-system/system-service/sql/tb_order_system.sql deleted file mode 100644 index 6d5232d..0000000 --- a/chushang-modules/chushang-module-system/system-service/sql/tb_order_system.sql +++ /dev/null @@ -1,498 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : 192.168.116.115 - Source Server Type : MySQL - Source Server Version : 80027 - Source Host : 192.168.116.115:3306 - Source Schema : tb_order_system - - Target Server Type : MySQL - Target Server Version : 80027 - File Encoding : 65001 - - Date: 17/05/2024 14:22:18 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for sys_config --- ---------------------------- -DROP TABLE IF EXISTS `sys_config`; -CREATE TABLE `sys_config` ( - `config_id` int NOT NULL AUTO_INCREMENT COMMENT '参数主键', - `config_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '参数名称', - `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '参数键名', - `config_value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '参数键值', - `config_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT 'N' COMMENT '系统内置(Y是 N否)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', - `version` int NULL DEFAULT 0, - `del_status` tinyint(1) NULL DEFAULT 0, - PRIMARY KEY (`config_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '参数配置表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_config --- ---------------------------- -INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2024-05-09 14:42:10', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 0, 0); -INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2024-05-09 14:42:10', '', NULL, '初始化密码 123456', 0, 0); -INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', '2024-05-09 14:42:10', '', NULL, '深色主题theme-dark,浅色主题theme-light', 0, 0); -INSERT INTO `sys_config` VALUES (4, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', '2024-05-09 14:42:10', '', NULL, '是否开启注册用户功能(true开启,false关闭)', 0, 0); -INSERT INTO `sys_config` VALUES (5, '用户登录-黑名单列表', 'sys.login.blackIPList', '', 'Y', 'admin', '2024-05-09 14:42:10', '', NULL, '设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)', 0, 0); - --- ---------------------------- --- Table structure for sys_dept --- ---------------------------- -DROP TABLE IF EXISTS `sys_dept`; -CREATE TABLE `sys_dept` ( - `dept_id` int NOT NULL AUTO_INCREMENT COMMENT '部门id', - `parent_dept_id` int NULL DEFAULT 0 COMMENT '父部门id', - `ancestors` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '祖级列表', - `dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '部门名称', - `order_num` int NULL DEFAULT 0 COMMENT '显示顺序', - `status` tinyint(1) NULL DEFAULT 1 COMMENT '部门状态(0停用 1正常)', - `del_state` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在 2代表删除)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `version` bigint NULL DEFAULT 0, - PRIMARY KEY (`dept_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '部门表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_dept --- ---------------------------- -INSERT INTO `sys_dept` VALUES (200, 0, '0', '楚商', 0, 1, 0, 'admin', '2022-08-25 16:45:59', 'admin', '2024-04-29 14:44:24', 0); - --- ---------------------------- --- Table structure for sys_dict_data --- ---------------------------- -DROP TABLE IF EXISTS `sys_dict_data`; -CREATE TABLE `sys_dict_data` ( - `dict_code` int NOT NULL AUTO_INCREMENT COMMENT '字典编码', - `dict_sort` int NULL DEFAULT 0 COMMENT '字典排序', - `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '字典标签', - `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '字典键值', - `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '字典类型', - `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)', - `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '表格回显样式', - `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)', - `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `del_status` tinyint(1) NULL DEFAULT 0, - `version` int NULL DEFAULT 0, - PRIMARY KEY (`dict_code`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 105 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '字典数据表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_dict_data --- ---------------------------- -INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (4, 1, '显示', '1', 'sys_show_hide', '', 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (5, 2, '隐藏', '0', 'sys_show_hide', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (6, 1, '正常', '1', 'sys_normal_disable', '', 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (7, 2, '停用', '0', 'sys_normal_disable', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '1', 'sys_job_status', '', 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '0', 'sys_job_status', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '1', 'sys_notice_status', '', 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '0', 'sys_notice_status', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (100, 1, '停用', '0', 'sys_menu_status', '', 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (101, 2, '启用', '1', 'sys_menu_status', '', 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (102, 0, '缓存', '1', 'sys_cache_nocache', NULL, 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (103, 1, '不缓存', '0', 'sys_cache_nocache', NULL, 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (104, 0, '内链', '1', 'sys_frame_no', NULL, 'primary', 'Y', '0', NULL, NULL, NULL, NULL, 0, 0); -INSERT INTO `sys_dict_data` VALUES (105, 1, '外链', '0', 'sys_frame_no', NULL, 'danger', 'N', '0', NULL, NULL, NULL, NULL, 0, 0); - --- ---------------------------- --- Table structure for sys_dict_type --- ---------------------------- -DROP TABLE IF EXISTS `sys_dict_type`; -CREATE TABLE `sys_dict_type` ( - `dict_id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', - `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '字典名称', - `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '字典类型', - `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', - `version` int NULL DEFAULT 0, - `del_status` tinyint(1) NULL DEFAULT 0, - PRIMARY KEY (`dict_id`) USING BTREE, - UNIQUE INDEX `dict_type`(`dict_type` ASC) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '字典类型表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_dict_type --- ---------------------------- - --- ---------------------------- --- Table structure for sys_log --- ---------------------------- -DROP TABLE IF EXISTS `sys_log`; -CREATE TABLE `sys_log` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `type` smallint NULL DEFAULT NULL COMMENT '日志类型', - `remote_addr` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '操作ip', - `user_agent` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户代理', - `request_uri` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求uri', - `method` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求方法', - `params` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '请求参数', - `time` bigint NULL DEFAULT NULL COMMENT '执行时间 毫秒', - `exception` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '异常信息', - `user_id` bigint NULL DEFAULT NULL COMMENT '操作用户id', - `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `operation` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户操作', - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `del_state` tinyint(1) NULL DEFAULT 0, - `operation_type` tinyint NULL DEFAULT NULL COMMENT '操作类型', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '系统日志' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_log --- ---------------------------- - --- ---------------------------- --- Table structure for sys_login_info --- ---------------------------- -DROP TABLE IF EXISTS `sys_login_info`; -CREATE TABLE `sys_login_info` ( - `info_id` bigint NOT NULL AUTO_INCREMENT, - `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `status` smallint NULL DEFAULT NULL, - `ipaddr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `access_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `del_state` tinyint(1) NULL DEFAULT 0, - `version` bigint NULL DEFAULT 0, - PRIMARY KEY (`info_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_login_info --- ---------------------------- -INSERT INTO `sys_login_info` VALUES (1, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-08 10:53:33', '2024-05-08 10:53:36', '2024-05-08 10:53:36', 0, NULL); -INSERT INTO `sys_login_info` VALUES (2, 'admin', 1, '127.0.0.1', '退出成功', '2024-05-08 10:53:33', '2024-05-08 10:53:36', '2024-05-08 10:53:36', 0, NULL); -INSERT INTO `sys_login_info` VALUES (3, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-08 10:58:12', '2024-05-08 10:58:15', '2024-05-08 10:58:15', 0, NULL); -INSERT INTO `sys_login_info` VALUES (4, 'admin', 1, '127.0.0.1', '退出成功', '2024-05-08 11:06:41', '2024-05-08 11:06:44', '2024-05-08 11:06:44', 0, NULL); -INSERT INTO `sys_login_info` VALUES (5, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-08 11:42:47', '2024-05-08 11:42:50', '2024-05-08 11:42:50', 0, NULL); -INSERT INTO `sys_login_info` VALUES (6, 'admin', 1, '127.0.0.1', '退出成功', '2024-05-09 09:41:40', '2024-05-09 09:41:43', '2024-05-09 09:41:43', 0, NULL); -INSERT INTO `sys_login_info` VALUES (7, 'admin', 3, '127.0.0.1', '用户密码错误', '2024-05-09 09:41:52', '2024-05-09 09:41:54', '2024-05-09 09:41:54', 0, NULL); -INSERT INTO `sys_login_info` VALUES (8, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-09 09:41:57', '2024-05-09 09:42:00', '2024-05-09 09:42:00', 0, NULL); -INSERT INTO `sys_login_info` VALUES (9, 'admin', 1, '127.0.0.1', '退出成功', '2024-05-09 10:54:49', '2024-05-09 10:54:52', '2024-05-09 10:54:52', 0, NULL); -INSERT INTO `sys_login_info` VALUES (10, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-09 10:54:54', '2024-05-09 10:54:57', '2024-05-09 10:54:57', 0, NULL); -INSERT INTO `sys_login_info` VALUES (11, 'admin', 1, '127.0.0.1', '退出成功', '2024-05-09 11:50:34', '2024-05-09 11:50:37', '2024-05-09 11:50:37', 0, NULL); -INSERT INTO `sys_login_info` VALUES (12, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-09 11:50:38', '2024-05-09 11:50:42', '2024-05-09 11:50:42', 0, NULL); -INSERT INTO `sys_login_info` VALUES (13, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-10 15:24:00', '2024-05-10 15:24:04', '2024-05-10 15:24:04', 0, NULL); -INSERT INTO `sys_login_info` VALUES (14, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-10 15:40:34', '2024-05-10 15:40:37', '2024-05-10 15:40:37', 0, NULL); -INSERT INTO `sys_login_info` VALUES (15, 'admin', 0, '127.0.0.1', '登录成功', '2024-05-10 15:43:01', '2024-05-10 15:43:05', '2024-05-10 15:43:05', 0, NULL); - --- ---------------------------- --- Table structure for sys_menu --- ---------------------------- -DROP TABLE IF EXISTS `sys_menu`; -CREATE TABLE `sys_menu` ( - `menu_id` int NOT NULL AUTO_INCREMENT COMMENT '菜单ID', - `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '菜单名称', - `parent_id` int NULL DEFAULT 0 COMMENT '父菜单ID', - `order_num` int NULL DEFAULT 0 COMMENT '显示顺序', - `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '路由地址', - `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '组件路径', - `query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '路由参数', - `frame` tinyint(1) NULL DEFAULT 1 COMMENT '是否为外链(0是 1否)', - `cache` tinyint(1) NULL DEFAULT 0 COMMENT '是否缓存(0缓存 1不缓存)', - `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)', - `visible` tinyint(1) NULL DEFAULT 0 COMMENT '菜单状态(0隐藏 1显示)0 false 1true', - `status` tinyint(1) NULL DEFAULT 1 COMMENT '菜单状态(1正常 0停用)1true 0false', - `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '权限标识', - `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '#' COMMENT '菜单图标', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '备注', - `del_state` tinyint(1) NULL DEFAULT 0 COMMENT '删除状态', - `version` bigint NULL DEFAULT 0, - PRIMARY KEY (`menu_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1060 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '菜单权限表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_menu --- ---------------------------- -INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 1, 'system', NULL, '', 1, 0, 'M', 1, 1, '', 'system', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '系统管理目录', 0, 0); -INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 2, 'monitor', NULL, '', 1, 0, 'M', 1, 1, '', 'monitor', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '系统监控目录', 0, 0); -INSERT INTO `sys_menu` VALUES (3, '系统工具', 0, 3, 'tool', NULL, '', 1, 0, 'M', 1, 1, '', 'tool', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '系统工具目录', 0, 0); -INSERT INTO `sys_menu` VALUES (4, '若依官网', 0, 4, 'http://ruoyi.vip', NULL, '', 0, 0, 'M', 1, 1, '', 'guide', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:28', '若依官网地址', 1, 0); -INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', 1, 0, 'C', 1, 1, 'system:user:list', 'user', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '用户管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', 1, 0, 'C', 1, 1, 'system:role:list', 'peoples', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '角色管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 1, 0, 'C', 1, 1, 'system:menu:list', 'tree-table', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '菜单管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', 1, 0, 'C', 1, 1, 'system:dept:list', 'tree', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '部门管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 1, 0, 'C', 1, 1, 'system:post:list', 'post', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '岗位管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 1, 0, 'C', 1, 1, 'system:dict:list', 'dict', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '字典管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 1, 0, 'C', 1, 1, 'system:config:list', 'edit', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '参数设置菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', 1, 0, 'C', 1, 1, 'system:notice:list', 'message', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '通知公告菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (108, '日志管理', 1, 9, 'log', '', '', 1, 0, 'M', 1, 1, '', 'log', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '日志管理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 1, 0, 'C', 1, 1, 'monitor:online:list', 'online', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '在线用户菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', 1, 0, 'C', 1, 1, 'monitor:job:list', 'job', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '定时任务菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (111, 'Sentinel控制台', 2, 3, 'http://localhost:8718', '', '', 0, 0, 'C', 1, 1, 'monitor:sentinel:list', 'sentinel', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '流量控制菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (112, 'Nacos控制台', 2, 4, 'http://localhost:8848/nacos', '', '', 0, 0, 'C', 1, 1, 'monitor:nacos:list', 'nacos', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '服务治理菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (113, 'Admin控制台', 2, 5, 'http://localhost:9100/login', '', '', 0, 0, 'C', 1, 1, 'monitor:server:list', 'server', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '服务监控菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (114, '表单构建', 3, 1, 'build', 'tool/build/index', '', 1, 0, 'C', 1, 1, 'tool:build:list', 'build', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '表单构建菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (115, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', 1, 1, 'tool:gen:list', 'code', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '代码生成菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (116, '系统接口', 3, 3, 'http://localhost:8080/swagger-ui/index.html', '', '', 0, 0, 'C', 1, 1, 'tool:swagger:list', 'swagger', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '系统接口菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (500, '操作日志', 108, 1, 'operlog', 'system/operlog/index', '', 1, 0, 'C', 1, 1, 'system:operlog:list', 'form', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '操作日志菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (501, '登录日志', 108, 2, 'logininfor', 'system/logininfor/index', '', 1, 0, 'C', 1, 1, 'system:logininfor:list', 'logininfor', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '登录日志菜单', 0, 0); -INSERT INTO `sys_menu` VALUES (1000, '用户查询', 100, 1, '', '', '', 1, 0, 'F', 1, 1, 'system:user:query', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1001, '用户新增', 100, 2, '', '', '', 1, 0, 'F', 1, 1, 'system:user:add', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1002, '用户修改', 100, 3, '', '', '', 1, 0, 'F', 1, 1, 'system:user:edit', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1003, '用户删除', 100, 4, '', '', '', 1, 0, 'F', 1, 1, 'system:user:remove', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1004, '用户导出', 100, 5, '', '', '', 1, 0, 'F', 1, 1, 'system:user:export', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1005, '用户导入', 100, 6, '', '', '', 1, 0, 'F', 1, 1, 'system:user:import', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1006, '重置密码', 100, 7, '', '', '', 1, 0, 'F', 1, 1, 'system:user:resetPwd', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1007, '角色查询', 101, 1, '', '', '', 1, 0, 'F', 1, 1, 'system:role:query', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1008, '角色新增', 101, 2, '', '', '', 1, 0, 'F', 1, 1, 'system:role:add', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1009, '角色修改', 101, 3, '', '', '', 1, 0, 'F', 1, 1, 'system:role:edit', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1010, '角色删除', 101, 4, '', '', '', 1, 0, 'F', 1, 1, 'system:role:remove', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1011, '角色导出', 101, 5, '', '', '', 1, 0, 'F', 1, 1, 'system:role:export', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1012, '菜单查询', 102, 1, '', '', '', 1, 0, 'F', 1, 1, 'system:menu:query', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1013, '菜单新增', 102, 2, '', '', '', 1, 0, 'F', 1, 1, 'system:menu:add', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1014, '菜单修改', 102, 3, '', '', '', 1, 0, 'F', 1, 1, 'system:menu:edit', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1015, '菜单删除', 102, 4, '', '', '', 1, 0, 'F', 1, 1, 'system:menu:remove', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1016, '部门查询', 103, 1, '', '', '', 1, 0, 'F', 1, 1, 'system:dept:query', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1017, '部门新增', 103, 2, '', '', '', 1, 0, 'F', 1, 1, 'system:dept:add', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1018, '部门修改', 103, 3, '', '', '', 1, 0, 'F', 1, 1, 'system:dept:edit', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1019, '部门删除', 103, 4, '', '', '', 1, 0, 'F', 1, 1, 'system:dept:remove', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1020, '岗位查询', 104, 1, '', '', '', 1, 0, 'F', 1, 1, 'system:post:query', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1021, '岗位新增', 104, 2, '', '', '', 1, 0, 'F', 1, 1, 'system:post:add', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1022, '岗位修改', 104, 3, '', '', '', 1, 0, 'F', 1, 1, 'system:post:edit', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1023, '岗位删除', 104, 4, '', '', '', 1, 0, 'F', 1, 1, 'system:post:remove', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1024, '岗位导出', 104, 5, '', '', '', 1, 0, 'F', 1, 1, 'system:post:export', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1025, '字典查询', 105, 1, '#', '', '', 1, 0, 'F', 1, 1, 'system:dict:query', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1026, '字典新增', 105, 2, '#', '', '', 1, 0, 'F', 1, 1, 'system:dict:add', '#', 'admin', '2024-05-09 14:42:09', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1027, '字典修改', 105, 3, '#', '', '', 1, 0, 'F', 1, 1, 'system:dict:edit', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1028, '字典删除', 105, 4, '#', '', '', 1, 0, 'F', 1, 1, 'system:dict:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1029, '字典导出', 105, 5, '#', '', '', 1, 0, 'F', 1, 1, 'system:dict:export', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1030, '参数查询', 106, 1, '#', '', '', 1, 0, 'F', 1, 1, 'system:config:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1031, '参数新增', 106, 2, '#', '', '', 1, 0, 'F', 1, 1, 'system:config:add', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1032, '参数修改', 106, 3, '#', '', '', 1, 0, 'F', 1, 1, 'system:config:edit', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1033, '参数删除', 106, 4, '#', '', '', 1, 0, 'F', 1, 1, 'system:config:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1034, '参数导出', 106, 5, '#', '', '', 1, 0, 'F', 1, 1, 'system:config:export', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1035, '公告查询', 107, 1, '#', '', '', 1, 0, 'F', 1, 1, 'system:notice:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1036, '公告新增', 107, 2, '#', '', '', 1, 0, 'F', 1, 1, 'system:notice:add', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1037, '公告修改', 107, 3, '#', '', '', 1, 0, 'F', 1, 1, 'system:notice:edit', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1038, '公告删除', 107, 4, '#', '', '', 1, 0, 'F', 1, 1, 'system:notice:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1039, '操作查询', 500, 1, '#', '', '', 1, 0, 'F', 1, 1, 'system:operlog:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1040, '操作删除', 500, 2, '#', '', '', 1, 0, 'F', 1, 1, 'system:operlog:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1041, '日志导出', 500, 3, '#', '', '', 1, 0, 'F', 1, 1, 'system:operlog:export', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1042, '登录查询', 501, 1, '#', '', '', 1, 0, 'F', 1, 1, 'system:logininfor:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1043, '登录删除', 501, 2, '#', '', '', 1, 0, 'F', 1, 1, 'system:logininfor:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1044, '日志导出', 501, 3, '#', '', '', 1, 0, 'F', 1, 1, 'system:logininfor:export', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1045, '账户解锁', 501, 4, '#', '', '', 1, 0, 'F', 1, 1, 'system:logininfor:unlock', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:online:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:online:batchLogout', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:online:forceLogout', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1049, '任务查询', 110, 1, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:job:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1050, '任务新增', 110, 2, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:job:add', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1051, '任务修改', 110, 3, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:job:edit', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1052, '任务删除', 110, 4, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:job:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1053, '状态修改', 110, 5, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:job:changeStatus', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1054, '任务导出', 110, 6, '#', '', '', 1, 0, 'F', 1, 1, 'monitor:job:export', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1055, '生成查询', 115, 1, '#', '', '', 1, 0, 'F', 1, 1, 'tool:gen:query', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1056, '生成修改', 115, 2, '#', '', '', 1, 0, 'F', 1, 1, 'tool:gen:edit', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1057, '生成删除', 115, 3, '#', '', '', 1, 0, 'F', 1, 1, 'tool:gen:remove', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1058, '导入代码', 115, 2, '#', '', '', 1, 0, 'F', 1, 1, 'tool:gen:import', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1059, '预览代码', 115, 4, '#', '', '', 1, 0, 'F', 1, 1, 'tool:gen:preview', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); -INSERT INTO `sys_menu` VALUES (1060, '生成代码', 115, 5, '#', '', '', 1, 0, 'F', 1, 1, 'tool:gen:code', '#', 'admin', '2024-05-09 14:42:10', '', '2024-05-09 16:10:01', '', 0, 0); - --- ---------------------------- --- Table structure for sys_post --- ---------------------------- -DROP TABLE IF EXISTS `sys_post`; -CREATE TABLE `sys_post` ( - `post_id` bigint NOT NULL AUTO_INCREMENT COMMENT '岗位ID', - `post_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '岗位编码', - `post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '岗位名称', - `post_sort` int NOT NULL COMMENT '显示顺序', - `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '状态(0正常 1停用)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', - `version` int NULL DEFAULT 0, - `del_status` tinyint(1) NULL DEFAULT 0, - PRIMARY KEY (`post_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '岗位信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_post --- ---------------------------- -INSERT INTO `sys_post` VALUES (1, 'ceo', '董事长', 1, '0', 'admin', '2024-05-09 14:42:09', '', NULL, '', 0, 0); -INSERT INTO `sys_post` VALUES (2, 'se', '项目经理', 2, '0', 'admin', '2024-05-09 14:42:09', '', NULL, '', 0, 0); -INSERT INTO `sys_post` VALUES (3, 'hr', '人力资源', 3, '0', 'admin', '2024-05-09 14:42:09', '', NULL, '', 0, 0); -INSERT INTO `sys_post` VALUES (4, 'user', '普通员工', 4, '0', 'admin', '2024-05-09 14:42:09', '', NULL, '', 0, 0); - --- ---------------------------- --- Table structure for sys_role --- ---------------------------- -DROP TABLE IF EXISTS `sys_role`; -CREATE TABLE `sys_role` ( - `role_id` int NOT NULL AUTO_INCREMENT COMMENT '角色ID', - `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '角色名称', - `role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '角色权限字符串', - `order_num` int NOT NULL DEFAULT 0 COMMENT '显示顺序', - `data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '4' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', - `menu_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '菜单树选择项是否关联显示', - `dept_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '部门树选择项是否关联显示', - `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '角色状态(1正常 0停用)', - `del_state` tinyint(1) NULL DEFAULT 0 COMMENT '删除标志(0代表存在 2代表删除)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', - `dept_id` int NULL DEFAULT NULL COMMENT '对应部门id', - `version` bigint NULL DEFAULT 0, - PRIMARY KEY (`role_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '角色信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_role --- ---------------------------- -INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 1, 1, 0, 'admin', '2022-08-25 15:08:02', '', '2022-09-27 17:18:54', '超级管理员', 200, 0); - --- ---------------------------- --- Table structure for sys_role_dept --- ---------------------------- -DROP TABLE IF EXISTS `sys_role_dept`; -CREATE TABLE `sys_role_dept` ( - `role_id` int NOT NULL COMMENT '角色ID', - `dept_id` int NOT NULL COMMENT '部门ID', - PRIMARY KEY (`role_id`, `dept_id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '角色和部门关联表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_role_dept --- ---------------------------- - --- ---------------------------- --- Table structure for sys_role_menu --- ---------------------------- -DROP TABLE IF EXISTS `sys_role_menu`; -CREATE TABLE `sys_role_menu` ( - `role_id` int NOT NULL COMMENT '角色ID', - `menu_id` int NOT NULL COMMENT '菜单ID', - PRIMARY KEY (`role_id`, `menu_id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_role_menu --- ---------------------------- - --- ---------------------------- --- Table structure for sys_user --- ---------------------------- -DROP TABLE IF EXISTS `sys_user`; -CREATE TABLE `sys_user` ( - `user_id` int NOT NULL AUTO_INCREMENT, - `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户名', - `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密码', - `status` tinyint NULL DEFAULT 1 COMMENT '状态 0:禁用 1:正常', - `salt` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '盐', - `dept_id` int NULL DEFAULT NULL COMMENT '部门id', - `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建人', - `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改人', - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - `del_state` tinyint(1) NULL DEFAULT 0 COMMENT '删除状态', - `version` bigint NULL DEFAULT 0, - PRIMARY KEY (`user_id`) USING BTREE, - INDEX `username`(`username` ASC) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '系统用户' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_user --- ---------------------------- -INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$mT7Ismory0OeHYhmXMk2O.0Y/qaKt2VBn6bwQiKUvttQHW0/naveC', 1, 'h2HheUVZmF', 200, 'admin', 'admin', '2022-08-25 16:43:40', '2024-05-08 10:48:46', 0, 0); - --- ---------------------------- --- Table structure for sys_user_data --- ---------------------------- -DROP TABLE IF EXISTS `sys_user_data`; -CREATE TABLE `sys_user_data` ( - `user_id` int NOT NULL COMMENT '用户id', - `data_type` smallint NOT NULL COMMENT '数据类型 -- 应当是一个 枚举', - `data_value` json NULL COMMENT '数据对应id, 多个以数组形式存在', - PRIMARY KEY (`user_id`, `data_type`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_user_data --- ---------------------------- - --- ---------------------------- --- Table structure for sys_user_post --- ---------------------------- -DROP TABLE IF EXISTS `sys_user_post`; -CREATE TABLE `sys_user_post` ( - `user_id` bigint NOT NULL COMMENT '用户ID', - `post_id` bigint NOT NULL COMMENT '岗位ID', - PRIMARY KEY (`user_id`, `post_id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户与岗位关联表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_user_post --- ---------------------------- -INSERT INTO `sys_user_post` VALUES (1, 1); -INSERT INTO `sys_user_post` VALUES (2, 2); - --- ---------------------------- --- Table structure for sys_user_role --- ---------------------------- -DROP TABLE IF EXISTS `sys_user_role`; -CREATE TABLE `sys_user_role` ( - `user_id` int NOT NULL COMMENT '用户ID', - `role_id` int NOT NULL COMMENT '角色ID', - PRIMARY KEY (`user_id`, `role_id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户和角色关联表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of sys_user_role --- ---------------------------- -INSERT INTO `sys_user_role` VALUES (1, 1); - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/SystemApplication.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/SystemApplication.java index 5bd040d..0067d45 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/SystemApplication.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/SystemApplication.java @@ -20,7 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableDiscoveryClient @EnableOnnFeignClients @EnableTransactionManagement -@SpringBootApplication +@SpringBootApplication(scanBasePackages = {"com.chushang.**"}) @EnableCustomConfig //启用服务调用的参数传递,包含链路追踪日志 @EnableTransferFeign diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DeptController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DeptController.java index 8b5d13c..962942d 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DeptController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DeptController.java @@ -56,7 +56,7 @@ public class DeptController { */ @RequiresPermissions("system:dept:query") @GetMapping(value = "/{deptId}") - public AjaxResult getInfo(@PathVariable Integer deptId) + public AjaxResult getInfo(@PathVariable Long deptId) { sysDeptService.checkDeptDataScope(deptId); @@ -79,7 +79,7 @@ public class DeptController { */ @GetMapping(value = "/roleDept/tree/{roleId}") @RequiresPermissions("system:role:query") - public AjaxResult roleDeptTreeSelect(@PathVariable("roleId") Integer roleId) + public AjaxResult roleDeptTreeSelect(@PathVariable("roleId") Long roleId) { List deptList = sysDeptService.selectDeptList(new ListDeptDTO()); return AjaxResult.success() @@ -113,7 +113,7 @@ public class DeptController { @PutMapping public AjaxResult edit(@Valid @RequestBody SysDept dept) { - Integer deptId = dept.getDeptId(); + Long deptId = dept.getDeptId(); sysDeptService.checkDeptDataScope(deptId); @@ -142,7 +142,7 @@ public class DeptController { @RequiresPermissions("system:dept:remove") @SysLog(value = "部门", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") - public AjaxResult remove(@PathVariable Integer deptId) + public AjaxResult remove(@PathVariable Long deptId) { if (sysDeptService.hasChildByDeptId(deptId)) { diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java index 162b816..7a0c78c 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java @@ -4,6 +4,7 @@ import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.excel.utils.ExcelUtils; import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.constant.LogApplicationName; import com.chushang.common.log.enums.BusinessType; import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.utils.PageResult; @@ -11,8 +12,6 @@ import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.utils.SecurityUtils; import com.chushang.system.entity.po.SysDictType; import com.chushang.system.service.ISysDictTypeService; -import lombok.extern.java.Log; -import org.aspectj.weaver.loadtime.Aj; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -111,7 +110,7 @@ public class DictTypeController { * TODO 刷新字典缓存 */ @RequiresPermissions("system:dict:refresh") - @SysLog(value = "字典类型", businessType = BusinessType.CLEAN) + @SysLog(value = "字典类型", businessType = BusinessType.CLEAR) @DeleteMapping("/refreshCache") public AjaxResult refreshCache() { diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java index 173847b..26b747c 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java @@ -5,6 +5,7 @@ import com.chushang.common.core.util.StringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.log.annotation.SysLog; import com.chushang.common.log.enums.BusinessType; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.utils.SecurityUtils; import com.chushang.system.entity.dto.ListMenuDTO; @@ -35,7 +36,7 @@ public class MenuController { @GetMapping("/list") public AjaxResult list(ListMenuDTO listMenu) { - Integer userId = SecurityUtils.getUserId(); + Long userId = SecurityUtils.getUserId(); List menus = menuService.selectMenuList(listMenu, userId); return AjaxResult.success(menus); } @@ -45,7 +46,7 @@ public class MenuController { */ @RequiresPermissions("system:menu:query") @GetMapping(value = "/{menuId}") - public AjaxResult getInfo(@PathVariable Integer menuId) + public AjaxResult getInfo(@PathVariable Long menuId) { return AjaxResult.success(menuService.selectMenuById(menuId)); } @@ -56,7 +57,7 @@ public class MenuController { @GetMapping("/tree/select") public AjaxResult treeSelect() { - Integer userId = SecurityUtils.getUserId(); + Long userId = SecurityUtils.getUserId(); List menus = menuService.selectMenuList(new ListMenuDTO(), userId); return AjaxResult.success(menuService.buildMenuTreeSelect(menus)); @@ -66,9 +67,9 @@ public class MenuController { * 加载对应角色菜单列表树 */ @GetMapping(value = "/roleMenu/tree/select/{roleId}") - public AjaxResult roleMenuTreeSelect(@PathVariable("roleId") Integer roleId) + public AjaxResult roleMenuTreeSelect(@PathVariable("roleId") Long roleId) { - Integer userId = SecurityUtils.getUserId(); + Long userId = SecurityUtils.getUserId(); List menus = menuService.selectMenuList(userId); return AjaxResult.success() .add("checkedKeys", menuService.selectMenuListByRoleId(roleId)) @@ -131,9 +132,9 @@ public class MenuController { * 删除菜单 */ @RequiresPermissions("system:menu:remove") - @SysLog("删除菜单") + @SysLog(value = "菜单", businessType = BusinessType.DELETE) @DeleteMapping("/{menuId}") - public AjaxResult remove(@PathVariable("menuId") Integer menuId) + public AjaxResult remove(@PathVariable("menuId") Long menuId) { if (menuService.hasChildByMenuId(menuId)) { @@ -156,7 +157,7 @@ public class MenuController { @GetMapping("/getRouters") public AjaxResult getRouters() { - LoginUser loginUser = SecurityUtils.getLoginUser(); + LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser sysUser = loginUser.getSysUser(); List menus = menuService.selectMenuTreeByUserId(sysUser); return AjaxResult.success(menuService.buildMenus(menus)); diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java index 0562409..658070d 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java @@ -7,9 +7,12 @@ import com.chushang.common.log.annotation.SysLog; import com.chushang.common.log.enums.BusinessType; import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.annotation.RequiresPermissions; +import com.chushang.security.entity.vo.LoginUser; import com.chushang.security.utils.SecurityUtils; import com.chushang.system.entity.po.SysPost; +import com.chushang.system.entity.po.SysUser; import com.chushang.system.service.ISysPostService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -78,6 +81,12 @@ public class PostController { postName.setPostName(null); AssertUtil.invalidate(postService.checkPostUnique(postName), "新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); post.setCreateBy(SecurityUtils.getUsername()); + + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser sysUser = loginUser.getSysUser(); + Long deptId = sysUser.getDeptId(); + + post.setDeptId(deptId); postService.saveOrUpdate(post); return AjaxResult.success(); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java index d8791e5..15c3573 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java @@ -42,7 +42,7 @@ public class RoleController { */ @RequiresPermissions("system:role:query") @GetMapping(value = "/{roleId}") - public AjaxResult getInfo(@PathVariable Integer roleId) + public AjaxResult getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(new SysRole(roleId)); @@ -53,7 +53,7 @@ public class RoleController { * 新增角色 */ @RequiresPermissions("system:role:add") - @SysLog(value = "新增角色",businessType = BusinessType.INSERT) + @SysLog(value = "角色",businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysRole role) { @@ -77,7 +77,7 @@ public class RoleController { * 修改保存角色 */ @RequiresPermissions("system:role:edit") - @SysLog(value = "修改角色",businessType = BusinessType.UPDATE) + @SysLog(value = "角色",businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysRole role) { @@ -106,7 +106,7 @@ public class RoleController { * 修改保存数据权限 */ @RequiresPermissions("system:role:edit") - @SysLog(value = "修改角色权限",businessType = BusinessType.GRANT) + @SysLog(value = "角色权限",businessType = BusinessType.GRANT) @PutMapping("/dataScope") public AjaxResult dataScope(@RequestBody SysRole role) { @@ -122,7 +122,7 @@ public class RoleController { * 状态修改 */ @RequiresPermissions("system:role:edit") - @SysLog(value = "修改角色状态",businessType = BusinessType.UPDATE) + @SysLog(value = "角色状态",businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysRole role) { @@ -140,9 +140,9 @@ public class RoleController { * 删除角色 */ @RequiresPermissions("system:role:remove") - @SysLog(value = "删除角色",businessType = BusinessType.DELETE) + @SysLog(value = "角色",businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") - public AjaxResult remove(@PathVariable Integer[] roleIds) + public AjaxResult remove(@PathVariable Long[] roleIds) { roleService.deleteRoleByIds(roleIds); @@ -200,8 +200,8 @@ public class RoleController { @PutMapping("/authUser") public AjaxResult selectAuthUserAll(@RequestBody @Valid RoleUser roleUser) { - Integer roleId = roleUser.getRoleId(); - Integer[] userIds = roleUser.getUserIds(); + Long roleId = roleUser.getRoleId(); + Long[] userIds = roleUser.getUserIds(); // 判断当切登录用户有没有 此角色的权限 roleService.checkRoleDataScope(new SysRole(roleId)); diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLogController.java similarity index 54% rename from chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java rename to chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLogController.java index d288bba..6a7ca1a 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLogController.java @@ -6,18 +6,17 @@ * 版权所有,侵权必究! */ -package com.chushang.common.log.controller; +package com.chushang.system.controller; import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.log.annotation.SysLog; import com.chushang.common.log.entity.dto.ListLogDTO; +import com.chushang.common.log.enums.BusinessType; import com.chushang.common.log.service.SysLogService; import com.chushang.common.mybatis.utils.PageResult; import com.chushang.security.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; /** @@ -25,7 +24,7 @@ import org.springframework.web.bind.annotation.ResponseBody; * * @author Mark sunlightcs@gmail.com */ -@Controller +@RestController @RequestMapping("/v1/log") public class SysLogController { @Autowired @@ -34,7 +33,6 @@ public class SysLogController { /** * 列表 */ - @ResponseBody @GetMapping("/list") @RequiresPermissions("system:log:list") public AjaxResult list(ListLogDTO params){ @@ -42,4 +40,20 @@ public class SysLogController { return AjaxResult.success(page); } + @DeleteMapping(value = "/clean") + @SysLog(value = "日志",businessType = BusinessType.CLEAR) + @RequiresPermissions(value = "system:log:delete") + public AjaxResult cleanLog(){ + sysLogService.cleanLog(); + return AjaxResult.success(); + } + + @DeleteMapping(value = "/{logId}") + @SysLog(value = "日志",businessType = BusinessType.DELETE) + @RequiresPermissions(value = "system:log:delete") + public AjaxResult delLog(@PathVariable Long logId){ + sysLogService.removeById(logId); + return AjaxResult.success(); + } + } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java index 1822921..128d882 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java @@ -20,18 +20,11 @@ import java.util.Arrays; @RestController @RequestMapping(value = "/log/login/info") -public class SysLoginInfoController implements RemoteLoginInfoService { +public class SysLoginInfoController { @Autowired private SysLoginInfoService sysLoginInfoService; - @Override - @InnerAuth - @PostMapping - public Result saveLoginInfo(@RequestBody SysLoginInfo sysLogininfo, String source) { - return Result.ok(sysLoginInfoService.saveLoginInfo(sysLogininfo).isSuccess()); - } - @GetMapping(value = "/list") @RequiresPermissions("system:log:list") public AjaxResult listLoginInfo(SysLoginInfo loginInfo){ diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java deleted file mode 100644 index 24368f2..0000000 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.chushang.system.controller; - -import com.chushang.common.core.exception.ResultException; -import com.chushang.common.core.web.AjaxResult; -import com.chushang.common.core.web.EnumUtils; -import com.chushang.common.log.annotation.SysLog; -import com.chushang.security.annotation.Logical; -import com.chushang.security.annotation.RequiresPermissions; -import com.chushang.system.entity.bo.DataAuth; -import com.chushang.system.entity.enums.AuthTypeEnum; -import com.chushang.system.service.ISysUserDataService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @author by zhaowenyuan create 2022/8/24 10:26 - */ -@Slf4j -@RestController -@RequestMapping(value = "/data") -public class SysUserDataController { - - @Autowired - ISysUserDataService userDataService; - - /** - * todo 针对用户进行授权 - * 数据权限授权 - */ - @SysLog(value = "用户数据授权") - @PostMapping(value = "/{userId}/{dataType}") - @RequiresPermissions(value = {"system:app:auth","system:platform:auth"}, logical = Logical.OR) - public AjaxResult authData(@RequestBody Map authDataMap, - @PathVariable Integer dataType, - @PathVariable Integer userId) - { - - String authData = authDataMap.get("authData"); - AuthTypeEnum authType = EnumUtils.getByCode(dataType, AuthTypeEnum.class); - if (null == authType){ - throw new ResultException("授权类型不正确"); - } - DataAuth dataAuth = new DataAuth(); - // 格式为 用, 隔开的id - dataAuth.setAuthData(authData); - dataAuth.setUserId(userId); - dataAuth.setAuthType(authType); - - userDataService.authData(dataAuth); - - return AjaxResult.success(); - } - - /** - * todo 数据权限授权查看 - */ - @GetMapping(value = "/{userId}/{authType}") - @RequiresPermissions(value = {"system:app:auth","system:platform:auth"}, logical = Logical.OR) - public AjaxResult getAuthData(@PathVariable Integer userId, - @PathVariable Integer authType) - { - return AjaxResult.success( userDataService.getUserAuthData(userId, authType)); - } -} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java index fe69ffa..eedecb9 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java @@ -1,14 +1,11 @@ package com.chushang.system.controller; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.json.JSONUtil; import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.util.StringUtils; import com.chushang.common.core.web.AjaxResult; -import com.chushang.common.core.web.Result; import com.chushang.common.log.annotation.SysLog; -import com.chushang.common.mybatis.page.CommonParam; -import com.chushang.security.annotation.InnerAuth; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.service.TokenService; import com.chushang.security.utils.SecurityUtils; @@ -17,15 +14,13 @@ import com.chushang.system.entity.dto.ListUserDTO; import com.chushang.system.entity.po.SysPost; import com.chushang.system.entity.po.SysRole; import com.chushang.system.entity.po.SysUser; -import com.chushang.system.entity.po.SysUserData; import com.chushang.security.entity.vo.LoginUser; -import com.chushang.system.feign.RemoteUserService; import com.chushang.system.service.*; import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.validation.Valid; import java.util.*; import java.util.stream.Collectors; @@ -35,19 +30,17 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping(value = "/user") -public class UserController implements RemoteUserService { +public class UserController { - @Autowired + @Resource ISysUserService sysUserService; - @Autowired + @Resource ISysRoleService sysRoleService; - @Autowired + @Resource ISysPostService sysPostService; - @Autowired + @Resource ISysPermissionService permissionService; - @Autowired - ISysUserDataService userDataService; - @Autowired + @Resource TokenService tokenService; /** @@ -67,7 +60,7 @@ public class UserController implements RemoteUserService { */ @GetMapping("info") public AjaxResult getInfo() { - Integer userId = SecurityUtils.getUserId(); + Long userId = SecurityUtils.getUserId(); SysUser sysUser = sysUserService.selectUserById(userId); // 角色集合 Set roles = permissionService.getRolePermission(sysUser); @@ -89,26 +82,31 @@ public class UserController implements RemoteUserService { { String username = SecurityUtils.getUsername(); SysUser user = sysUserService.selectUserByUserName(username); + user.setPassword(null); + user.setSalt(null); return AjaxResult.success(user) - .add("roleGroup", sysUserService.selectUserRoleGroup(username)); + .add("roleGroup", sysUserService.selectUserRoleGroup(username)) + .add("postGroup", sysUserService.selectUserPostGroup(username)); } /** * 修改用户 */ - @SysLog("修改信息登录名称") + @SysLog(value = "信息登录名称", businessType = BusinessType.UPDATE) @PutMapping("/profile") public AjaxResult updateProfile(@RequestBody SysUser user) { - LoginUser loginUser = SecurityUtils.getLoginUser(); + LoginUser loginUser = SecurityUtils.getLoginUser(); String username = user.getUsername(); if (!sysUserService.checkUsername(username)){ SysUser sysUser = loginUser.getSysUser(); user.setUserId(sysUser.getUserId()); user.setUsername(username); + user.setEmail(user.getEmail()); + user.setPhone(user.getPhone()); + user.setGender(user.getGender()); user.setPassword(null); user.setDeptId(null); - if (sysUserService.updateUserProfile(user)) { // 更新缓存用户信息 @@ -124,7 +122,7 @@ public class UserController implements RemoteUserService { */ @RequiresPermissions("system:user:query") @GetMapping(value = {"/", "/{userId}"}) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Integer userId) { + public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { sysUserService.checkUserDataScope(new SysUser(userId)); AjaxResult ajax = AjaxResult.success(); List roles = sysRoleService.selectRoleAll(new SysRole()); @@ -146,7 +144,7 @@ public class UserController implements RemoteUserService { return ajax; } - @SysLog("保存用户") + @SysLog(value = "用户", businessType = BusinessType.INSERT) @PostMapping("/save") @RequiresPermissions(value = "system:user:save") public AjaxResult save(@RequestBody SysUser user) { @@ -162,7 +160,7 @@ public class UserController implements RemoteUserService { /** * 修改用户 */ - @SysLog("修改用户") + @SysLog(value = "用户", businessType = BusinessType.UPDATE) @PostMapping("/update") @RequiresPermissions("system:user:update") public AjaxResult update(@RequestBody SysUser user) { @@ -179,10 +177,10 @@ public class UserController implements RemoteUserService { /** * 删除用户 */ - @SysLog("删除用户") + @SysLog(value = "用户", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") @RequiresPermissions("system:user:delete") - public AjaxResult delete(@PathVariable Integer[] userIds) { + public AjaxResult delete(@PathVariable Long[] userIds) { if (ArrayUtils.contains(userIds, 1)) { return AjaxResult.error("系统管理员不能删除"); } @@ -200,13 +198,13 @@ public class UserController implements RemoteUserService { * 修改自己的 */ @RequiresPermissions("system:user:updatePwd") - @SysLog("修改密码") + @SysLog(value = "密码", businessType = BusinessType.DELETE) @PutMapping("/updatePwd") public AjaxResult updatePwd(@RequestBody @Valid PasswordForm form) { - LoginUser loginUser = SecurityUtils.getLoginUser(); + // 这里没有密码 + LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser sysUser = loginUser.getSysUser(); - if (!SecurityUtils.matchesPassword(form.getOldPassword(), sysUser.getSalt(), sysUser.getPassword())){ throw new ResultException("原密码不正确"); } @@ -228,10 +226,10 @@ public class UserController implements RemoteUserService { * 重置密码 别人的 */ @RequiresPermissions("system:user:resetPwd") - @SysLog("重置密码") + @SysLog(value = "重置密码", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd/{userId}") public AjaxResult resetPwd(@RequestBody @Valid PasswordForm form, - @PathVariable Integer userId) + @PathVariable Long userId) { // 不允许操作超级管理账号 sysUserService.checkUserAllowed(new SysUser(userId)); @@ -243,11 +241,23 @@ public class UserController implements RemoteUserService { return AjaxResult.success(); } + @RequiresPermissions("system:user:edit") + @SysLog(value = "头像", businessType = BusinessType.UPDATE) + @PostMapping(value = "/avatar") + public AjaxResult updateAvatar(@RequestBody SysUser user){ + Long userId = SecurityUtils.getUserId(); + sysUserService.update(new SysUser() + .setUserId(userId) + .setAvatar(user.getAvatar()) + ); + return AjaxResult.success(); + } + /** * 状态修改 */ @RequiresPermissions("system:user:changeStatus") - @SysLog("修改用户状态") + @SysLog(value = "用户状态", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysUser user) { @@ -263,7 +273,7 @@ public class UserController implements RemoteUserService { */ @RequiresPermissions("system:user:query") @GetMapping("/authRole/{userId}") - public AjaxResult authRole(@PathVariable Integer userId) + public AjaxResult authRole(@PathVariable Long userId) { AjaxResult ajax = AjaxResult.success(); SysUser user = sysUserService.selectUserById(userId); @@ -280,50 +290,15 @@ public class UserController implements RemoteUserService { * 用户授权角色 */ @RequiresPermissions("system:user:auth") - @SysLog("用户授权") + @SysLog(value = "用户", businessType = BusinessType.GRANT) @PutMapping("/authRole") - public AjaxResult insertAuthRole(Integer userId, Integer[] roleIds) + public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { sysUserService.checkUserDataScope(new SysUser(userId)); sysUserService.insertUserAuth(userId, roleIds); return AjaxResult.success(); } - @InnerAuth - @GetMapping("/info/{username}") - public Result> getUserInfo(@PathVariable("username") String username, String source) - { - SysUser sysUser = sysUserService.selectUserByUserName(username); - if (StringUtils.isNull(sysUser)) { - return Result.failed("用户名或密码错误"); - } - - // 角色集合 - Set roles = permissionService.getRolePermission(sysUser); - // 权限集合 - Set permissions = permissionService.getMenuPermission(sysUser); - - LoginUser sysUserVo = new LoginUser<>(); - sysUserVo.setUserId(sysUser.getUserId()); - sysUserVo.setUsername(sysUser.getUsername()); - sysUserVo.setSysUser(sysUser); - sysUserVo.setRoles(roles); - sysUserVo.setPermissions(permissions); - // todo 用户拥有的数据权限 - List userDataList = userDataService.listUserData(sysUser); - // 默认传递一个空Map --> 拥有管理员 - sysUserVo.setAuthDataMap(new HashMap<>()); -// if (CollectionUtil.isNotEmpty(userDataList)){ -// Map> authDataMap = new HashMap<>(); -// // 对应的数据权限 -// for (SysUserData sysUserData : userDataList) { -// authDataMap.put(sysUserData.getDataType().getCodeType(), -// new HashSet<>(JSONUtil.toList(sysUserData.getDataValue(), String.class))); -// } -// sysUserVo.setAuthDataMap(authDataMap); -// } - return Result.ok(sysUserVo); - } /** * todo 导入用户 diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysDeptMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysDeptMapper.java index 9924325..ef5d5fc 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysDeptMapper.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysDeptMapper.java @@ -19,7 +19,7 @@ public interface SysDeptMapper extends BaseMapper { List selectDeptList(ListDeptDTO listDept); - List selectDeptListByRoleId(@Param("roleId") Integer roleId, + List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); void updateDeptChildren(@Param("depts") List depts); diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysMenuMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysMenuMapper.java index 1abd753..605add7 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysMenuMapper.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysMenuMapper.java @@ -18,19 +18,19 @@ import java.util.Set; * @since 2022-08-18 */ public interface SysMenuMapper extends BaseMapper { - Set selectMenuPermsByUserId(Integer userId); + Set selectMenuPermsByUserId(Long userId); List selectMenuList(ListMenuDTO menu); List selectMenuListByUserId(ListMenuDTO menu); - List selectMenuListByRoleId(@Param("roleId") Integer roleId, + List selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); List selectMenuTreeAll(); - List selectMenuTreeByUserId(Integer userId); + List selectMenuTreeByUserId(Long userId); - Set selectMenuPermsByRoleId(@Param("roleId") Integer roleId); + Set selectMenuPermsByRoleId(@Param("roleId") Long roleId); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java index f97022a..79c5ec4 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java @@ -14,5 +14,9 @@ import java.util.List; public interface SysPostMapper extends BaseMapper { @Select("select p.post_id from sys_post p left join sys_user_post up on up.post_id = p.post_id " + "left join sys_user u on u.user_id = up.user_id where u.user_id = #{userId}") - List selectPostListByUserId(@Param("userId") Integer userId); + List selectPostListByUserId(@Param("userId") Long userId); + + @Select("select p.post_id, p.post_name, p.post_code from sys_post p left join sys_user_post up on up.post_id = p.post_id " + + "left join sys_user u on u.user_id = up.user_id where u.username = #{username}") + List selectPostsByUserName(String username); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysRoleMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysRoleMapper.java index fd0b171..9f6241d 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysRoleMapper.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysRoleMapper.java @@ -24,7 +24,7 @@ public interface SysRoleMapper extends BaseMapper { List listRole(@Param("listRole") ListRoleDTO listRole, Page page); - SysRole selectRoleById(Integer roleId); + SysRole selectRoleById(Long roleId); Set selectRoleByUsername(String username); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantMapper.java new file mode 100644 index 0000000..2fa7965 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantMapper.java @@ -0,0 +1,10 @@ +package com.chushang.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.system.entity.po.SysTenant; + +/** + * 租户 + */ +public interface SysTenantMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantPackageMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantPackageMapper.java new file mode 100644 index 0000000..a64f089 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysTenantPackageMapper.java @@ -0,0 +1,10 @@ +package com.chushang.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.system.entity.po.SysTenantPackage; + +/** + * 租户套餐 + */ +public interface SysTenantPackageMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserDataMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserDataMapper.java deleted file mode 100644 index 98df416..0000000 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserDataMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.chushang.system.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.chushang.system.entity.po.SysUserData; - -/** - * @author by zhaowenyuan create 2022/9/14 10:24 - */ -public interface SysUserDataMapper extends BaseMapper { -} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserMapper.java index 09bc0f5..8d0a745 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserMapper.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysUserMapper.java @@ -20,7 +20,7 @@ public interface SysUserMapper extends BaseMapper { SysUser selectUserByUserName(String username); - SysUser selectUserById(Integer userId); + SysUser selectUserById(Long userId); List selectUserList(SysUser user); diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java new file mode 100644 index 0000000..9c5ba08 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java @@ -0,0 +1,24 @@ +package com.chushang.system.remote; + +import com.chushang.datascope.entity.DataScopeEntity; +import com.chushang.system.feign.RemoteDataScopeService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping(value = "/data/scope") +public class RemoteDataScopeController implements RemoteDataScopeService { + /** + * 获取对应的部门数据 + */ + @Override + @GetMapping(value ="/dept/list") + public List listDeptIds(@RequestParam(value = "dataScope") DataScopeEntity dataScope, String source) + { + return null; + } +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java new file mode 100644 index 0000000..090eff5 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java @@ -0,0 +1,32 @@ +package com.chushang.system.remote; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.core.web.Result; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.common.mybatis.page.CommonParam; +import com.chushang.security.annotation.InnerAuth; +import com.chushang.security.annotation.RequiresPermissions; +import com.chushang.system.entity.po.SysLoginInfo; +import com.chushang.system.feign.RemoteLoginInfoService; +import com.chushang.system.service.SysLoginInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; + +@RestController +@RequestMapping(value = "/log/login/info") +public class RemoteLoginInfoController implements RemoteLoginInfoService { + + @Autowired + private SysLoginInfoService sysLoginInfoService; + + @Override + @InnerAuth + @PostMapping + public Result saveLoginInfo(@RequestBody SysLoginInfo sysLogininfo, String source) { + return Result.ok(sysLoginInfoService.saveLoginInfo(sysLogininfo).isSuccess()); + } +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java new file mode 100644 index 0000000..9a656d9 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java @@ -0,0 +1,73 @@ +package com.chushang.system.remote; + +import com.chushang.common.core.util.StringUtils; +import com.chushang.common.core.web.Result; +import com.chushang.datascope.entity.DataScopeEntity; +import com.chushang.security.annotation.InnerAuth; +import com.chushang.security.entity.vo.LoginUser; +import com.chushang.system.entity.po.SysUser; +import com.chushang.system.feign.RemoteUserService; +import com.chushang.system.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +@RestController +@RequestMapping(value = "/user") +public class RemoteUserController implements RemoteUserService { + + @Autowired + ISysUserService sysUserService; + @Autowired + ISysRoleService sysRoleService; + @Autowired + ISysPostService sysPostService; + @Autowired + ISysPermissionService permissionService; + + @InnerAuth + @GetMapping("/info/{username}") + public Result> getUserInfo(@PathVariable("username") String username, String source) + { + SysUser sysUser = sysUserService.selectUserByUserName(username); + if (StringUtils.isNull(sysUser)) { + return Result.failed("用户名或密码错误"); + } + + // 角色集合 + Set roles = permissionService.getRolePermission(sysUser); + // 权限集合 + Set permissions = permissionService.getMenuPermission(sysUser); + // 数据权限集合 + List dataScopes = permissionService.getDataScopes(sysUser); + + LoginUser sysUserVo = new LoginUser<>(); + sysUserVo.setUserId(sysUser.getUserId()); + sysUserVo.setUsername(sysUser.getUsername()); + sysUserVo.setSysUser(sysUser); + sysUserVo.setRoles(roles); + sysUserVo.setScopes(dataScopes); + sysUserVo.setPermissions(permissions); + // todo 用户拥有的数据权限 +// List userDataList = userDataService.listUserData(sysUser); + // 默认传递一个空Map --> 拥有管理员 + sysUserVo.setAuthDataMap(new HashMap<>()); +// if (CollectionUtil.isNotEmpty(userDataList)){ +// Map> authDataMap = new HashMap<>(); +// // 对应的数据权限 +// for (SysUserData sysUserData : userDataList) { +// authDataMap.put(sysUserData.getDataType().getCodeType(), +// new HashSet<>(JSONUtil.toList(sysUserData.getDataValue(), String.class))); +// } +// sysUserVo.setAuthDataMap(authDataMap); +// } + return Result.ok(sysUserVo); + } + +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysDeptService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysDeptService.java index bdd4c35..d048fa7 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysDeptService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysDeptService.java @@ -24,16 +24,16 @@ public interface ISysDeptService extends IService { List selectDeptList(ListDeptDTO listDept); - void checkDeptDataScope(Integer deptId); + void checkDeptDataScope(Long deptId); List buildDeptTreeSelect(List deptList); List buildDeptTree(List deptList); - List selectDeptListByRoleId(Integer roleId); + List selectDeptListByRoleId(Long roleId); default boolean checkDeptNameUnique(SysDept dept){ - int deptId = StringUtils.isNull(dept.getDeptId()) ? -1 : dept.getDeptId(); + long deptId = StringUtils.isNull(dept.getDeptId()) ? -1 : dept.getDeptId(); SysDept info = getOne(new LambdaQueryWrapper() .eq(SysDept::getDeptName, dept.getDeptName()) .eq(SysDept::getParentId, dept.getParentId()) @@ -41,19 +41,19 @@ public interface ISysDeptService extends IService { return StringUtils.isNotNull(info) && info.getDeptId() != deptId; } - default long selectNormalChildrenDeptById(Integer deptId){ + default long selectNormalChildrenDeptById(Long deptId){ return count(new LambdaQueryWrapper() .eq(SysDept::getStatus, Boolean.FALSE) .apply("find_in_set({0}, ancestors)", deptId)); } - default boolean hasChildByDeptId(Integer deptId){ + default boolean hasChildByDeptId(Long deptId){ return count(new LambdaQueryWrapper() .eq(SysDept::getParentId, deptId) ) > 0; } - boolean checkDeptExistUser(Integer deptId); + boolean checkDeptExistUser(Long deptId); default void add(SysDept dept){ SysDept info = getById(dept.getParentId()); @@ -101,19 +101,19 @@ public interface ISysDeptService extends IService { .in(SysDept::getDeptId, List.of(deptIds))); } - default void updateDeptChildren(Integer deptId, String newAncestors, String oldAncestors){ + default void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors){ List children = selectChildrenDeptById(deptId); for (SysDept child : children) { child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); } - if (children.size() > 0) + if (!children.isEmpty()) { updateDeptChildren(children); } } - default List selectChildrenDeptById(Integer deptId){ + default List selectChildrenDeptById(Long deptId){ return list(new LambdaQueryWrapper() .apply(" find_in_set({0}, ancestors)", deptId)); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysMenuService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysMenuService.java index 1e15c36..d223ba1 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysMenuService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysMenuService.java @@ -23,24 +23,24 @@ import java.util.Set; */ public interface ISysMenuService extends IService { - Set selectMenuPermsByUserId(Integer userId); + Set selectMenuPermsByUserId(Long userId); - List selectMenuList(ListMenuDTO menu, Integer userId); + List selectMenuList(ListMenuDTO menu, Long userId); - default List selectMenuList(Integer userId){ + default List selectMenuList(Long userId){ return selectMenuList(new ListMenuDTO(), userId); } - default SysMenu selectMenuById(Integer menuId){ + default SysMenu selectMenuById(Long menuId){ return getById(menuId); } List buildMenuTreeSelect(List menus); - List selectMenuListByRoleId(Integer roleId); + List selectMenuListByRoleId(Long roleId); default boolean checkMenuNameUnique(SysMenu menu){ - int menuId = StringUtils.isNull(menu.getMenuId()) ? -1 : menu.getMenuId(); + long menuId = StringUtils.isNull(menu.getMenuId()) ? -1 : menu.getMenuId(); SysMenu info = getOne(new LambdaQueryWrapper() .eq(SysMenu::getMenuName, menu.getMenuName()) .eq(SysMenu::getParentId, menu.getParentId()) @@ -48,16 +48,16 @@ public interface ISysMenuService extends IService { return StringUtils.isNotNull(info) && info.getMenuId() != menuId; } - default boolean hasChildByMenuId(Integer menuId){ + default boolean hasChildByMenuId(Long menuId){ return count(new LambdaQueryWrapper() .eq(SysMenu::getParentId, menuId)) > 0; } - boolean checkMenuExistRole(Integer menuId); + boolean checkMenuExistRole(Long menuId); List selectMenuTreeByUserId(SysUser sysUser); List buildMenus(List menus); - Set selectMenuPermsByRoleId(Integer roleId); + Set selectMenuPermsByRoleId(Long roleId); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPermissionService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPermissionService.java index 263ec76..c75334f 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPermissionService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPermissionService.java @@ -1,8 +1,13 @@ package com.chushang.system.service; +import com.chushang.datascope.entity.DataScopeEntity; +import com.chushang.system.entity.po.SysRole; import com.chushang.system.entity.po.SysUser; +import java.util.ArrayList; +import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * @author by zhaowenyuan create 2022/8/19 09:43 @@ -11,4 +16,22 @@ public interface ISysPermissionService { Set getRolePermission(SysUser sysUser); Set getMenuPermission(SysUser sysUser); + + default List getDataScopes(SysUser sysUser){ + List roles = sysUser.getRoles(); + return roles.stream().map(role -> { + String dataScope = role.getDataScope(); + Long roleId = role.getRoleId(); + Long deptId = sysUser.getDeptId(); + Long userId = sysUser.getUserId(); + Set permissions = role.getPermissions(); + return DataScopeEntity.builder() + .scope(dataScope) + .roleId(roleId) + .userId(userId) + .deptId(deptId) + .permissions(permissions) + .build(); + }).collect(Collectors.toList()); + } } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java index 30b0bd4..d8be9ce 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java @@ -8,18 +8,17 @@ import com.chushang.common.core.util.StringUtils; import com.chushang.common.mybatis.enums.Operator; import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.datascope.annotation.DataScope; import com.chushang.system.entity.po.SysPost; -import com.chushang.system.entity.po.SysRole; import java.util.List; -import static net.sf.jsqlparser.util.validation.metadata.NamedObject.role; - /** * @auther: zhao * @date: 2024/5/9 15:53 */ public interface ISysPostService extends IService { + @DataScope(deptAlias = "d") default PageResult pagePostList(SysPost sysPost, CommonParam commonParam){ IPage page = this.page( new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()), @@ -41,7 +40,7 @@ public interface ISysPostService extends IService { default boolean checkPostUnique(SysPost post){ - int postId = ObjectUtil.isNull(post.getPostId()) ? -1 : post.getPostId(); + long postId = ObjectUtil.isNull(post.getPostId()) ? -1 : post.getPostId(); SysPost info = getOne(new LambdaQueryWrapper() .eq(StringUtils.isNotEmpty(post.getPostName()),SysPost::getPostName, post.getPostName()) .eq(StringUtils.isNotEmpty(post.getPostCode()),SysPost::getPostCode, post.getPostCode()) @@ -49,5 +48,7 @@ public interface ISysPostService extends IService { return ObjectUtil.isNotNull(info) && info.getPostId() != postId; } - List selectPostListByUserId(Integer userId); + List selectPostListByUserId(Long userId); + + String selectUserPostGroup(String username); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleDeptService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleDeptService.java index 8e84757..e986392 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleDeptService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleDeptService.java @@ -19,13 +19,13 @@ import java.util.List; */ public interface ISysRoleDeptService extends IService { @Transactional - default void saveBatch(Integer roleId, Integer[] deptIds){ + default void saveBatch(Long roleId, Long[] deptIds){ remove(new LambdaQueryWrapper().eq(SysRoleDept::getRoleId, roleId)); // 新增角色与部门(数据权限)管理 List list = new ArrayList<>(); - for (Integer deptId : deptIds) + for (Long deptId : deptIds) { SysRoleDept rd = new SysRoleDept(); rd.setRoleId(roleId); @@ -38,13 +38,13 @@ public interface ISysRoleDeptService extends IService { } } @Transactional - default void deleteRoleDept(List roleIds){ + default void deleteRoleDept(List roleIds){ if (CollectionUtil.isNotEmpty(roleIds)){ roleIds.forEach(this::removeByRoleId); } } @Transactional - default void removeByRoleId(Integer roleId){ + default void removeByRoleId(Long roleId){ remove(new LambdaQueryWrapper().eq(SysRoleDept::getRoleId, roleId)); } } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleMenuService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleMenuService.java index 3b472c6..7fd8e5b 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleMenuService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleMenuService.java @@ -20,13 +20,13 @@ import java.util.List; */ public interface ISysRoleMenuService extends IService { @Transactional - default void saveBatch(Integer roleId, Integer[] menuIds){ + default void saveBatch(Long roleId, Long[] menuIds){ // 先删除 对应的角色菜单 remove(new LambdaQueryWrapper() .eq(SysRoleMenu::getRoleId, roleId)); if (null != menuIds && menuIds.length > 0){ List list = new ArrayList<>(); - for (Integer menuId : menuIds) { + for (Long menuId : menuIds) { SysRoleMenu rm = new SysRoleMenu(); rm.setRoleId(roleId); rm.setMenuId(menuId); @@ -36,17 +36,17 @@ public interface ISysRoleMenuService extends IService { } } @Transactional - default void deleteRoleMenu(Collection roleIds){ + default void deleteRoleMenu(Collection roleIds){ if (CollectionUtil.isNotEmpty(roleIds)){ roleIds.forEach(this::removeByRoleId); } } @Transactional - default void removeByRoleId(Integer roleId){ + default void removeByRoleId(Long roleId){ remove(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, roleId)); } - default boolean checkMenuExistRole(Integer menuId){ + default boolean checkMenuExistRole(Long menuId){ return count(new LambdaQueryWrapper() .eq(SysRoleMenu::getMenuId, menuId)) > 0; } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleService.java index 018b54e..8cb228b 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysRoleService.java @@ -32,10 +32,10 @@ public interface ISysRoleService extends IService { void checkRoleDataScope(SysRole role); - SysRole selectRoleById(Integer roleId); + SysRole selectRoleById(Long roleId); default boolean checkRoleNameUnique(SysRole role){ - int roleId = ObjectUtil.isNull(role.getRoleId()) ? -1 : role.getRoleId(); + long roleId = ObjectUtil.isNull(role.getRoleId()) ? -1 : role.getRoleId(); SysRole info = getOne(new LambdaQueryWrapper() .eq(SysRole::getRoleName, role.getRoleName()) .last(Operator.LIMIT_ONE.getCharacter())); @@ -43,7 +43,7 @@ public interface ISysRoleService extends IService { } default boolean checkRoleKeyUnique(SysRole role){ - int roleId = ObjectUtil.isNull(role.getRoleId()) ? -1 : role.getRoleId(); + long roleId = ObjectUtil.isNull(role.getRoleId()) ? -1 : role.getRoleId(); SysRole info = getOne(new LambdaQueryWrapper() .eq(SysRole::getRoleKey, role.getRoleKey()) .last(Operator.LIMIT_ONE.getCharacter())); @@ -53,7 +53,7 @@ public interface ISysRoleService extends IService { void saveRole(SysRole role); default void checkRoleAllowed(SysRole role){ - Integer roleId = role.getRoleId(); + Long roleId = role.getRoleId(); if (StringUtils.isNotNull(roleId) && role.isAdmin()) { throw new ResultException("不允许操作超级管理员角色"); @@ -68,11 +68,11 @@ public interface ISysRoleService extends IService { updateById(role); } - void deleteRoleByIds(Integer[] roleIds); + void deleteRoleByIds(Long[] roleIds); void deleteAuthUser(CancelUserRole cancelUserRole); - void insertAuthUsers(Integer roleId, Integer[] userIds); + void insertAuthUsers(Long roleId, Long[] userIds); String selectRolesByUserName(String username); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserDataService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserDataService.java deleted file mode 100644 index 3e29a2f..0000000 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserDataService.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.chushang.system.service; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.IService; -import com.chushang.system.entity.bo.DataAuth; -import com.chushang.system.entity.enums.AuthTypeEnum; -import com.chushang.system.entity.po.SysUser; -import com.chushang.system.entity.po.SysUserData; - -import java.util.List; - -/** - * @author by zhaowenyuan create 2022/9/14 10:24 - */ -public interface ISysUserDataService extends IService { - - default List listUserData(SysUser sysUser){ - return list(new LambdaQueryWrapper() - .eq(SysUserData::getUserId, sysUser.getUserId())); - } - - default void authData(DataAuth dataAuth){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(SysUserData::getUserId, dataAuth.getUserId()) - .eq(SysUserData::getDataType, dataAuth.getAuthType()); - long count = count(queryWrapper); - // 不存在就进行新增 - if (count <= 0 ){ - save(SysUserData.builder() - .userId(dataAuth.getUserId()) - .dataType(dataAuth.getAuthType()) - .dataValue(dataAuth.getAuthData()) - .build()); - } - // 存在就进行更新 - else { - update(SysUserData.builder() - .dataValue(dataAuth.getAuthData()) - .build(), queryWrapper); - } - } - - - default List getUserAuthData(Integer userId, Integer authType){ - SysUserData userData = getOne(new LambdaQueryWrapper() - .eq(SysUserData::getUserId, userId) - .eq(SysUserData::getDataType, authType)); - if (ObjectUtil.isNotEmpty(userData)){ - return JSONUtil.toList(userData.getDataValue(), Integer.class); - } - return List.of(); - } - - default void authData(List dataAuthList){ - dataAuthList.forEach(this::authData); - } - - void authData(Integer userId, Integer appId, AuthTypeEnum authType); -} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserRoleService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserRoleService.java index b8e3ead..f7295ff 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserRoleService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserRoleService.java @@ -20,7 +20,7 @@ import java.util.stream.Collectors; public interface ISysUserRoleService extends IService { @Transactional - default void saveOrUpdate(Integer userId, Integer[] roleIdList){ + default void saveOrUpdate(Long userId, Long[] roleIdList){ //先删除用户与角色关系 this.remove(new LambdaQueryWrapper() .eq(SysUserRole::getUserId, userId)); @@ -35,7 +35,7 @@ public interface ISysUserRoleService extends IService { }).collect(Collectors.toList())); } @Transactional - default void saveOrUpdate(Integer[] userIdList, Integer roleId){ + default void saveOrUpdate(Long[] userIdList, Long roleId){ //先删除用户与角色关系 this.remove(new LambdaQueryWrapper() .eq(SysUserRole::getRoleId, roleId)); @@ -55,7 +55,7 @@ public interface ISysUserRoleService extends IService { .eq(SysUserRole::getUserId, userId)); } - default long countUserRoleByRoleId(Integer roleId){ + default long countUserRoleByRoleId(Long roleId){ return count(new LambdaQueryWrapper() .eq(SysUserRole::getRoleId, roleId)); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java index 11105e7..a502959 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java @@ -23,7 +23,7 @@ public interface ISysUserService extends IService { SysUser selectUserByUserName(String username); - SysUser selectUserById(Integer userId); + SysUser selectUserById(Long userId); void checkUserDataScope(SysUser user); @@ -31,7 +31,7 @@ public interface ISysUserService extends IService { void update(SysUser user); - void deleteBatch(Integer[] userIds); + void deleteBatch(Long[] userIds); /** * 判断是否为超级管理员 账号 @@ -43,7 +43,7 @@ public interface ISysUserService extends IService { } } - default boolean updatePassword(Integer userId, String oldPassword, String newPassword){ + default boolean updatePassword(Long userId, String oldPassword, String newPassword){ return this.update(SysUser.builder() .password(newPassword) .updateBy(SecurityUtils.getUsername()) @@ -62,7 +62,7 @@ public interface ISysUserService extends IService { .eq(SysUser::getUserId, user.getUserId())); } - void insertUserAuth(Integer userId, Integer[] roleIds); + void insertUserAuth(Long userId, Long[] roleIds); AjaxResult selectAllocatedList(ListUserDTO listUser); @@ -79,12 +79,14 @@ public interface ISysUserService extends IService { String selectUserRoleGroup(String username); - default boolean checkDeptExistUser(Integer deptId){ + String selectUserPostGroup(String username); + + default boolean checkDeptExistUser(Long deptId){ return count(new LambdaQueryWrapper() .eq(SysUser::getDeptId, deptId)) > 0; } - void resetPwd(Integer userId, String newPassword); + void resetPwd(Long userId, String newPassword); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantPackageService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantPackageService.java new file mode 100644 index 0000000..c36f0c8 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantPackageService.java @@ -0,0 +1,7 @@ +package com.chushang.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.system.entity.po.SysTenantPackage; + +public interface SysTenantPackageService extends IService { +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantService.java new file mode 100644 index 0000000..2762419 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysTenantService.java @@ -0,0 +1,7 @@ +package com.chushang.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.system.entity.po.SysTenant; + +public interface SysTenantService extends IService { +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/ISysUserDataServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/ISysUserDataServiceImpl.java deleted file mode 100644 index d13edeb..0000000 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/ISysUserDataServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.chushang.system.service.impl; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.chushang.common.mybatis.enums.Operator; -import com.chushang.system.entity.enums.AuthTypeEnum; -import com.chushang.system.entity.po.SysUserData; -import com.chushang.system.mapper.SysUserDataMapper; -import com.chushang.system.service.ISysUserDataService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @author by zhaowenyuan create 2022/9/14 10:24 - */ -@Slf4j -@Service -public class ISysUserDataServiceImpl extends ServiceImpl implements ISysUserDataService { - - /** - * @param userId 当前登录用户 - * @param appId 待授权的应用 - */ - @Override - public void authData(Integer userId, Integer appId, AuthTypeEnum authType) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(SysUserData::getUserId, userId) - .eq(SysUserData::getDataType, authType); - // - SysUserData userData = getOne(queryWrapper - .last(Operator.LIMIT_ONE.getCharacter())); - // 不存在就进行新增 - if (ObjectUtil.isEmpty(userData)){ - save(SysUserData.builder() - .userId(userId) - .dataType(authType) - .dataValue(JSONUtil.toJsonStr(List.of(appId))) - .build()); - } - // 存在就进行更新 - else { - List appIds = - JSONUtil.toList(userData.getDataValue(), Integer.class); - appIds.add(appId); - update(SysUserData.builder() - .dataValue(JSONUtil.toJsonStr(appIds)) - .dataType(authType) - .build(), queryWrapper); - } - } -} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDeptServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDeptServiceImpl.java index 385861e..fb04001 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDeptServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDeptServiceImpl.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.util.StringUtils; -import com.chushang.system.annotation.DataScope; +import com.chushang.datascope.annotation.DataScope; import com.chushang.system.mapper.SysDeptMapper; import com.chushang.system.service.ISysUserService; import com.chushang.security.utils.SecurityUtils; @@ -47,7 +47,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl } @Override - public void checkDeptDataScope(Integer deptId) { + public void checkDeptDataScope(Long deptId) { if (!SecurityUtils.isAdmin()){ ListDeptDTO dept = new ListDeptDTO(); dept.setDeptId(deptId); @@ -70,8 +70,8 @@ public class SysDeptServiceImpl extends ServiceImpl impl { if (CollectionUtil.isNotEmpty(deptList)){ List returnList = new ArrayList<>(); - List tempList = - deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + List tempList = + deptList.stream().map(SysDept::getDeptId).toList(); for (SysDept dept : deptList) { // 如果是顶级节点, 遍历该父节点的所有子节点 @@ -91,13 +91,13 @@ public class SysDeptServiceImpl extends ServiceImpl impl } @Override - public List selectDeptListByRoleId(Integer roleId) { + public List selectDeptListByRoleId(Long roleId) { SysRole sysRole = roleService.selectRoleById(roleId); return baseMapper.selectDeptListByRoleId(roleId, sysRole.isDeptCheckStrictly()); } @Override - public boolean checkDeptExistUser(Integer deptId) { + public boolean checkDeptExistUser(Long deptId) { return userService.checkDeptExistUser(deptId); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java index 4eec104..b2a072b 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java @@ -43,7 +43,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl ISysRoleMenuService roleMenuService; @Override - public Set selectMenuPermsByUserId(Integer userId) { + public Set selectMenuPermsByUserId(Long userId) { Set perms = baseMapper.selectMenuPermsByUserId(userId); Set permsSet = new HashSet<>(); if (CollectionUtil.isNotEmpty(perms)){ @@ -54,7 +54,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public List selectMenuList(ListMenuDTO menu, Integer userId) { + public List selectMenuList(ListMenuDTO menu, Long userId) { List menuList; if (SecurityUtils.isAdmin()) { @@ -75,13 +75,13 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public List selectMenuListByRoleId(Integer roleId) { + public List selectMenuListByRoleId(Long roleId) { SysRole sysRole = roleService.selectRoleById(roleId); return baseMapper.selectMenuListByRoleId(roleId, sysRole.isMenuCheckStrictly()); } @Override - public boolean checkMenuExistRole(Integer menuId) { + public boolean checkMenuExistRole(Long menuId) { return roleMenuService.checkMenuExistRole(menuId); } @@ -153,7 +153,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public Set selectMenuPermsByRoleId(Integer roleId) { + public Set selectMenuPermsByRoleId(Long roleId) { return baseMapper.selectMenuPermsByRoleId(roleId); } @@ -295,7 +295,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl private List buildMenuTree(List menus) { List returnList = new ArrayList<>(); - List tempList = menus.stream().map(SysMenu::getMenuId).toList(); + List tempList = menus.stream().map(SysMenu::getMenuId).toList(); for (SysMenu menu : menus) { // 如果是顶级节点, 遍历该父节点的所有子节点 if (!tempList.contains(menu.getParentId())) { diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPermissionServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPermissionServiceImpl.java index 9f8aa20..9307f26 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPermissionServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPermissionServiceImpl.java @@ -1,6 +1,7 @@ package com.chushang.system.service.impl; import cn.hutool.core.collection.CollectionUtil; +import com.chushang.security.auth.AuthUtil; import com.chushang.system.entity.po.SysRole; import com.chushang.system.entity.po.SysUser; import com.chushang.system.service.ISysMenuService; @@ -28,16 +29,15 @@ public class SysPermissionServiceImpl implements ISysPermissionService { public Set getRolePermission(SysUser sysUser) { // // 包含的角色 List roleList = sysUser.getRoles(); -// if (sysUser.isAdmin()){ -// // 需要 判断下是否包含 特殊管理员 -// -// return Set.of(AuthUtil.SUPER_ADMIN); -// }else { + if (sysUser.isAdmin()){ + // 需要 判断下是否包含 特殊管理员 + return Set.of(AuthUtil.SUPER_ADMIN); + }else { Set roles = new HashSet<>(); roleList.stream().filter(Objects::nonNull) .forEach(r -> roles.addAll(Set.of(r.getRoleKey().trim().split(",")))); return roles; -// } + } } /** @@ -60,7 +60,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService { perms.addAll(rolePerms); } // 添加 roleIds - sysUser.setRoleIds(roles.stream().map(SysRole::getRoleId).toArray(Integer[]::new)); + sysUser.setRoleIds(roles.stream().map(SysRole::getRoleId).toArray(Long[]::new)); } else { diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java index 12a1f76..c337546 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java @@ -12,8 +12,10 @@ import com.chushang.system.service.ISysPostService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; +import java.util.stream.Collectors; /** * @auther: zhao @@ -34,7 +36,18 @@ public class SysPostServiceImpl extends ServiceImpl impl } @Override - public List selectPostListByUserId(Integer userId) { + public List selectPostListByUserId(Long userId) { return baseMapper.selectPostListByUserId(userId); } + + @Override + public String selectUserPostGroup(String username) { + List list = baseMapper.selectPostsByUserName(username); + if (CollectionUtils.isEmpty(list)) + { + return StringUtils.EMPTY; + } + return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); + } + } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysRoleServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysRoleServiceImpl.java index d6390c6..d87d88a 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysRoleServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysRoleServiceImpl.java @@ -7,8 +7,9 @@ import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.util.StringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.datascope.annotation.DataScope; +import com.chushang.datascope.entity.DataScopeEntity; import com.chushang.security.utils.SecurityUtils; -import com.chushang.system.annotation.DataScope; import com.chushang.system.mapper.SysRoleMapper; import com.chushang.system.service.ISysRoleMenuService; import com.chushang.system.entity.bo.CancelUserRole; @@ -98,16 +99,16 @@ public class SysRoleServiceImpl extends ServiceImpl impl } @Override - public SysRole selectRoleById(Integer roleId) { + public SysRole selectRoleById(Long roleId) { return baseMapper.selectRoleById(roleId); } @Override @Transactional public void saveRole(SysRole role) { - LoginUser loginUser = SecurityUtils.getLoginUser(); + LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser sysUser = loginUser.getSysUser(); - Integer deptId = sysUser.getDeptId(); + Long deptId = sysUser.getDeptId(); role.setDeptId(deptId); save(role); @@ -134,8 +135,8 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override @Transactional - public void deleteRoleByIds(Integer[] roleIds) { - for (Integer roleId : roleIds) { + public void deleteRoleByIds(Long[] roleIds) { + for (Long roleId : roleIds) { SysRole sysRole = new SysRole(roleId); if (2 == roleId){ continue; @@ -166,7 +167,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl } @Override - public void insertAuthUsers(Integer roleId, Integer[] userIds) { + public void insertAuthUsers(Long roleId, Long[] userIds) { userRoleService.saveOrUpdate(userIds, roleId); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantPackageServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantPackageServiceImpl.java new file mode 100644 index 0000000..13b0be5 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantPackageServiceImpl.java @@ -0,0 +1,13 @@ +package com.chushang.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.system.entity.po.SysTenantPackage; +import com.chushang.system.mapper.SysTenantPackageMapper; +import com.chushang.system.service.SysTenantPackageService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class SysTenantPackageServiceImpl extends ServiceImpl implements SysTenantPackageService { +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantServiceImpl.java new file mode 100644 index 0000000..2619be2 --- /dev/null +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysTenantServiceImpl.java @@ -0,0 +1,13 @@ +package com.chushang.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.system.entity.po.SysTenant; +import com.chushang.system.mapper.SysTenantMapper; +import com.chushang.system.service.SysTenantService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class SysTenantServiceImpl extends ServiceImpl implements SysTenantService { +} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java index 6c5f9bf..08f760b 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java @@ -8,17 +8,14 @@ import com.chushang.common.core.util.IdUtils; import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.datascope.annotation.DataScope; import com.chushang.security.service.TokenService; import com.chushang.security.utils.SecurityUtils; -import com.chushang.system.annotation.DataScope; import com.chushang.system.mapper.SysUserMapper; -import com.chushang.system.service.ISysUserService; +import com.chushang.system.service.*; import com.chushang.system.entity.dto.ListUserDTO; import com.chushang.system.entity.po.SysUser; import com.chushang.system.entity.po.SysUserRole; -import com.chushang.system.service.ISysMenuService; -import com.chushang.system.service.ISysRoleService; -import com.chushang.system.service.ISysUserRoleService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -49,6 +46,8 @@ public class SysUserServiceImpl extends ServiceImpl impl ISysUserRoleService userRoleService; @Autowired TokenService tokenService; + @Autowired + ISysPostService sysPostService; @Override @DataScope(deptAlias = "d", userAlias = "u") @@ -70,7 +69,7 @@ public class SysUserServiceImpl extends ServiceImpl impl } @Override - public SysUser selectUserById(Integer userId) { + public SysUser selectUserById(Long userId) { SysUser sysUser = baseMapper.selectUserById(userId); if (ObjectUtil.isNotEmpty(sysUser)){ sysUser.setSalt(""); @@ -127,9 +126,9 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @Transactional - public void deleteBatch(Integer[] userIds) { + public void deleteBatch(Long[] userIds) { - for (Integer userId : userIds) + for (Long userId : userIds) { SysUser sysUser = SysUser.builder().userId(userId).build(); SpringUtils.getAopProxy(this).checkUserAllowed(sysUser); @@ -147,7 +146,7 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @Transactional - public void insertUserAuth(Integer userId, Integer[] roleIds) { + public void insertUserAuth(Long userId, Long[] roleIds) { userRoleService.saveOrUpdate(userId, roleIds); } @@ -184,8 +183,20 @@ public class SysUserServiceImpl extends ServiceImpl impl return sysRoleService.selectRolesByUserName(username); } + /** + * 查询用户所属岗位组 + * + * @param username 用户名 + * @return 结果 + */ @Override - public void resetPwd(Integer userId, String newPassword) { + public String selectUserPostGroup(String username) + { + return sysPostService.selectUserPostGroup(username); + } + + @Override + public void resetPwd(Long userId, String newPassword) { SysUser user = getOne(new LambdaQueryWrapper() .eq(SysUser::getUserId, userId)); if (ObjectUtil.isEmpty(user)){ diff --git a/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml b/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml index bcc09a7..d5039ce 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml +++ b/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml @@ -90,3 +90,4 @@ logging: pagehelper: async-count: banner: false + diff --git a/chushang-modules/chushang-module-system/system-service/src/main/resources/logback-nacos.xml b/chushang-modules/chushang-module-system/system-service/src/main/resources/logback-nacos.xml index 977c569..926c0b6 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/resources/logback-nacos.xml +++ b/chushang-modules/chushang-module-system/system-service/src/main/resources/logback-nacos.xml @@ -100,7 +100,7 @@ - + diff --git a/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysDeptMapper.xml b/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysDeptMapper.xml index 6becad1..30de963 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysDeptMapper.xml +++ b/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysDeptMapper.xml @@ -23,23 +23,23 @@ where d.del_state = FALSE - AND dept_id = #{deptId} + AND d.dept_id = #{deptId} - AND parent_dept_id = #{parentId} + AND d.parent_dept_id = #{parentId} - AND dept_name like concat('%', #{deptName}, '%') + AND d.dept_name like concat('%', #{deptName}, '%') - AND status = #{status} + AND d.status = #{status} ${sqlParam.dataScope} order by d.parent_dept_id, d.order_num - select d.dept_id from sys_dept d left join sys_role_dept rd on d.dept_id = rd.dept_id diff --git a/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysMenuMapper.xml b/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysMenuMapper.xml index de15737..5474626 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysMenuMapper.xml +++ b/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysMenuMapper.xml @@ -106,7 +106,7 @@ order by m.parent_id, m.order_num - select m.menu_id from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id @@ -121,7 +121,7 @@