فهرست منبع

修改:<去掉多租户模式>

张旭锋 5 روز پیش
والد
کامیت
6b2818f64b
31فایلهای تغییر یافته به همراه186 افزوده شده و 242 حذف شده
  1. 6 17
      src/main/java/cc/uncarbon/config/CustomInterceptorConfiguration.java
  2. 2 2
      src/main/java/cc/uncarbon/helper/CaptchaHelper.java
  3. 5 5
      src/main/java/cc/uncarbon/interceptor/AdminSaTokenParseInterceptor.java
  4. 2 2
      src/main/java/cc/uncarbon/interceptor/DefaultSaTokenParseInterceptor.java
  5. 1 1
      src/main/java/cc/uncarbon/module/api/constant/AdminApiConstant.java
  6. 1 1
      src/main/java/cc/uncarbon/module/api/enums/AdminApiErrorEnum.java
  7. 1 1
      src/main/java/cc/uncarbon/module/api/event/KickOutSysUsersEvent.java
  8. 4 4
      src/main/java/cc/uncarbon/module/api/listener/AdminApiEventListener.java
  9. 1 1
      src/main/java/cc/uncarbon/module/api/model/interior/AdminCaptchaContainer.java
  10. 2 2
      src/main/java/cc/uncarbon/module/api/model/response/AdminCaptchaVO.java
  11. 1 1
      src/main/java/cc/uncarbon/module/api/model/response/AdminSelectOptionItemVO.java
  12. 11 13
      src/main/java/cc/uncarbon/module/api/util/CrmAdminStpUtil.java
  13. 11 13
      src/main/java/cc/uncarbon/module/api/web/auth/AdminAuthController.java
  14. 5 5
      src/main/java/cc/uncarbon/module/api/web/common/AdminSelectOptionsController.java
  15. 7 7
      src/main/java/cc/uncarbon/module/api/web/oss/AdminOssFileInfoController.java
  16. 5 5
      src/main/java/cc/uncarbon/module/api/web/oss/AdminOssUploadDownloadController.java
  17. 5 5
      src/main/java/cc/uncarbon/module/api/web/sys/AdminCurrentSysUserController.java
  18. 12 12
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysDataDictController.java
  19. 9 9
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysDeptController.java
  20. 6 6
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysLogController.java
  21. 9 9
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysMenuController.java
  22. 9 9
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysParamController.java
  23. 10 10
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysRoleController.java
  24. 10 10
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysTenantController.java
  25. 15 15
      src/main/java/cc/uncarbon/module/api/web/sys/AdminSysUserController.java
  26. 0 16
      src/main/java/cc/uncarbon/module/appapi/constant/AppApiConstant.java
  27. 0 34
      src/main/java/cc/uncarbon/module/appapi/web/AppAuthController.java
  28. 12 27
      src/main/java/cc/uncarbon/module/sys/service/SysUserService.java
  29. 6 0
      src/main/resources/application-dev.yml
  30. 12 0
      src/main/resources/application-prod.yml
  31. 6 0
      src/main/resources/application-test.yml

+ 6 - 17
src/main/java/cc/uncarbon/config/CustomInterceptorConfiguration.java

@@ -3,8 +3,7 @@ package cc.uncarbon.config;
 import cc.uncarbon.framework.core.props.HelioProperties;
 import cc.uncarbon.interceptor.AdminSaTokenParseInterceptor;
 import cc.uncarbon.interceptor.DefaultSaTokenParseInterceptor;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.appapi.constant.AppApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cn.dev33.satoken.interceptor.SaInterceptor;
 import cn.dev33.satoken.stp.StpUtil;
 import lombok.RequiredArgsConstructor;
@@ -33,30 +32,20 @@ public class CustomInterceptorConfiguration implements WebMvcConfigurer {
         registry
                 .addInterceptor(new DefaultSaTokenParseInterceptor())
                 // @since 1.7.3 fix: 访问除 /app/** 以外的路由时,不会清除复用线程中残留的用户态
-                .addPathPatterns("/**");
+                .addPathPatterns("/**")
+                .excludePathPatterns(helioProperties.getSecurity().getExcludeRoutes());
 
         registry
                 .addInterceptor(new AdminSaTokenParseInterceptor())
-                .addPathPatterns(AdminApiConstant.HTTP_API_URL_PREFIX + "/**");
+                .addPathPatterns(AdminApiConstant.HTTP_API_URL_PREFIX + "/**")
+                .excludePathPatterns(helioProperties.getSecurity().getExcludeRoutes());
 
         /*
         2. 注解拦截器,启用注解功能
          */
         registry
                 .addInterceptor(new SaInterceptor())
-                .addPathPatterns("/**");
-
-        /*
-        3. /app/** 路由拦截器, 使几乎所有接口都需要登录
-        放行接口请在配置文件的 helio.security.exclude-routes 中设置
-
-        @see https://sa-token.cc/doc.html#/use/route-check
-         */
-        registry
-                .addInterceptor(new SaInterceptor(
-                        handler -> StpUtil.checkLogin()
-                ))
-                .addPathPatterns(AppApiConstant.HTTP_API_URL_PREFIX + "/**")
+                .addPathPatterns("/**")
                 .excludePathPatterns(helioProperties.getSecurity().getExcludeRoutes());
     }
 }

+ 2 - 2
src/main/java/cc/uncarbon/helper/CaptchaHelper.java

@@ -1,8 +1,8 @@
 package cc.uncarbon.helper;
 
 import cc.uncarbon.framework.core.exception.BusinessException;
-import cc.uncarbon.module.adminapi.enums.AdminApiErrorEnum;
-import cc.uncarbon.module.adminapi.model.interior.AdminCaptchaContainer;
+import cc.uncarbon.module.api.enums.AdminApiErrorEnum;
+import cc.uncarbon.module.api.model.interior.AdminCaptchaContainer;
 import cn.hutool.captcha.CaptchaUtil;
 import cn.hutool.captcha.ShearCaptcha;
 import cn.hutool.core.date.LocalDateTimeUtil;

