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(), () -> {