diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java index 1aeb1884..130bd8c2 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.client.feign; +import cn.axzo.basics.common.page.PageRequest; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp; @@ -68,4 +70,8 @@ public interface TyrSaasRoleUserApi { @PostMapping("/api/saas-role-user/batch-super-admin-list") ApiResult> batchSuperAdminList(@RequestBody @Valid List param); + /** 分页查询角色用户数据 多条件 最大分页100**/ + @PostMapping("/api/saas-role-user/page") + ApiPageResult pageQuery(@RequestBody @Valid RoleUserParam param); + } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/RoleUserParam.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/RoleUserParam.java index 312670cc..22dc33af 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/RoleUserParam.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/RoleUserParam.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.client.model.roleuser.req; +import cn.axzo.basics.common.page.PageRequest; import cn.axzo.tyr.client.model.enums.IdentityType; import lombok.AllArgsConstructor; import lombok.Builder; @@ -16,7 +17,7 @@ import java.util.Set; @Builder @AllArgsConstructor @NoArgsConstructor -public class RoleUserParam { +public class RoleUserParam extends PageRequest { /** * 工作台id */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java index 84d43554..c941ff53 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.controller.roleuser; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; @@ -75,4 +76,9 @@ public class RoleUserController implements TyrSaasRoleUserApi { } return ApiResult.ok(saasRoleUserService.batchSuperAdminList(param)); } + + @Override + public ApiPageResult pageQuery(RoleUserParam param) { + return ApiPageResult.ok(saasRoleUserRelationService.pageQuery(param)); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java index bbab71d6..b757d02d 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.service; +import cn.axzo.framework.domain.page.PageResp; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; @@ -11,4 +12,6 @@ import java.util.List; */ public interface SaasRoleUserRelationService { List list(RoleUserParam param); + + PageResp pageQuery(RoleUserParam param); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java index c980d89c..71721883 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java @@ -1,6 +1,8 @@ package cn.axzo.tyr.server.service.impl; +import cn.axzo.basics.common.BeanMapper; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; +import cn.axzo.framework.domain.page.PageResp; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; @@ -11,6 +13,9 @@ import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation; import cn.axzo.tyr.server.service.SaasRoleUserRelationService; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -39,16 +44,8 @@ public class SaasRoleUserRelationServiceImpl implements SaasRoleUserRelationServ @Override public List list(RoleUserParam param) { // TODO jhy 角色查询 需要验证标准角色和自定义角色的查询逻辑 - List saasRoleUserRelations = saasRoleUserRelationDao.lambdaQuery() - .eq(Objects.nonNull(param.getIdentityId()), SaasRoleUserRelation::getIdentityId, param.getIdentityId()) - .eq(Objects.nonNull(param.getIdentityType()), SaasRoleUserRelation::getIdentityType, param.getIdentityType()) - .eq(Objects.nonNull(param.getWorkspaceId()), SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId()) - .eq(Objects.nonNull(param.getOuId()), SaasRoleUserRelation::getOuId, param.getOuId()) - .in(CollectionUtil.isNotEmpty(param.getRoleIds()), SaasRoleUserRelation::getRoleId, param.getRoleIds()) - .in(CollectionUtil.isNotEmpty(param.getIdentityIds()), SaasRoleUserRelation::getIdentityId, param.getIdentityIds()) - .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) - .last("LIMIT 1000") - .list(); + LambdaQueryChainWrapper wrapper = buildWrapper(param); + List saasRoleUserRelations = wrapper.last("LIMIT 1000").list(); if (CollectionUtil.isEmpty(saasRoleUserRelations)) { return Collections.emptyList(); } @@ -66,4 +63,34 @@ public class SaasRoleUserRelationServiceImpl implements SaasRoleUserRelationServ return userRole; }).collect(Collectors.toList()); } + + private LambdaQueryChainWrapper buildWrapper(RoleUserParam param) { + return saasRoleUserRelationDao.lambdaQuery() + .eq(Objects.nonNull(param.getIdentityId()), SaasRoleUserRelation::getIdentityId, param.getIdentityId()) + .eq(Objects.nonNull(param.getIdentityType()), SaasRoleUserRelation::getIdentityType, param.getIdentityType()) + .eq(Objects.nonNull(param.getWorkspaceId()), SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId()) + .eq(Objects.nonNull(param.getOuId()), SaasRoleUserRelation::getOuId, param.getOuId()) + .in(CollectionUtil.isNotEmpty(param.getRoleIds()), SaasRoleUserRelation::getRoleId, param.getRoleIds()) + .in(CollectionUtil.isNotEmpty(param.getIdentityIds()), SaasRoleUserRelation::getIdentityId, param.getIdentityIds()) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value); + } + + @Override + public PageResp pageQuery(RoleUserParam param) { + //限制分页100 + if (param.getPageSize() != null && param.getPageSize().compareTo(200L) > 0) { + param.setPageSize(100L); + } + //查询条件构造 - ID升序 + LambdaQueryChainWrapper wrapper = buildWrapper(param) + .orderByAsc(SaasRoleUserRelation::getId); + IPage page = wrapper.page(param.toPage()); + if (CollectionUtil.isEmpty(page.getRecords())) { + return PageResp.zero(param.getPage(), param.getPageSize()); + } + List list = page.getRecords().stream() + .map(r -> BeanMapper.copyBean(r, SaasRoleUserDTO.class)) + .collect(Collectors.toList()); + return PageResp.list(param.getPage(), param.getPageSize(), page.getTotal(), list); + } }