refactor(role-query): 改变角色查询逻辑
This commit is contained in:
parent
24f30d7fd2
commit
707e748a64
@ -25,5 +25,5 @@ public class RoleWithUserQueryReq extends PageRequest {
|
||||
private Long workspaceId;
|
||||
|
||||
/** 企业工作台参建类型 **/
|
||||
private List<Integer> workspaceJoinType;
|
||||
private Integer workspaceJoinType;
|
||||
}
|
||||
|
||||
@ -4,10 +4,13 @@ import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleMapper;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@ -90,5 +93,9 @@ public class SaasRoleDao extends ServiceImpl<SaasRoleMapper, SaasRole> {
|
||||
.eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
}
|
||||
|
||||
public Page<SaasRole> pageQueryForOUWorkspace(RoleWithUserQueryReq req) {
|
||||
IPage<SaasRole> page = new Page<>(req.getPage(), req.getPageSize());
|
||||
return this.baseMapper.pageQueryForOUWorkspace(page, req.getOuId(), req.getWorkspaceId(), req.getWorkspaceJoinType());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,8 @@ import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
@ -17,5 +19,7 @@ public interface SaasRoleMapper extends BaseMapper<SaasRole> {
|
||||
List<SaasRoleWithUser> listSuperAdminByWorkspace(List<Long> workspaceIds);
|
||||
|
||||
List<SaasRoleWithUser> listRoleUserByPermissionGroup(List<Long> permissionGroupIds, Set<Long> workspaceIds);
|
||||
|
||||
Page<SaasRole> pageQueryForOUWorkspace(IPage<SaasRole> page, Long ouId, Long workspaceId, Integer workspaceJoinType);
|
||||
}
|
||||
|
||||
|
||||
@ -454,12 +454,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
public PageResp<RoleWithUserRes> queryRoleWithUser(RoleWithUserQueryReq req) {
|
||||
page2Default(req);
|
||||
//按role进行分页查询 -
|
||||
Page<SaasRole> rolePage = saasRoleDao
|
||||
.page(new Page<>(req.getPage(), req.getPageSize()),
|
||||
new LambdaQueryWrapper<SaasRole>()
|
||||
.eq(SaasRole::getOwnerOuId, req.getOuId())
|
||||
.eq(SaasRole::getWorkspaceId, req.getWorkspaceId())
|
||||
.eq(SaasRole::getRoleType, RoleTypeEnum.COMMON.getValue()));
|
||||
Page<SaasRole> rolePage = saasRoleDao.pageQueryForOUWorkspace(req);
|
||||
if (CollectionUtil.isEmpty(rolePage.getRecords())) {
|
||||
return PageResp.list(req.getPage(), req.getPageSize(), 0L, Collections.emptyList());
|
||||
}
|
||||
|
||||
@ -90,4 +90,20 @@
|
||||
|
||||
</select>
|
||||
|
||||
<select id="pageQueryForOUWorkspace" resultType="cn.axzo.tyr.server.repository.entity.SaasRole">
|
||||
SELECT
|
||||
r.*
|
||||
FROM
|
||||
saas_role r
|
||||
LEFT JOIN saas_role_group_relation rg ON r.id = rg.role_id
|
||||
LEFT JOIN saas_role_group g ON rg.saas_role_group_id = g.id
|
||||
WHERE
|
||||
r.is_delete = 0
|
||||
AND (
|
||||
( r.workspace_id = #{workspaceId} AND r.owner_ou_id = #{ouId} AND r.role_type = 'common' )
|
||||
OR
|
||||
( r.owner_ou_id = - 1 AND FIND_IN_SET( #{workspaceJoinType},g.ou_type_code) > 0)
|
||||
)
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -10,8 +10,11 @@ import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
||||
import cn.axzo.tyr.client.model.res.RoleWithUserRes;
|
||||
import cn.axzo.tyr.server.controller.role.SaasRoleController;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@ -36,6 +39,9 @@ public class RoleUserTest {
|
||||
@Autowired
|
||||
private SaasRoleController controller;
|
||||
|
||||
@Autowired
|
||||
private SaasRoleDao saasRoleDao;
|
||||
|
||||
@Test
|
||||
public void testList() {
|
||||
saasRoleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder()
|
||||
@ -59,5 +65,17 @@ public class RoleUserTest {
|
||||
System.out.println(JSON.toJSONString(result));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPageQueryForOUWorkspace() {
|
||||
RoleWithUserQueryReq req = new RoleWithUserQueryReq();
|
||||
req.setOuId(5195L);
|
||||
req.setWorkspaceId(371L);
|
||||
req.setWorkspaceJoinType(2);
|
||||
req.setPage(1L);
|
||||
req.setPageSize(20L);
|
||||
Page<SaasRole> page = saasRoleDao.pageQueryForOUWorkspace(req);
|
||||
System.out.println(JSON.toJSONString(page));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user