From d63ca6a1d8e940d1831c3092d85924c89f0e65e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=9A=E6=96=87?= Date: Mon, 23 Jun 2025 09:35:03 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E6=94=AF=E6=8C=81=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=88=B6=E5=AD=90=E7=BB=A7=E6=89=BF=EF=BC=8C=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E5=AD=90=E8=A7=92=E8=89=B2=E5=8D=95=E7=8B=AC=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=87=AA=E5=B7=B1=E6=9C=89=E7=9A=84=E6=9D=83=E9=99=90"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/dm/用户租户关系表.sql | 32 --- sql/dm/组织机构添加是否租户字段.sql | 6 - sql/dm/角色权限剔除表.sql | 3 + .../admin/auth/vo/AuthLoginRespVO.java | 5 + .../admin/dept/vo/dept/DeptRespVO.java | 3 - .../admin/dept/vo/dept/DeptSaveReqVO.java | 3 - .../permission/PermissionController.java | 5 + .../usertenant/UserTenantController.java | 160 ------------- .../usertenant/vo/UserTenantPageReqVO.java | 26 -- .../admin/usertenant/vo/UserTenantRespVO.java | 27 --- .../usertenant/vo/UserTenantSaveReqVO.java | 22 -- .../system/dal/dataobject/dept/DeptDO.java | 5 - .../system/dal/mysql/dept/DeptMapper.java | 4 +- .../mysql/usertenant/UserTenantMapper.java | 26 -- .../system/service/dept/DeptServiceImpl.java | 72 +----- .../oauth2/OAuth2TokenServiceImpl.java | 2 +- .../service/usertenant/UserTenantService.java | 90 ------- .../usertenant/UserTenantServiceImpl.java | 224 ------------------ .../oauth2/OAuth2TokenServiceImplTest.java | 6 +- 19 files changed, 21 insertions(+), 700 deletions(-) delete mode 100644 sql/dm/用户租户关系表.sql delete mode 100644 sql/dm/组织机构添加是否租户字段.sql delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/UserTenantController.java delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantPageReqVO.java delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantRespVO.java delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantSaveReqVO.java delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/usertenant/UserTenantMapper.java delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantService.java delete mode 100644 yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantServiceImpl.java diff --git a/sql/dm/用户租户关系表.sql b/sql/dm/用户租户关系表.sql deleted file mode 100644 index a33bb36c..00000000 --- a/sql/dm/用户租户关系表.sql +++ /dev/null @@ -1,32 +0,0 @@ --- 用户-租户关系表 -create table "RUOYI-VUE-PRO".SYSTEM_USER_TENANT -( - ID BIGINT not null, - USER_ID BIGINT not null, - TENANT_ID BIGINT not null, - CREATOR VARCHAR(256) default '', - CREATE_TIME TIMESTAMP default CURRENT_TIMESTAMP not null, - UPDATER VARCHAR(256) default '', - UPDATE_TIME TIMESTAMP default CURRENT_TIMESTAMP not null, - DELETED TINYINT default 0 not null -); - -comment on table "RUOYI-VUE-PRO".SYSTEM_USER_TENANT is '用户-租户关系表'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.ID is '主键ID'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.USER_ID is '用户ID'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.TENANT_ID is '租户ID'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.CREATOR is '创建者'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.CREATE_TIME is '创建时间'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.UPDATER is '更新者'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.UPDATE_TIME is '更新时间'; -comment on column "RUOYI-VUE-PRO".SYSTEM_USER_TENANT.DELETED is '是否删除'; - -create unique index "RUOYI-VUE-PRO".IDX_SYSTEM_USER_TENANT_ID - on "RUOYI-VUE-PRO".SYSTEM_USER_TENANT (ID); - -create unique index "RUOYI-VUE-PRO".IDX_SYSTEM_USER_TENANT_UNIQUE - on "RUOYI-VUE-PRO".SYSTEM_USER_TENANT (USER_ID, TENANT_ID); - -alter table "RUOYI-VUE-PRO".SYSTEM_USER_TENANT - add constraint PK_SYSTEM_USER_TENANT_ID - primary key (ID); \ No newline at end of file diff --git a/sql/dm/组织机构添加是否租户字段.sql b/sql/dm/组织机构添加是否租户字段.sql deleted file mode 100644 index 02a7aa7b..00000000 --- a/sql/dm/组织机构添加是否租户字段.sql +++ /dev/null @@ -1,6 +0,0 @@ -alter table "RUOYI-VUE-PRO".SYSTEM_DEPT - add IS_TENANT TINYINT default false not null; - -comment -on column "RUOYI-VUE-PRO".SYSTEM_DEPT.IS_TENANT is '组织机构是否为租户'; - diff --git a/sql/dm/角色权限剔除表.sql b/sql/dm/角色权限剔除表.sql index 8c461a3e..4934ea6a 100644 --- a/sql/dm/角色权限剔除表.sql +++ b/sql/dm/角色权限剔除表.sql @@ -34,3 +34,6 @@ alter table "RUOYI-VUE-PRO".SYSTEM_ROLE_MENU_EXCLUSION alter table "RUOYI-VUE-PRO".SYSTEM_ROLE add PARENT_ID BIGINT default 0 not null; + +alter table "RUOYI-VUE-PRO".SYSTEM_ROLE + add PARENT_ID BIGINT default 0 not null; diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java index 1720d073..ebdae0d1 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java @@ -8,6 +8,9 @@ import lombok.NoArgsConstructor; import java.time.LocalDateTime; +/** + * @author chenbowen + */ @Schema(description = "管理后台 - 登录 Response VO") @Data @NoArgsConstructor @@ -27,4 +30,6 @@ public class AuthLoginRespVO { @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime expiresTime; + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED) + private Long tenantId; } diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java index 4a69f902..1e05f55a 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java @@ -39,9 +39,6 @@ public class DeptRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; - @Schema(description = "组织机构是否租户", example = "true") - private Boolean isTenant = false; - @Schema(description = "租户编号", example = "1024") private Long tenantId; diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java index 3618adc5..1419af95 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java @@ -48,9 +48,6 @@ public class DeptSaveReqVO { @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; - @Schema(description = "组织机构是否租户", example = "true") - private Boolean isTenant = false; - @Schema(description = "租户编号", example = "1024") private Long tenantId; diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java index a8de498b..1301a599 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java @@ -10,6 +10,11 @@ import cn.iocoder.yudao.module.system.service.tenant.TenantService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import java.util.Set; diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/UserTenantController.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/UserTenantController.java deleted file mode 100644 index 2928447c..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/UserTenantController.java +++ /dev/null @@ -1,160 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.usertenant; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; -import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; -import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; -import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantRespVO; -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantPageReqVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantRespVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantSaveReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.usertenant.UserTenantDO; -import cn.iocoder.yudao.module.system.service.usertenant.UserTenantService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.io.IOException; -import java.util.List; - -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; - -/** - * @author chenbowen - */ -@Tag(name = "管理后台 - 用户-租户关系") -@RestController -@RequestMapping("/system/user-tenant") -@Validated -public class UserTenantController { - - @Resource - private UserTenantService userTenantService; - - @PostMapping("/create") - @Operation(summary = "创建用户-租户关系") - @PreAuthorize("@ss.hasPermission('system:user-tenant:create')") - public CommonResult createUserTenant(@Valid @RequestBody UserTenantSaveReqVO createReqVO) { - return success(userTenantService.createUserTenant(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新用户-租户关系") - @PreAuthorize("@ss.hasPermission('system:user-tenant:update')") - public CommonResult updateUserTenant(@Valid @RequestBody UserTenantSaveReqVO updateReqVO) { - userTenantService.updateUserTenant(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除用户-租户关系") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('system:user-tenant:delete')") - public CommonResult deleteUserTenant(@RequestParam("id") Long id) { - userTenantService.deleteUserTenant(id); - return success(true); - } - - @DeleteMapping("/delete-list") - @Parameter(name = "ids", description = "编号", required = true) - @Operation(summary = "批量删除用户-租户关系") - @PreAuthorize("@ss.hasPermission('system:user-tenant:delete')") - public CommonResult deleteUserTenantList(@RequestParam("ids") List ids) { - userTenantService.deleteUserTenantListByIds(ids); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得用户-租户关系") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('system:user-tenant:query')") - public CommonResult getUserTenant(@RequestParam("id") Long id) { - UserTenantDO userTenant = userTenantService.getUserTenant(id); - return success(BeanUtils.toBean(userTenant, UserTenantRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得用户-租户关系分页") - @PreAuthorize("@ss.hasPermission('system:user-tenant:query')") - public CommonResult> getUserTenantPage(@Valid UserTenantPageReqVO pageReqVO) { - PageResult pageResult = userTenantService.getUserTenantPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, UserTenantRespVO.class)); - } - - /** - * 用户租户关系 simpleList 查询接口 - */ - @GetMapping("/user-tenant-simple-list") - @Operation(summary = "获得用户-租户关系 simpleList 列表") - public CommonResult> getUserTenantSimpleList(@Valid UserTenantPageReqVO pageReqVO) { - List list = userTenantService.getUserTenantList(pageReqVO); - // 追加当前用户归属的租户信息 - if (CollUtil.isNotEmpty(list)) { - list.add(new UserTenantDO() - .setUserId(getLoginUserId()) - .setTenantId(TenantContextHolder.getTenantId())); - } - return success(BeanUtils.toBean(list, UserTenantRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出用户-租户关系 Excel") - @PreAuthorize("@ss.hasPermission('system:user-tenant:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportUserTenantExcel(@Valid UserTenantPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = userTenantService.getUserTenantPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "用户-租户关系.xls", "数据", UserTenantRespVO.class, - BeanUtils.toBean(list, UserTenantRespVO.class)); - } - - /** - * 用户 simpleList 查询接口 - */ - @GetMapping("/user-simple-list") - @Operation(summary = "获得用户 simpleList 列表") - // 不使用默认的租户查询方式,此处需要获取租户以及下属租户的相关数据,在 mapper 自行实现 - @TenantIgnore - public CommonResult> getUserSimpleList() { - return success(userTenantService.getUserBelongSimpleList()); - } - - /** - * 租户 simpleList 查询接口 - */ - @GetMapping("/tenant-simple-list") - @Operation(summary = "获得租户 simpleList 列表") - // 不使用默认的租户查询方式,此处需要获取租户以及下属租户的相关数据,在 mapper 自行实现 - @TenantIgnore - public CommonResult> getTenantSimpleList() { - return success(userTenantService.getTenantBelongSimpleList()); - } - - /** - * 未关联组织机构租户 simpleList 查询接口 - */ - @GetMapping("/independent-tenant-simple-list") - @Operation(summary = "获得租户 simpleList 列表") - // 不使用默认的租户查询方式,此处需要获取租户以及下属租户的相关数据,在 mapper 自行实现 - @TenantIgnore - public CommonResult> getIndependentTenantSimpleList() { - return success(userTenantService.getIndependentTenantSimpleList()); - } - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantPageReqVO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantPageReqVO.java deleted file mode 100644 index 3e3387ae..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantPageReqVO.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.usertenant.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - 用户-租户关系分页 Request VO") -@Data -public class UserTenantPageReqVO extends PageParam { - - @Schema(description = "用户ID", example = "32426") - private Long userId; - - @Schema(description = "租户ID", example = "30027") - private Long tenantId; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantRespVO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantRespVO.java deleted file mode 100644 index 22cbd202..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantRespVO.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.usertenant.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 用户-租户关系 Response VO") -@Data -@ExcelIgnoreUnannotated -public class UserTenantRespVO { - - @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26967") - @ExcelProperty("主键ID") - private Long id; - - @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32426") - @ExcelProperty("用户ID") - private Long userId; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantSaveReqVO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantSaveReqVO.java deleted file mode 100644 index dfe9b77f..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/usertenant/vo/UserTenantSaveReqVO.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.usertenant.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -@Schema(description = "管理后台 - 用户-租户关系新增/修改 Request VO") -@Data -public class UserTenantSaveReqVO { - - @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26967") - private Long id; - - @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32426") - @NotNull(message = "用户ID不能为空") - private Long userId; - - @Schema(description = "租户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30027") - @NotNull(message = "租户ID不能为空") - private Long tenantId; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java index 9c38cc47..70521faa 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java @@ -62,10 +62,5 @@ public class DeptDO extends TenantBaseDO { * 枚举 {@link CommonStatusEnum} */ private Integer status; - /** - * 组织机构是否为租户 - */ - private Boolean isTenant; - } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java index 6df7b0f4..9f3799bb 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java @@ -40,14 +40,12 @@ public interface DeptMapper extends BaseMapperX { default DeptDO selectByTenantIdAndIsTenant(Long tenantId) { return selectOne(new LambdaQueryWrapperX() - .eq(DeptDO::getTenantId, tenantId) - .eq(DeptDO::getIsTenant, true)); + .eq(DeptDO::getTenantId, tenantId)); } default DeptDO selectByTenantIdAndIsTenantExcludeId(Long tenantId, Long excludeId) { return selectOne(new LambdaQueryWrapperX() .eq(DeptDO::getTenantId, tenantId) - .eq(DeptDO::getIsTenant, true) .ne(DeptDO::getId, excludeId)); } diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/usertenant/UserTenantMapper.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/usertenant/UserTenantMapper.java deleted file mode 100644 index f0fb5b3c..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/usertenant/UserTenantMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.iocoder.yudao.module.system.dal.mysql.usertenant; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantPageReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.usertenant.UserTenantDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 用户-租户关系 Mapper - * - * @author 管理员 - */ -@Mapper -public interface UserTenantMapper extends BaseMapperX { - - default PageResult selectPage(UserTenantPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(UserTenantDO::getUserId, reqVO.getUserId()) - .eqIfPresent(UserTenantDO::getTenantId, reqVO.getTenantId()) - .betweenIfPresent(UserTenantDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(UserTenantDO::getId)); - } - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java index f19a4690..89d1f64e 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -49,20 +49,9 @@ public class DeptServiceImpl implements DeptService { // 校验部门名的唯一性 validateDeptNameUnique(null, createReqVO.getParentId(), createReqVO.getName()); - // 新建为主体公司时,校验租户唯一性(一个租户只能关联一个组织机构) - if (Boolean.TRUE.equals(createReqVO.getIsTenant())) { - DeptDO exist = deptMapper.selectByTenantIdAndIsTenant(createReqVO.getTenantId()); - if (exist != null) { - throw exception(DEPT_TENANT_RELATION_EXISTS); - } - } - + // 插入部门 DeptDO dept = BeanUtils.toBean(createReqVO, DeptDO.class); - if (Boolean.TRUE.equals(createReqVO.getIsTenant())) { - dept.setTenantId(createReqVO.getTenantId()); - } deptMapper.insert(dept); - return dept.getId(); } @@ -80,33 +69,7 @@ public class DeptServiceImpl implements DeptService { // 校验部门名的唯一性 validateDeptNameUnique(updateReqVO.getId(), updateReqVO.getParentId(), updateReqVO.getName()); - DeptDO oldDept = deptMapper.selectById(updateReqVO.getId()); - boolean oldIsTenant = oldDept.getIsTenant(); - boolean newIsTenant = updateReqVO.getIsTenant(); - - if (newIsTenant) { - // 1. 校验租户唯一性 - DeptDO exist = deptMapper.selectByTenantIdAndIsTenantExcludeId(updateReqVO.getTenantId(), updateReqVO.getId()); - if (exist != null) { - throw exception(DEPT_TENANT_RELATION_EXISTS); - } - // 2. 设置当前组织租户Id - oldDept.setTenantId(updateReqVO.getTenantId()); - // 3. 递归设置所有下属非主体公司组织的租户Id为当前租户Id - updateChildrenTenantId(updateReqVO.getId(), updateReqVO.getTenantId()); - } else if (oldIsTenant) { - // 获取父级组织机构的租户Id - Long parentTenantId = null; - if (oldDept.getParentId() != null && !DeptDO.PARENT_ID_ROOT.equals(oldDept.getParentId())) { - DeptDO parentDept = deptMapper.selectById(oldDept.getParentId()); - if (parentDept != null) { - parentTenantId = parentDept.getTenantId(); - } - } - // 递归设置所有下属非主体公司组织的租户Id为父级组织机构的租户Id - updateChildrenTenantId(updateReqVO.getId(), parentTenantId); - } - + // 更新部门 DeptDO updateObj = BeanUtils.toBean(updateReqVO, DeptDO.class); deptMapper.updateById(updateObj); } @@ -121,8 +84,7 @@ public class DeptServiceImpl implements DeptService { if (deptMapper.selectCountByParentId(id) > 0) { throw exception(DEPT_EXITS_CHILDREN); } - DeptDO dept = deptMapper.selectById(id); - // 删除为主体公司时无需处理关系表,仅常规删除 + // 删除部门 deptMapper.deleteById(id); } @@ -258,32 +220,4 @@ public class DeptServiceImpl implements DeptService { }); } - /** - * 递归设置指定组织及其所有下属非主体公司组织的租户Id,批量更新。 - * 跳过所有租户组织及其下属组织(不包含自身)。 - */ - private void updateChildrenTenantId(Long parentId, Long tenantId) { - List updateIds = new ArrayList<>(); - Queue queue = new LinkedList<>(); - List children = deptMapper.selectListByParentId(Collections.singleton(parentId)); - if (children != null && !children.isEmpty()) { - queue.addAll(children); - } - while (!queue.isEmpty()) { - DeptDO current = queue.poll(); - if (current.getIsTenant() != null && current.getIsTenant()) { - // 跳过当前租户组织及其所有下属 - continue; - } - updateIds.add(current.getId()); - List subChildren = deptMapper.selectListByParentId(Collections.singleton(current.getId())); - if (subChildren != null && !subChildren.isEmpty()) { - queue.addAll(subChildren); - } - } - if (!updateIds.isEmpty()) { - deptMapper.updateTenantIdBatch(updateIds, tenantId); - } - } - } diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 66018231..80a14495 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -161,7 +161,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { Map userInfo = buildUserInfo(refreshTokenDO.getUserId(), refreshTokenDO.getUserType()); OAuth2AccessTokenDO accessTokenDO = new OAuth2AccessTokenDO().setAccessToken(generateAccessToken()) .setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType()) - .setUserInfo(userInfo) + .setUserInfo(buildUserInfo(refreshTokenDO.getUserId(), refreshTokenDO.getUserType())) .setClientId(clientDO.getClientId()).setScopes(refreshTokenDO.getScopes()) .setRefreshToken(refreshTokenDO.getRefreshToken()) .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds())); diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantService.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantService.java deleted file mode 100644 index da38a07c..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantService.java +++ /dev/null @@ -1,90 +0,0 @@ -package cn.iocoder.yudao.module.system.service.usertenant; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantRespVO; -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantPageReqVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantSaveReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.usertenant.UserTenantDO; -import jakarta.validation.Valid; - -import java.util.List; - -/** - * 用户-租户关系 Service 接口 - * - * @author 管理员 - */ -public interface UserTenantService { - - /** - * 创建用户-租户关系 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createUserTenant(@Valid UserTenantSaveReqVO createReqVO); - - /** - * 更新用户-租户关系 - * - * @param updateReqVO 更新信息 - */ - void updateUserTenant(@Valid UserTenantSaveReqVO updateReqVO); - - /** - * 删除用户-租户关系 - * - * @param id 编号 - */ - void deleteUserTenant(Long id); - - /** - * 批量删除用户-租户关系 - * - * @param ids 编号 - */ - void deleteUserTenantListByIds(List ids); - - /** - * 获得用户-租户关系 - * - * @param id 编号 - * @return 用户-租户关系 - */ - UserTenantDO getUserTenant(Long id); - - /** - * 获得用户-租户关系分页 - * - * @param pageReqVO 分页查询 - * @return 用户-租户关系分页 - */ - PageResult getUserTenantPage(UserTenantPageReqVO pageReqVO); - - /** - * 获得用户-租户关系列表 - * - * @param pageReqVO 列表查询 - * @return 用户-租户关系列表 - */ - List getUserTenantList(UserTenantPageReqVO pageReqVO); - - /** - * 获得用户 simpleList 列表 !!!注意,此方法查询的用户列表,包含了租户下属租户的所有用户 - * @return 用户列表(只含 id、nickname) - */ - List getUserBelongSimpleList(); - - /** - * 获得租户 simpleList 列表 - * @return 租户列表(只含 id、name) - */ - List getTenantBelongSimpleList(); - /** - * 未关联组织机构租户 simpleList 查询接口 列表 - * @return 租户列表(只含 id、name) - */ - List getIndependentTenantSimpleList(); - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantServiceImpl.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantServiceImpl.java deleted file mode 100644 index 97a86ff6..00000000 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/usertenant/UserTenantServiceImpl.java +++ /dev/null @@ -1,224 +0,0 @@ -package cn.iocoder.yudao.module.system.service.usertenant; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.security.core.LoginUser; -import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantRespVO; -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantPageReqVO; -import cn.iocoder.yudao.module.system.controller.admin.usertenant.vo.UserTenantSaveReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; -import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; -import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; -import cn.iocoder.yudao.module.system.dal.dataobject.usertenant.UserTenantDO; -import cn.iocoder.yudao.module.system.dal.mysql.dept.DeptMapper; -import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantMapper; -import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; -import cn.iocoder.yudao.module.system.dal.mysql.usertenant.UserTenantMapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import java.util.*; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; -import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; - -/** - * 用户-租户关系 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class UserTenantServiceImpl implements UserTenantService { - - @Resource - private UserTenantMapper userTenantMapper; - @Resource - private AdminUserMapper adminUserMapper; - @Resource - private TenantMapper tenantMapper; - @Resource - private DeptMapper deptMapper; - - @Override - public Long createUserTenant(UserTenantSaveReqVO createReqVO) { - // 插入 - UserTenantDO userTenant = BeanUtils.toBean(createReqVO, UserTenantDO.class); - userTenantMapper.insert(userTenant); - // 返回 - return userTenant.getId(); - } - - @Override - public void updateUserTenant(UserTenantSaveReqVO updateReqVO) { - // 校验存在 - validateUserTenantExists(updateReqVO.getId()); - // 更新 - UserTenantDO updateObj = BeanUtils.toBean(updateReqVO, UserTenantDO.class); - userTenantMapper.updateById(updateObj); - } - - @Override - public void deleteUserTenant(Long id) { - // 校验存在 - validateUserTenantExists(id); - // 删除 - userTenantMapper.deleteById(id); - } - - @Override - public void deleteUserTenantListByIds(List ids) { - // 校验存在 - validateUserTenantExists(ids); - // 删除 - userTenantMapper.deleteByIds(ids); - } - - private void validateUserTenantExists(List ids) { - List list = userTenantMapper.selectByIds(ids); - if (CollUtil.isEmpty(list) || list.size() != ids.size()) { - throw exception(USER_TENANT_NOT_EXISTS); - } - } - - private void validateUserTenantExists(Long id) { - if (userTenantMapper.selectById(id) == null) { - throw exception(USER_TENANT_NOT_EXISTS); - } - } - - @Override - public UserTenantDO getUserTenant(Long id) { - return userTenantMapper.selectById(id); - } - - @Override - public PageResult getUserTenantPage(UserTenantPageReqVO pageReqVO) { - return userTenantMapper.selectPage(pageReqVO); - } - - @Override - public List getUserTenantList(UserTenantPageReqVO pageReqVO) { - return userTenantMapper.selectList(new LambdaQueryWrapper() - .eq(pageReqVO.getUserId() != null, UserTenantDO::getUserId, pageReqVO.getUserId()) - .eq(pageReqVO.getTenantId() != null, UserTenantDO::getTenantId, pageReqVO.getTenantId())); - } - - /** - * 根据当前租户ID获取租户部门 - */ - private DeptDO getTenantDeptOrThrow() { - LoginUser loginUser = getLoginUser(); - if (loginUser == null) { - throw exception(USER_NOT_EXISTS); - } - Long tenantId = loginUser.getTenantId(); - if (tenantId == null) { - throw exception(TENANT_NOT_EXISTS); - } - DeptDO deptDO = deptMapper.selectByTenantIdAndIsTenant(tenantId); - if (deptDO == null) { - throw exception(TENANT_NOT_EXISTS); - } - return deptDO; - } - - /** - * 获取当前租户组织及其所有下属组织ID(包含自身) - */ - private List getTenantAndSubDeptIds(Long tenantDeptId) { - List deptIds = new ArrayList<>(); - deptIds.add(tenantDeptId); - List children = getAllSubDepts(tenantDeptId); - for (DeptDO child : children) { - deptIds.add(child.getId()); - } - return deptIds; - } - - /** - * 查询当前租户组织机构及其所有下属组织下的所有启用用户 - */ - @Override - public List getUserBelongSimpleList() { - DeptDO tenantDept = getTenantDeptOrThrow(); - List deptIds = getTenantAndSubDeptIds(tenantDept.getId()); - // 查询这些组织下的所有用户 - List userList = adminUserMapper.selectListByDeptIds(deptIds); - List result = new ArrayList<>(); - for (AdminUserDO user : userList) { - if (CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus())) { - UserSimpleRespVO vo = new UserSimpleRespVO(); - vo.setId(user.getId()); - vo.setNickname(user.getNickname()); -// vo.setUsername(user.getUsername()); - result.add(vo); - } - } - return result; - } - - /** - * 查询所有启用状态的组织机构(不限制 isTenant),支持多层嵌套(中间可有非租户组织)。 - * 返回所有启用状态的组织及其 parentId,便于前端递归组装树状结构。 - */ - @Override - public List getTenantBelongSimpleList() { - DeptDO tenantDept = getTenantDeptOrThrow(); - List children = getAllSubDepts(tenantDept.getId()); - Set tenantIdsSets = convertSet(children, DeptDO::getTenantId, DeptDO::getIsTenant); - // 添加自身的租户ID - tenantIdsSets.add(tenantDept.getTenantId()); - List tenants = tenantMapper.selectByIds(tenantIdsSets); - return BeanUtils.toBean(tenants, TenantRespVO.class); - } - - /** - * 未关联组织机构租户 simpleList 查询接口 列表 - * - * @return 租户列表(只含 id、name) - */ - @Override - public List getIndependentTenantSimpleList() { - // 查询所有已关联组织的租户 - List bondDepts = deptMapper.selectList(DeptDO::getIsTenant, true); - Set tenantIdSet = convertSet(bondDepts,DeptDO::getTenantId); - // 查询 not in tenantIdSet 的租户信息 - List bondTenants = tenantMapper.selectList(new LambdaQueryWrapperX().in(TenantDO::getId, tenantIdSet)); - List tenants = tenantMapper.selectList(new LambdaQueryWrapperX().notIn(TenantDO::getId, tenantIdSet)); - List result = BeanUtils.toBean(tenants, TenantRespVO.class); - // 不可选择的下拉 - List notOptionalResult = BeanUtils.toBean(bondTenants, TenantRespVO.class); - notOptionalResult.forEach(notOptional -> notOptional.setOptional(false)); - result.addAll(notOptionalResult); - return result; - } - - /** - * 递归获取所有下属部门(不含自身) - */ - private List getAllSubDepts(Long parentId) { - List result = new ArrayList<>(); - Queue queue = new LinkedList<>(); - queue.add(parentId); - while (!queue.isEmpty()) { - Long pid = queue.poll(); - List children = deptMapper.selectListByParentId(Collections.singleton(pid)); - if (CollUtil.isNotEmpty(children)) { - result.addAll(children); - for (DeptDO child : children) { - queue.add(child.getId()); - } - } - } - return result; - } -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-server/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java b/yudao-module-system/yudao-module-system-server/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java index 03f78b4c..c5311872 100644 --- a/yudao-module-system/yudao-module-system-server/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-server/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java @@ -81,7 +81,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { assertPojoEquals(accessTokenDO, dbAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted"); assertEquals(userId, accessTokenDO.getUserId()); assertEquals(userType, accessTokenDO.getUserType()); - assertEquals(2, accessTokenDO.getUserInfo().size()); + assertEquals(3, accessTokenDO.getUserInfo().size()); assertEquals(user.getNickname(), accessTokenDO.getUserInfo().get("nickname")); assertEquals(user.getDeptId().toString(), accessTokenDO.getUserInfo().get("deptId")); assertEquals(clientId, accessTokenDO.getClientId()); @@ -93,7 +93,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { assertPojoEquals(accessTokenDO, redisAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted"); // 断言刷新令牌 OAuth2RefreshTokenDO refreshTokenDO = oauth2RefreshTokenMapper.selectList().get(0); - assertPojoEquals(accessTokenDO, refreshTokenDO, "id", "expiresTime", "createTime", "updateTime", "deleted"); + assertPojoEquals(accessTokenDO, refreshTokenDO, "id", "expiresTime", "createTime", "updateTime", "deleted", "tenantId"); assertFalse(DateUtils.isExpired(refreshTokenDO.getExpiresTime())); } @@ -183,7 +183,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。 assertPojoEquals(newAccessTokenDO, dbAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted"); assertPojoEquals(newAccessTokenDO, refreshTokenDO, "id", "expiresTime", "createTime", "updateTime", "deleted", - "creator", "updater"); + "creator", "updater", "tenantId"); assertFalse(DateUtils.isExpired(newAccessTokenDO.getExpiresTime())); // 断言,新的访问令牌的缓存 OAuth2AccessTokenDO redisAccessTokenDO = oauth2AccessTokenRedisDAO.get(newAccessTokenDO.getAccessToken());