+ 5 - 5
src/main/java/cc/uncarbon/interceptor/AdminSaTokenParseInterceptor.java

@@ -5,7 +5,7 @@ import cc.uncarbon.framework.core.context.TenantContextHolder;
 import cc.uncarbon.framework.core.context.UserContext;
 import cc.uncarbon.framework.core.context.UserContextHolder;
 import cc.uncarbon.framework.web.util.IPUtil;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.session.SaSession;
 import lombok.NonNull;
 import lombok.extern.slf4j.Slf4j;
@@ -33,8 +33,8 @@ public class AdminSaTokenParseInterceptor implements AsyncHandlerInterceptor {
         }
 
         // SA-Token 会自动从请求头中解析 token,所以这里可以直接拿到对应 session,从而取出业务字段
-        if (AdminStpUtil.isLogin()) {
-            setContextsFromSaSession(AdminStpUtil.getSession(), request);
+        if (CrmAdminStpUtil.isLogin()) {
+            setContextsFromSaSession(CrmAdminStpUtil.getSession(), request);
             if (log.isDebugEnabled()) {
                 log.debug("[SA-Token][Admin] 从请求头解析出用户上下文 >> {}", UserContextHolder.getUserContext());
             }
@@ -62,8 +62,8 @@ public class AdminSaTokenParseInterceptor implements AsyncHandlerInterceptor {
         UserContextHolder.setUserContext(userContext);
 
         // 赋值租户上下文
-        TenantContext tenantContext = (TenantContext) session.get(TenantContext.CAMEL_NAME);
-        TenantContextHolder.setTenantContext(tenantContext);
+//        TenantContext tenantContext = (TenantContext) session.get(TenantContext.CAMEL_NAME);
+//        TenantContextHolder.setTenantContext(tenantContext);
     }
 
 }

+ 2 - 2
src/main/java/cc/uncarbon/interceptor/DefaultSaTokenParseInterceptor.java

@@ -59,7 +59,7 @@ public class DefaultSaTokenParseInterceptor implements AsyncHandlerInterceptor {
         UserContextHolder.setUserContext(userContext);
 
         // 赋值租户上下文
-        TenantContext tenantContext = (TenantContext) session.get(TenantContext.CAMEL_NAME);
-        TenantContextHolder.setTenantContext(tenantContext);
+//        TenantContext tenantContext = (TenantContext) session.get(TenantContext.CAMEL_NAME);
+//        TenantContextHolder.setTenantContext(tenantContext);
     }
 }

+ 1 - 1
src/main/java/cc/uncarbon/module/adminapi/constant/AdminApiConstant.java → src/main/java/cc/uncarbon/module/api/constant/AdminApiConstant.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.constant;
+package cc.uncarbon.module.api.constant;
 
 
 /**

+ 1 - 1
src/main/java/cc/uncarbon/module/adminapi/enums/AdminApiErrorEnum.java → src/main/java/cc/uncarbon/module/api/enums/AdminApiErrorEnum.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.enums;
+package cc.uncarbon.module.api.enums;
 
 import cc.uncarbon.framework.core.enums.HelioBaseEnum;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/cc/uncarbon/module/adminapi/event/KickOutSysUsersEvent.java → src/main/java/cc/uncarbon/module/api/event/KickOutSysUsersEvent.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.event;
+package cc.uncarbon.module.api.event;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;

+ 4 - 4
src/main/java/cc/uncarbon/module/adminapi/listener/AdminApiEventListener.java → src/main/java/cc/uncarbon/module/api/listener/AdminApiEventListener.java

@@ -1,7 +1,7 @@
-package cc.uncarbon.module.adminapi.listener;
+package cc.uncarbon.module.api.listener;
 
-import cc.uncarbon.module.adminapi.event.KickOutSysUsersEvent;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.event.KickOutSysUsersEvent;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.hutool.core.collection.CollUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.event.EventListener;
@@ -25,7 +25,7 @@ public class AdminApiEventListener {
         Collection<Long> sysUserIds = event.getData().getSysUserIds();
         if (CollUtil.isNotEmpty(sysUserIds)) {
             // 异步强制登出;同一时间大量登出,会操作大量Redis键,可能存在缓存雪崩的风险
-            taskExecutor.submit(() -> sysUserIds.forEach(AdminStpUtil::kickout));
+            taskExecutor.submit(() -> sysUserIds.forEach(CrmAdminStpUtil::kickout));
         }
     }
 }

+ 1 - 1
src/main/java/cc/uncarbon/module/adminapi/model/interior/AdminCaptchaContainer.java → src/main/java/cc/uncarbon/module/api/model/interior/AdminCaptchaContainer.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.model.interior;
+package cc.uncarbon.module.api.model.interior;
 
 import cn.hutool.captcha.AbstractCaptcha;
 

+ 2 - 2
src/main/java/cc/uncarbon/module/adminapi/model/response/AdminCaptchaVO.java → src/main/java/cc/uncarbon/module/api/model/response/AdminCaptchaVO.java

@@ -1,6 +1,6 @@
-package cc.uncarbon.module.adminapi.model.response;
+package cc.uncarbon.module.api.model.response;
 
-import cc.uncarbon.module.adminapi.model.interior.AdminCaptchaContainer;
+import cc.uncarbon.module.api.model.interior.AdminCaptchaContainer;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 

+ 1 - 1
src/main/java/cc/uncarbon/module/adminapi/model/response/AdminSelectOptionItemVO.java → src/main/java/cc/uncarbon/module/api/model/response/AdminSelectOptionItemVO.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.model.response;
+package cc.uncarbon.module.api.model.response;
 
 import cc.uncarbon.framework.core.enums.HelioBaseEnum;
 import cn.hutool.core.collection.CollUtil;

+ 11 - 13
src/main/java/cc/uncarbon/module/adminapi/util/AdminStpUtil.java → src/main/java/cc/uncarbon/module/api/util/CrmAdminStpUtil.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.util;
+package cc.uncarbon.module.api.util;
 
 import cn.dev33.satoken.SaManager;
 import cn.dev33.satoken.fun.SaFunction;
@@ -10,6 +10,7 @@ import cn.dev33.satoken.stp.SaTokenInfo;
 import cn.dev33.satoken.stp.StpLogic;
 import cn.dev33.satoken.stp.parameter.SaLoginParameter;
 import cn.dev33.satoken.stp.parameter.SaLogoutParameter;
+import lombok.Getter;
 
 import java.util.List;
 
@@ -20,19 +21,25 @@ import java.util.List;
  * @author Uncarbon
  * @see cn.dev33.satoken.stp.StpUtil
  */
