From 6e0f41e661125159522a334f9fdfd38862b4621e Mon Sep 17 00:00:00 2001 From: ziin Date: Tue, 18 Nov 2025 19:21:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E6=96=B0=E5=A2=9E=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E7=A7=9F=E6=88=B7=E6=9F=A5=E8=AF=A2=E4=B8=8B=E5=B1=9E?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=88=86=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/tenant/TenantController.java | 12 ++++++++++++ .../admin/tenant/vo/tenant/TenantPageReqVO.java | 3 +++ .../admin/tenant/vo/tenant/TenantRespVO.java | 2 ++ .../system/dal/dataobject/tenant/TenantDO.java | 10 ++++++++++ .../system/dal/mysql/tenant/TenantMapper.java | 14 ++++++++++++++ .../system/service/tenant/TenantService.java | 1 + .../system/service/tenant/TenantServiceImpl.java | 9 +++++++++ 7 files changed, 51 insertions(+) diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java index 76c3b52..edde75d 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java @@ -124,4 +124,16 @@ public class TenantController { BeanUtils.toBean(list, TenantRespVO.class)); } + +// 以下是控制代理租户的租户查询 +// ---------------------------------------------------------------------------------- + + @GetMapping("/page_self") + @Operation(summary = "代理获得自己下属租户分页") + @PreAuthorize("@ss.hasPermission('system:tenant:query-self')") + public CommonResult> getSelfTenantPage(@Valid TenantPageReqVO pageVO) { + PageResult pageResult = tenantService.getSelfTenantPage(pageVO); + return success(BeanUtils.toBean(pageResult, TenantRespVO.class)); + } + } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java index 73a177c..5fcca5b 100755 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java @@ -47,4 +47,7 @@ public class TenantPageReqVO extends PageParam { @Schema private String remark; + + @Schema(description = "父租户Id") + private Long parentId; } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java index 44b4c0b..72d28d8 100755 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java @@ -64,4 +64,6 @@ public class TenantRespVO { @Schema(description = "备注", example = "备注") private String remark; + @Schema(description = "上级租户 Id", example = "1024") + private Long parentId; } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java index 15085f1..d998f96 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java @@ -87,7 +87,17 @@ public class TenantDO extends BaseDO { /** * 账号数量 */ + private Integer accountCount; + /** + * 上级租户 Id + */ + private Long parentId; + + /** + * 备注 + */ + private String remark; } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java index 6cf149d..9d54788 100755 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java @@ -63,4 +63,18 @@ public interface TenantMapper extends BaseMapperX { } + default PageResult selectSelfPage(TenantPageReqVO reqVO){ + return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(TenantDO::getParentId, reqVO.getParentId()) + .likeIfPresent(TenantDO::getName, reqVO.getName()) + .likeIfPresent(TenantDO::getContactName, reqVO.getContactName()) + .likeIfPresent(TenantDO::getContactMobile, reqVO.getContactMobile()) + .eqIfPresent(TenantDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(TenantDO::getCreateTime, reqVO.getCreateTime()) + .betweenIfPresent(TenantDO::getAiExpireTime, reqVO.getAiExpireTime()) + .betweenIfPresent(TenantDO::getExpireTime, reqVO.getExpireTime()) + .betweenIfPresent(TenantDO::getBrotherExpireTime, reqVO.getBrotherExpireTime()) + .likeIfPresent(TenantDO::getRemark, reqVO.getRemark()) + .orderByDesc(TenantDO::getId)); + } } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java index 96af6bc..e77b15e 100755 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java @@ -135,4 +135,5 @@ public interface TenantService { */ void validTenant(Long id); + PageResult getSelfTenantPage(@Valid TenantPageReqVO pageVO); } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java index 956b957..2f1fffa 100755 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java @@ -95,6 +95,13 @@ public class TenantServiceImpl implements TenantService { } } + @Override + public PageResult getSelfTenantPage(TenantPageReqVO pageVO) { + Long tenantId = TenantContextHolder.getTenantId(); + pageVO.setParentId(tenantId); + return tenantMapper.selectSelfPage(pageVO); + } + @Override @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 @DataPermission(enable = false) // 参见 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1154 说明 @@ -108,6 +115,8 @@ public class TenantServiceImpl implements TenantService { // 创建租户 TenantDO tenant = BeanUtils.toBean(createReqVO, TenantDO.class); + Long tenantId = TenantContextHolder.getTenantId(); + tenant.setParentId(tenantId); tenantMapper.insert(tenant); // 创建租户的管理员 TenantUtils.execute(tenant.getId(), () -> {