-public final class AdminStpUtil {
+public final class CrmAdminStpUtil {
 
-    private AdminStpUtil() {
+    private CrmAdminStpUtil() {
     }
 
     /**
      * 多账号体系下的类型标识
      */
-    public static final String TYPE = "AdminStpUtil";
+    public static final String TYPE = "CrmAdminStpUtil";
 
     /**
      * 底层使用的 StpLogic 对象
+     * -- GETTER --
+     *  获取 StpLogic 对象
+     *
+     * @return /
+
      */
+    @Getter
     public static StpLogic stpLogic = new StpLogic(TYPE);
 
     /**
@@ -65,15 +72,6 @@ public final class AdminStpUtil {
         SaTokenEventCenter.doSetStpLogic(stpLogic);
     }
 
-    /**
-     * 获取 StpLogic 对象
-     *
-     * @return /
-     */
-    public static StpLogic getStpLogic() {
-        return stpLogic;
-    }
-
 
     // ------------------- 获取 token 相关 -------------------
 

+ 11 - 13
src/main/java/cc/uncarbon/module/adminapi/web/auth/AdminAuthController.java → src/main/java/cc/uncarbon/module/api/web/auth/AdminAuthController.java

@@ -1,18 +1,17 @@
-package cc.uncarbon.module.adminapi.web.auth;
+package cc.uncarbon.module.api.web.auth;
 
 
 import cc.uncarbon.aspect.extension.SysLogAspectExtensionForSysUserLogin;
-import cc.uncarbon.framework.core.context.TenantContext;
 import cc.uncarbon.framework.core.context.TenantContextHolder;
 import cc.uncarbon.framework.core.context.UserContext;
 import cc.uncarbon.framework.core.context.UserContextHolder;
 import cc.uncarbon.framework.web.model.response.ApiResult;
 import cc.uncarbon.helper.CaptchaHelper;
 import cc.uncarbon.helper.RolePermissionCacheHelper;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.model.interior.AdminCaptchaContainer;
-import cc.uncarbon.module.adminapi.model.response.AdminCaptchaVO;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.model.interior.AdminCaptchaContainer;
+import cc.uncarbon.module.api.model.response.AdminCaptchaVO;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.SysUserLoginDTO;
 import cc.uncarbon.module.sys.model.response.SysUserLoginBO;
@@ -63,17 +62,16 @@ public class AdminAuthController {
                 .build();
 
         // 将用户ID注册到 SA-Token ,并附加一些业务字段
-        AdminStpUtil.login(userInfo.getId(), dto.getRememberMe());
-        AdminStpUtil.getSession().set(UserContext.CAMEL_NAME, userContext);
-        AdminStpUtil.getSession().set(TenantContext.CAMEL_NAME, userInfo.getTenantContext());
+        CrmAdminStpUtil.login(userInfo.getId(), dto.getRememberMe());
+        CrmAdminStpUtil.getSession().set(UserContext.CAMEL_NAME, userContext);
 
         // 更新角色-权限缓存
         rolePermissionCacheHelper.putCache(userInfo.getRoleIdPermissionMap());
 
         // 返回登录token
         SysUserLoginVO tokenInfo = SysUserLoginVO.builder()
-                .tokenName(AdminStpUtil.getTokenName())
-                .tokenValue(AdminStpUtil.getTokenValue())
+                .tokenName(CrmAdminStpUtil.getTokenName())
+                .tokenValue(CrmAdminStpUtil.getTokenValue())
                 .roles(userInfo.getRoles())
                 .permissions(userInfo.getPermissions())
                 .build();
@@ -81,11 +79,11 @@ public class AdminAuthController {
         return ApiResult.data("登录成功", tokenInfo);
     }
 
-    @SaCheckLogin(type = AdminStpUtil.TYPE)
+    @SaCheckLogin(type = CrmAdminStpUtil.TYPE)
     @Operation(summary = "登出")
     @PostMapping(value = "/auth/logout")
     public ApiResult<Void> logout() {
-        AdminStpUtil.logout();
+        CrmAdminStpUtil.logout();
         UserContextHolder.clear();
         TenantContextHolder.clear();
 

+ 5 - 5
src/main/java/cc/uncarbon/module/adminapi/web/common/AdminSelectOptionsController.java → src/main/java/cc/uncarbon/module/api/web/common/AdminSelectOptionsController.java

@@ -1,10 +1,10 @@
-package cc.uncarbon.module.adminapi.web.common;
+package cc.uncarbon.module.api.web.common;
 
 
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.model.response.AdminSelectOptionItemVO;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.model.response.AdminSelectOptionItemVO;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.sys.model.response.SysDeptBO;
 import cc.uncarbon.module.sys.model.response.SysRoleBO;
 import cc.uncarbon.module.sys.service.SysDeptService;
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.List;
 
 // 约束:登录后才能使用   👇 后台管理对应的鉴权工具类
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "后台管理-下拉框数据源接口")
 @RequestMapping(AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor

+ 7 - 7
src/main/java/cc/uncarbon/module/adminapi/web/oss/AdminOssFileInfoController.java → src/main/java/cc/uncarbon/module/api/web/oss/AdminOssFileInfoController.java

@@ -1,15 +1,15 @@
-package cc.uncarbon.module.adminapi.web.oss;
+package cc.uncarbon.module.api.web.oss;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
 import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cc.uncarbon.module.oss.model.request.AdminListOssFileInfoDTO;
 import cc.uncarbon.module.oss.model.response.OssFileInfoBO;
 import cc.uncarbon.module.oss.service.OssFileInfoService;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
 import jakarta.validation.Valid;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "后台管理-上传文件信息管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -35,21 +35,21 @@ public class AdminOssFileInfoController {
     private final OssFileInfoService ossFileInfoService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表")
     @GetMapping(value = "/oss/file/infos")
     public ApiResult<PageResult<OssFileInfoBO>> list(PageParam pageParam, AdminListOssFileInfoDTO dto) {
         return ApiResult.data(ossFileInfoService.adminList(pageParam, dto));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/oss/file/infos/{id}")
     public ApiResult<OssFileInfoBO> getById(@PathVariable Long id) {
         return ApiResult.data(ossFileInfoService.getOneById(id, true));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/oss/file/infos")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {

+ 5 - 5
src/main/java/cc/uncarbon/module/adminapi/web/oss/AdminOssUploadDownloadController.java → src/main/java/cc/uncarbon/module/api/web/oss/AdminOssUploadDownloadController.java

@@ -1,10 +1,10 @@
-package cc.uncarbon.module.adminapi.web.oss;
+package cc.uncarbon.module.api.web.oss;
 
 import cc.uncarbon.framework.core.exception.BusinessException;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.enums.AdminApiErrorEnum;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.enums.AdminApiErrorEnum;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.oss.enums.UploadFileCheckResultEnum;
 import cc.uncarbon.module.oss.facade.OssUploadDownloadFacade;
 import cc.uncarbon.module.oss.model.request.UploadFileAttributeDTO;
@@ -47,7 +47,7 @@ public class AdminOssUploadDownloadController {
     @Operation(summary = "上传文件")
     @PostMapping(value = "/oss/files")
     // 约束:登录后才能上传   👇 后台管理对应的鉴权工具类
-    @SaCheckLogin(type = AdminStpUtil.TYPE)
+    @SaCheckLogin(type = CrmAdminStpUtil.TYPE)
     public ApiResult<OssFileUploadResultVO> upload(
             @RequestPart MultipartFile file, @RequestPart(required = false) @Valid UploadFileAttributeDTO attr,
             HttpServletRequest request

+ 5 - 5
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminCurrentSysUserController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminCurrentSysUserController.java

@@ -1,9 +1,9 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.exception.BusinessException;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.AdminUpdateCurrentSysUserAvatarDTO;
 import cc.uncarbon.module.sys.model.request.AdminUpdateCurrentSysUserInfoDTO;
@@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "当前后台用户信息接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -47,7 +47,7 @@ public class AdminCurrentSysUserController {
         sysUserService.adminUpdateCurrentUserPassword(dto);
 
         // 用户更改密码后使其当前会话直接过期
-        AdminStpUtil.logout();
+        CrmAdminStpUtil.logout();
 
         return ApiResult.success();
     }

+ 12 - 12
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysDataDictController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysDataDictController.java

@@ -1,12 +1,12 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
 import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.AdminSysDataDictClassifiedInsertOrUpdateDTO;
 import cc.uncarbon.module.sys.model.request.AdminSysDataDictClassifiedListDTO;
@@ -25,7 +25,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "数据字典管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -38,7 +38,7 @@ public class AdminSysDataDictController {
     private final SysDataDictService sysDataDictService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表数据字典分类")
     @GetMapping(value = "/sys/data-dict/classifieds")
     public ApiResult<PageResult<SysDataDictClassifiedBO>> list(PageParam pageParam, AdminSysDataDictClassifiedListDTO dto) {
@@ -46,7 +46,7 @@ public class AdminSysDataDictController {
     }
 
     @SysLog(value = "新增数据字典分类")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增数据字典分类")
     @PostMapping(value = "/sys/data-dict/classifieds")
     public ApiResult<Void> insert(@RequestBody @Valid AdminSysDataDictClassifiedInsertOrUpdateDTO dto) {
@@ -56,7 +56,7 @@ public class AdminSysDataDictController {
     }
 
     @SysLog(value = "编辑数据字典分类")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑数据字典分类")
     @PutMapping(value = "/sys/data-dict/classifieds/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminSysDataDictClassifiedInsertOrUpdateDTO dto) {
@@ -67,7 +67,7 @@ public class AdminSysDataDictController {
     }
 
     @SysLog(value = "删除数据字典分类")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除数据字典分类")
     @DeleteMapping(value = "/sys/data-dict/classifieds")
     public ApiResult<Void> deleteClassified(@RequestBody @Valid IdsDTO<Long> dto) {
@@ -76,7 +76,7 @@ public class AdminSysDataDictController {
         return ApiResult.success();
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表数据字典分类下的字典项")
     @GetMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items")
     public ApiResult<PageResult<SysDataDictItemBO>> list(@PathVariable Long classifiedId, PageParam pageParam, AdminSysDataDictItemListDTO dto) {
@@ -85,7 +85,7 @@ public class AdminSysDataDictController {
     }
 
     @SysLog(value = "新增数据字典项")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增数据字典项")
     @PostMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items")
     public ApiResult<Void> insert(@PathVariable Long classifiedId, @RequestBody @Valid AdminSysDataDictItemInsertOrUpdateDTO dto) {
@@ -96,7 +96,7 @@ public class AdminSysDataDictController {
     }
 
     @SysLog(value = "编辑数据字典项")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑数据字典项")
     @PutMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items/{id}")
     public ApiResult<Void> update(@PathVariable Long classifiedId, @PathVariable Long id, @RequestBody @Valid AdminSysDataDictItemInsertOrUpdateDTO dto) {
@@ -109,7 +109,7 @@ public class AdminSysDataDictController {
     }
 
     @SysLog(value = "删除数据字典项")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除数据字典项")
     @DeleteMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items")
     public ApiResult<Void> deleteItem(@PathVariable Long classifiedId, @RequestBody @Valid IdsDTO<Long> dto) {

+ 9 - 9
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysDeptController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysDeptController.java

@@ -1,15 +1,15 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.AdminInsertOrUpdateSysDeptDTO;
 import cc.uncarbon.module.sys.model.response.SysDeptBO;
 import cc.uncarbon.module.sys.service.SysDeptService;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -22,7 +22,7 @@ import jakarta.validation.Valid;
 import java.util.List;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "部门管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -35,14 +35,14 @@ public class AdminSysDeptController {
     private final SysDeptService sysDeptService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "列表")
     @GetMapping(value = "/sys/depts")
     public ApiResult<List<SysDeptBO>> list() {
         return ApiResult.data(sysDeptService.adminList());
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/depts/{id}")
     public ApiResult<SysDeptBO> getById(@PathVariable Long id) {
@@ -50,7 +50,7 @@ public class AdminSysDeptController {
     }
 
     @SysLog(value = "新增部门")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增")
     @PostMapping(value = "/sys/depts")
     public ApiResult<Void> insert(@RequestBody @Valid AdminInsertOrUpdateSysDeptDTO dto) {
@@ -60,7 +60,7 @@ public class AdminSysDeptController {
     }
 
     @SysLog(value = "编辑部门")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑")
     @PutMapping(value = "/sys/depts/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminInsertOrUpdateSysDeptDTO dto) {
@@ -71,7 +71,7 @@ public class AdminSysDeptController {
     }
 
     @SysLog(value = "删除部门")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/sys/depts")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {

+ 6 - 6
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysLogController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysLogController.java

@@ -1,11 +1,11 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
 import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.sys.model.request.AdminListSysLogDTO;
 import cc.uncarbon.module.sys.model.response.SysLogBO;
 import cc.uncarbon.module.sys.service.SysLogService;
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "系统日志管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -34,14 +34,14 @@ public class AdminSysLogController {
     private final SysLogService sysLogService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表")
     @GetMapping(value = "/sys/logs")
     public ApiResult<PageResult<SysLogBO>> list(PageParam pageParam, AdminListSysLogDTO dto) {
         return ApiResult.data(sysLogService.adminList(pageParam, dto));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/logs/{id}")
     public ApiResult<SysLogBO> getById(@PathVariable Long id) {

+ 9 - 9
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysMenuController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysMenuController.java

@@ -1,14 +1,14 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.AdminInsertOrUpdateSysMenuDTO;
 import cc.uncarbon.module.sys.model.response.SysMenuBO;
 import cc.uncarbon.module.sys.service.SysMenuService;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -21,7 +21,7 @@ import jakarta.validation.Valid;
 import java.util.List;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "后台菜单管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -34,14 +34,14 @@ public class AdminSysMenuController {
     private final SysMenuService sysMenuService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "列表")
     @GetMapping(value = "/sys/menus")
     public ApiResult<List<SysMenuBO>> list() {
         return ApiResult.data(sysMenuService.adminList());
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/menus/{id}")
     public ApiResult<SysMenuBO> getById(@PathVariable Long id) {
@@ -49,7 +49,7 @@ public class AdminSysMenuController {
     }
 
     @SysLog(value = "新增后台菜单")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增")
     @PostMapping(value = "/sys/menus")
     public ApiResult<Void> insert(@RequestBody @Valid AdminInsertOrUpdateSysMenuDTO dto) {
@@ -59,7 +59,7 @@ public class AdminSysMenuController {
     }
 
     @SysLog(value = "编辑后台菜单")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑")
     @PutMapping(value = "/sys/menus/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminInsertOrUpdateSysMenuDTO dto) {
@@ -70,7 +70,7 @@ public class AdminSysMenuController {
     }
 
     @SysLog(value = "删除后台菜单")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/sys/menus")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {

+ 9 - 9
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysParamController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysParamController.java

@@ -1,17 +1,17 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
 import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.AdminInsertOrUpdateSysParamDTO;
 import cc.uncarbon.module.sys.model.request.AdminListSysParamDTO;
 import cc.uncarbon.module.sys.model.response.SysParamBO;
 import cc.uncarbon.module.sys.service.SysParamService;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
 import jakarta.validation.Valid;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "系统参数管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -36,14 +36,14 @@ public class AdminSysParamController {
     private final SysParamService sysParamService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表")
     @GetMapping(value = "/sys/params")
     public ApiResult<PageResult<SysParamBO>> list(PageParam pageParam, AdminListSysParamDTO dto) {
         return ApiResult.data(sysParamService.adminList(pageParam, dto));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/params/{id}")
     public ApiResult<SysParamBO> getById(@PathVariable Long id) {
@@ -51,7 +51,7 @@ public class AdminSysParamController {
     }
 
     @SysLog(value = "新增系统参数")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增")
     @PostMapping(value = "/sys/params")
     public ApiResult<Void> insert(@RequestBody @Valid AdminInsertOrUpdateSysParamDTO dto) {
@@ -61,7 +61,7 @@ public class AdminSysParamController {
     }
 
     @SysLog(value = "编辑系统参数")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑")
     @PutMapping(value = "/sys/params/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminInsertOrUpdateSysParamDTO dto) {
@@ -72,7 +72,7 @@ public class AdminSysParamController {
     }
 
     @SysLog(value = "删除系统参数")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/sys/params")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {

+ 10 - 10
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysRoleController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysRoleController.java

@@ -1,4 +1,4 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
@@ -6,14 +6,14 @@ import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
 import cc.uncarbon.helper.RolePermissionCacheHelper;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.model.request.AdminBindRoleMenuRelationDTO;
 import cc.uncarbon.module.sys.model.request.AdminInsertOrUpdateSysRoleDTO;
 import cc.uncarbon.module.sys.model.request.AdminListSysRoleDTO;
 import cc.uncarbon.module.sys.model.response.SysRoleBO;
 import cc.uncarbon.module.sys.service.SysRoleService;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,7 +26,7 @@ import jakarta.validation.Valid;
 import java.util.Set;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "后台角色管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -41,14 +41,14 @@ public class AdminSysRoleController {
     private final RolePermissionCacheHelper rolePermissionCacheHelper;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表")
     @GetMapping(value = "/sys/roles")
     public ApiResult<PageResult<SysRoleBO>> list(PageParam pageParam, AdminListSysRoleDTO dto) {
         return ApiResult.data(sysRoleService.adminList(pageParam, dto));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/roles/{id}")
     public ApiResult<SysRoleBO> getById(@PathVariable Long id) {
@@ -56,7 +56,7 @@ public class AdminSysRoleController {
     }
 
     @SysLog(value = "新增后台角色")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增")
     @PostMapping(value = "/sys/roles")
     public ApiResult<Void> insert(@RequestBody @Valid AdminInsertOrUpdateSysRoleDTO dto) {
@@ -67,7 +67,7 @@ public class AdminSysRoleController {
     }
 
     @SysLog(value = "编辑后台角色")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑")
     @PutMapping(value = "/sys/roles/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminInsertOrUpdateSysRoleDTO dto) {
@@ -80,7 +80,7 @@ public class AdminSysRoleController {
     }
 
     @SysLog(value = "删除后台角色")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/sys/roles")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {
@@ -93,7 +93,7 @@ public class AdminSysRoleController {
     }
 
     @SysLog(value = "绑定角色与菜单关联关系")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + "bindMenus")
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + "bindMenus")
     @Operation(summary = "绑定角色与菜单关联关系")
     @PutMapping(value = "/sys/roles/{id}/menus")
     public ApiResult<Void> bindMenus(@PathVariable Long id, @RequestBody @Valid AdminBindRoleMenuRelationDTO dto) {

+ 10 - 10
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysTenantController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysTenantController.java

@@ -1,13 +1,13 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
 import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
-import cc.uncarbon.module.adminapi.event.KickOutSysUsersEvent;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
+import cc.uncarbon.module.api.event.KickOutSysUsersEvent;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.facade.SysTenantFacade;
 import cc.uncarbon.module.sys.model.request.AdminInsertSysTenantDTO;
@@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.*;
 import jakarta.validation.Valid;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "系统租户管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -43,14 +43,14 @@ public class AdminSysTenantController {
     private final SysTenantFacade sysTenantFacade;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表")
     @GetMapping(value = "/sys/tenants")
     public ApiResult<PageResult<SysTenantBO>> list(PageParam pageParam, AdminListSysTenantDTO dto) {
         return ApiResult.data(sysTenantService.adminList(pageParam, dto));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/tenants/{id}")
     public ApiResult<SysTenantBO> getById(@PathVariable Long id) {
@@ -58,7 +58,7 @@ public class AdminSysTenantController {
     }
 
     @SysLog(value = "新增系统租户")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增")
     @PostMapping(value = "/sys/tenants")
     public ApiResult<Void> insert(@RequestBody @Valid AdminInsertSysTenantDTO dto) {
@@ -68,7 +68,7 @@ public class AdminSysTenantController {
     }
 
     @SysLog(value = "编辑系统租户")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑")
     @PutMapping(value = "/sys/tenants/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminUpdateSysTenantDTO dto) {
@@ -84,7 +84,7 @@ public class AdminSysTenantController {
     }
 
     @SysLog(value = "删除系统租户")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/sys/tenants")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {

+ 15 - 15
src/main/java/cc/uncarbon/module/adminapi/web/sys/AdminSysUserController.java → src/main/java/cc/uncarbon/module/api/web/sys/AdminSysUserController.java

@@ -1,11 +1,11 @@
-package cc.uncarbon.module.adminapi.web.sys;
+package cc.uncarbon.module.api.web.sys;
 
 import cc.uncarbon.framework.core.constant.HelioConstant;
 import cc.uncarbon.framework.core.page.PageParam;
 import cc.uncarbon.framework.core.page.PageResult;
 import cc.uncarbon.framework.web.model.request.IdsDTO;
 import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
+import cc.uncarbon.module.api.constant.AdminApiConstant;
 import cc.uncarbon.module.sys.annotation.SysLog;
 import cc.uncarbon.module.sys.enums.SysUserStatusEnum;
 import cc.uncarbon.module.sys.model.request.AdminBindUserRoleRelationDTO;
@@ -14,7 +14,7 @@ import cc.uncarbon.module.sys.model.request.AdminListSysUserDTO;
 import cc.uncarbon.module.sys.model.request.AdminResetSysUserPasswordDTO;
 import cc.uncarbon.module.sys.model.response.SysUserBO;
 import cc.uncarbon.module.sys.service.SysUserService;
-import cc.uncarbon.module.adminapi.util.AdminStpUtil;
+import cc.uncarbon.module.api.util.CrmAdminStpUtil;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -27,7 +27,7 @@ import jakarta.validation.Valid;
 import java.util.Set;
 
 
-@SaCheckLogin(type = AdminStpUtil.TYPE)
+@SaCheckLogin(type = CrmAdminStpUtil.TYPE)
 @Tag(name = "后台用户管理接口")
 @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
 @RequiredArgsConstructor
@@ -40,14 +40,14 @@ public class AdminSysUserController {
     private final SysUserService sysUserService;
 
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "分页列表")
     @GetMapping(value = "/sys/users")
     public ApiResult<PageResult<SysUserBO>> list(PageParam pageParam, AdminListSysUserDTO dto) {
         return ApiResult.data(sysUserService.adminList(pageParam, dto));
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "详情")
     @GetMapping(value = "/sys/users/{id}")
     public ApiResult<SysUserBO> getById(@PathVariable Long id) {
@@ -55,7 +55,7 @@ public class AdminSysUserController {
     }
 
     @SysLog(value = "新增后台用户")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
     @Operation(summary = "新增")
     @PostMapping(value = "/sys/users")
     public ApiResult<Void> insert(@RequestBody @Valid AdminInsertOrUpdateSysUserDTO dto) {
@@ -65,7 +65,7 @@ public class AdminSysUserController {
     }
 
     @SysLog(value = "编辑后台用户")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
     @Operation(summary = "编辑")
     @PutMapping(value = "/sys/users/{id}")
     public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminInsertOrUpdateSysUserDTO dto) {
@@ -81,7 +81,7 @@ public class AdminSysUserController {
     }
 
     @SysLog(value = "删除后台用户")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
     @Operation(summary = "删除")
     @DeleteMapping(value = "/sys/users")
     public ApiResult<Void> delete(@RequestBody @Valid IdsDTO<Long> dto) {
@@ -94,7 +94,7 @@ public class AdminSysUserController {
     }
 
     @SysLog(value = "重置某用户密码")
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + "resetPassword")
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + "resetPassword")
     @Operation(summary = "重置某用户密码")
     @PutMapping(value = "/sys/users/{userId}/password")
     public ApiResult<Void> resetPassword(@PathVariable Long userId, @RequestBody @Valid AdminResetSysUserPasswordDTO dto) {
@@ -102,12 +102,12 @@ public class AdminSysUserController {
         sysUserService.adminResetUserPassword(dto);
 
         // 踢出原登录
-        AdminStpUtil.kickout(dto.getUserId());
+        CrmAdminStpUtil.kickout(dto.getUserId());
 
         return ApiResult.success();
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + "bindRoles")
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + "bindRoles")
     @Operation(summary = "绑定用户与角色关联关系")
     @PutMapping(value = "/sys/users/{userId}/roles")
     public ApiResult<Void> bindRoles(@PathVariable Long userId, @RequestBody AdminBindUserRoleRelationDTO dto) {
@@ -120,16 +120,16 @@ public class AdminSysUserController {
         return ApiResult.success();
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + "kickOut")
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + "kickOut")
     @Operation(summary = "踢某用户下线")
     @PostMapping(value = "/sys/users/{userId}:kick-out")
     public ApiResult<Void> kickOut(@PathVariable Long userId) {
-        AdminStpUtil.kickout(userId);
+        CrmAdminStpUtil.kickout(userId);
 
         return ApiResult.success();
     }
 
-    @SaCheckPermission(type = AdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
+    @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
     @Operation(summary = "取指定用户关联角色ID")
     @GetMapping(value = "/sys/users/{userId}/roles")
     public ApiResult<Set<Long>> listRelatedRoleIds(@PathVariable Long userId) {

+ 0 - 16
src/main/java/cc/uncarbon/module/appapi/constant/AppApiConstant.java

@@ -1,16 +0,0 @@
-package cc.uncarbon.module.appapi.constant;
-
-
-/**
- * C端接口常量
- */
-public final class AppApiConstant {
-    private AppApiConstant() {
-    }
-
-    /**
-     * HTTP-API路由前缀
-     */
-    public static final String HTTP_API_URL_PREFIX = "/app";
-
-}

+ 0 - 34
src/main/java/cc/uncarbon/module/appapi/web/AppAuthController.java

@@ -1,34 +0,0 @@
-package cc.uncarbon.module.appapi.web;
-
-
-import cc.uncarbon.framework.web.model.response.ApiResult;
-import cc.uncarbon.module.appapi.constant.AppApiConstant;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-
-@RequiredArgsConstructor
-@Slf4j
-@Tag(name = "APP鉴权接口")
-@RequestMapping(AppApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
-@RestController
-public class AppAuthController {
-
-    /*
-    /app/** 开头的C端接口默认为都需要登录,放行接口请在配置文件的 helio.security.exclude-routes 中设置
-    相关拦截器代码请见 CustomInterceptorConfiguration.java
-     */
-
-    @Operation(summary = "登录")
-    @PostMapping("/auth/login")
-    public ApiResult<Void> login() {
-        // 可参考 admin-api 的 AdminAuthController#login
-        return ApiResult.success();
-    }
-
-}

+ 12 - 27
src/main/java/cc/uncarbon/module/sys/service/SysUserService.java

@@ -121,7 +121,7 @@ public class SysUserService {
     /**
      * 根据 ID 取详情
      *
-     * @param id 主键ID
+     * @param id               主键ID
      * @param throwIfInvalidId 是否在 ID 无效时抛出异常
      * @return null or BO
      */
@@ -204,18 +204,6 @@ public class SysUserService {
      * 后台管理-登录
      */
     public SysUserLoginBO adminLogin(SysUserLoginDTO dto) {
-        /*
-        如果启用了多租户功能,并且前端指定了租户ID,则先查库确认租户是否有效
-        注意:数据源级多租户,登录前【必须】主动指定租户ID,如: dto.setTenantId(101L)
-         */
-        // ConcurrentHashMap 的 value 不能为 null,还是 new 一个吧
-        TenantContext tenantContext = new TenantContext();
-        if (isTenantEnabled && ObjectUtil.isNotNull(dto.getTenantId())) {
-            tenantContext = this.checkAndGetTenantContext(dto.getTenantId());
-            // 验证通过,将所属租户写入租户上下文,使得 SQL 拦截器可以正确执行
-            TenantContextHolder.setTenantContext(tenantContext);
-        }
-
         // 不要直接提示“账号不存在”或“密码不正确”,避免撞库攻击
         SysUserEntity sysUserEntity = this.getUserByPin(dto.getUsername());
         if (sysUserEntity == null) {
@@ -234,17 +222,11 @@ public class SysUserService {
         以上为有效性校验, 进入实际业务逻辑
         ---------------------------------------------------
          */
-
-        if (isTenantEnabled && ObjectUtil.isNotNull(sysUserEntity.getTenantId())) {
-            // 二次赋值,以防万一(也许前端没有传租户ID,上方的 if 块并没有执行)
-            tenantContext = this.checkAndGetTenantContext(sysUserEntity.getTenantId());
-            TenantContextHolder.setTenantContext(tenantContext);
-        }
-
         this.updateLastLoginAt(sysUserEntity.getId(), LocalDateTimeUtil.now());
 
         // 取账号完整信息
         SysUserBO sysUserBO = this.entity2BO(sysUserEntity, false);
+
         Map<Long, String> roleMap = sysRoleService.getRoleMapByUserId(sysUserBO.getId());
 
         Map<Long, Set<String>> roleIdPermissionMap = sysMenuService.getRoleIdPermissionMap(roleMap.keySet());
@@ -259,8 +241,7 @@ public class SysUserService {
                 .setRoleIds(new HashSet<>(roleMap.keySet()))
                 .setRoles(new ArrayList<>(roleMap.values()))
                 .setPermissions(permissions)
-                .setRoleIdPermissionMap(roleIdPermissionMap)
-                .setTenantContext(tenantContext);
+                .setRoleIdPermissionMap(roleIdPermissionMap);
 
         return ret;
     }
@@ -329,6 +310,7 @@ public class SysUserService {
 
     /**
      * 后台管理 - 取指定用户关联角色ID
+     *
      * @param userId 用户ID
      * @return 角色Ids
      */
@@ -341,7 +323,8 @@ public class SysUserService {
 
     /**
      * 后台管理 - 取租户用户IDs
-     * @param tenantId 租户ID,非主键ID
+     *
+     * @param tenantId    租户ID,非主键ID
      * @param statusEnums 仅保留符合指定状态的,可以为null
      */
     public List<Long> listUserIdsByTenantId(Long tenantId, Collection<EnabledStatusEnum> statusEnums) {
@@ -390,7 +373,7 @@ public class SysUserService {
     /**
      * 实体转 BO
      *
-     * @param entity 实体
+     * @param entity       实体
      * @param fillDeptInfo 是否根据实体部门ID,查询关联部门信息并填充到BO
      * @return BO
      */
@@ -415,7 +398,7 @@ public class SysUserService {
     /**
      * 实体 List 转 BO List
      *
-     * @param entityList 实体 List
+     * @param entityList   实体 List
      * @param fillDeptInfo 是否根据实体部门ID,查询关联部门信息并填充到BO
      * @return BO List
      */
@@ -436,7 +419,7 @@ public class SysUserService {
     /**
      * 实体分页转 BO 分页
      *
-     * @param entityPage 实体分页
+     * @param entityPage   实体分页
      * @param fillDeptInfo 是否根据实体部门ID,查询关联部门信息并填充到BO
      * @return BO 分页
      */
@@ -503,6 +486,7 @@ public class SysUserService {
 
     /**
      * 检查并获取租户上下文 bean,无效或被禁用则直接抛出异常
+     *
      * @param tenantId 租户ID
      * @return TenantContext
      */
@@ -533,8 +517,9 @@ public class SysUserService {
 
     /**
      * 编辑后台用户信息前检查
+     *
      * @param specifiedUserId 被操作用户ID
-     * @param statusEnum 用户状态枚举,可以为null
+     * @param statusEnum      用户状态枚举,可以为null
      */
     private void preUpdateCheck(Long specifiedUserId, @Nullable SysUserStatusEnum statusEnum) {
         UserRoleContainer currentUser = sysRoleService.getCurrentUserRoleContainer();

+ 6 - 0
src/main/resources/application-dev.yml

@@ -88,6 +88,12 @@ knife4j:
   # 生产环境务必设为true
   production: false
 
+mybatis:
+  mapper-locations:
+    - classpath:mapper/*.xml
+    - classpath:cc/uncarbon/module/**/mapper/**/*.xml
+  type-aliases-package: cc.uncarbon.module.assessment.entity
+
 mybatis-plus:
   configuration:
     # 生产环境下建议去除该配置项,不在控制台打印SQL

+ 12 - 0
src/main/resources/application-prod.yml

@@ -87,6 +87,18 @@ knife4j:
   # 生产环境务必设为true
   production: true
 
+mybatis:
+  mapper-locations:
+    - classpath:mapper/*.xml
+    - classpath:cc/uncarbon/module/**/mapper/**/*.xml
+  type-aliases-package: cc.uncarbon.module.assessment.entity
+
+mybatis-plus:
+  configuration:
+    # 生产环境下建议去除该配置项,不在控制台打印SQL
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+
 dromara:
   x-file-storage:
     # 文档:https://x-file-storage.xuyanwu.cn/

+ 6 - 0
src/main/resources/application-test.yml

@@ -87,6 +87,12 @@ knife4j:
   # 生产环境务必设为true
   production: false
 
+mybatis:
+  mapper-locations:
+    - classpath:mapper/*.xml
+    - classpath:cc/uncarbon/module/**/mapper/**/*.xml
+  type-aliases-package: cc.uncarbon.module.assessment.entity
+
 mybatis-plus:
   configuration:
     # 生产环境下建议去除该配置项,不在控制台打印SQL