实现接口:角色通用查询接口
This commit is contained in:
parent
c670da3c8a
commit
b2a18a7776
@ -23,6 +23,16 @@ public class QuerySaasRoleReq {
|
|||||||
*/
|
*/
|
||||||
private String roleType;
|
private String roleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作台类型编码
|
||||||
|
*/
|
||||||
|
private List<String> workspaceTypeCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位类型编码
|
||||||
|
*/
|
||||||
|
private List<String> ouTypeCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分组id
|
* 分组id
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -63,7 +63,7 @@ public class SaasRoleVO {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public List<PermissionPointTreeNode> getFeature(){
|
public List<PermissionPointTreeNode> getFeature(){
|
||||||
return permissionGroup.stream().map(SaasPermissionGroupVO::getFeature).flatMap(List::stream).collect(Collectors.toList());
|
return this.permissionGroup.stream().map(SaasPermissionGroupVO::getFeature).flatMap(List::stream).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,7 +46,7 @@ public class SaasRoleController implements SaasRoleApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiListResult<SaasRoleVO> query(QuerySaasRoleReq req) {
|
public ApiListResult<SaasRoleVO> query(QuerySaasRoleReq req) {
|
||||||
return null;
|
return ApiListResult.ok(roleService.query(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -27,13 +27,13 @@ public class SaasRoleGroup extends BaseEntity<SaasRoleGroup> implements Serializ
|
|||||||
* 工作台类型字典code
|
* 工作台类型字典code
|
||||||
*/
|
*/
|
||||||
@TableField("workspace_type_code")
|
@TableField("workspace_type_code")
|
||||||
private Long workspaceTypeCode;
|
private String workspaceTypeCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单位类型字典code
|
* 单位类型字典code
|
||||||
*/
|
*/
|
||||||
@TableField("ou_type_code")
|
@TableField("ou_type_code")
|
||||||
private Long ouTypeCode;
|
private String ouTypeCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 名称
|
* 名称
|
||||||
|
|||||||
@ -1,14 +1,46 @@
|
|||||||
package cn.axzo.tyr.server.repository.service;
|
package cn.axzo.tyr.server.repository.service;
|
||||||
|
|
||||||
|
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||||
|
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||||
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||||
|
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||||
import cn.axzo.tyr.server.repository.mapper.SaasPgroupRoleRelationMapper;
|
import cn.axzo.tyr.server.repository.mapper.SaasPgroupRoleRelationMapper;
|
||||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public class SaasRoleGroupDao extends ServiceImpl<SaasRoleGroupMapper, SaasRoleGroup> {
|
public class SaasRoleGroupDao extends ServiceImpl<SaasRoleGroupMapper, SaasRoleGroup> {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
SaasRoleGroupMapper mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用查询
|
||||||
|
*/
|
||||||
|
public List<SaasRoleGroup> query(QuerySaasRoleGroupReq req) {
|
||||||
|
// 构建单位类型查询条件json数组
|
||||||
|
StringBuilder condition = new StringBuilder();
|
||||||
|
if (CollectionUtils.isNotEmpty(req.getOuTypeCode())) {
|
||||||
|
condition = new StringBuilder();
|
||||||
|
for (String value : req.getOuTypeCode()) {
|
||||||
|
condition.append(" FIND_IN_SET('" + value + "', ou_type_code) OR");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this.lambdaQuery()
|
||||||
|
.in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId,req.getIds())
|
||||||
|
.in(CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()),SaasRoleGroup::getWorkspaceTypeCode,req.getWorkspaceTypeCode())
|
||||||
|
.last(CollectionUtils.isNotEmpty(req.getOuTypeCode())," AND (" + condition.substring(0, condition.length() - 2) + ")")
|
||||||
|
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package cn.axzo.tyr.server.service;
|
package cn.axzo.tyr.server.service;
|
||||||
|
|
||||||
import cn.axzo.framework.domain.web.result.ApiListResult;
|
import cn.axzo.framework.domain.web.result.ApiListResult;
|
||||||
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
||||||
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -16,4 +17,6 @@ public interface RoleService {
|
|||||||
|
|
||||||
|
|
||||||
List<SaasRoleVO> queryByIdentityIdType(Long identityId, Integer identityType);
|
List<SaasRoleVO> queryByIdentityIdType(Long identityId, Integer identityType);
|
||||||
|
|
||||||
|
List<SaasRoleVO> query(QuerySaasRoleReq req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,20 +4,20 @@ import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
|||||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
||||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
||||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||||
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
import cn.axzo.tyr.server.repository.entity.*;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
import cn.axzo.tyr.server.repository.service.*;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
|
||||||
import cn.axzo.tyr.server.repository.service.SaasPgroupRoleRelationDao;
|
|
||||||
import cn.axzo.tyr.server.repository.service.SaasRoleDao;
|
|
||||||
import cn.axzo.tyr.server.repository.service.SaasRoleUserRelationDao;
|
|
||||||
import cn.axzo.tyr.server.service.PermissionGroupService;
|
import cn.axzo.tyr.server.service.PermissionGroupService;
|
||||||
import cn.axzo.tyr.server.service.RoleService;
|
import cn.axzo.tyr.server.service.RoleService;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -44,11 +44,26 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
PermissionGroupService permissionGroupService;
|
PermissionGroupService permissionGroupService;
|
||||||
@Autowired
|
@Autowired
|
||||||
SaasPgroupRoleRelationDao permissionGroupRelation;
|
SaasPgroupRoleRelationDao permissionGroupRelation;
|
||||||
|
@Autowired
|
||||||
|
SaasRoleGroupDao saasRoleGroupDao;
|
||||||
|
@Autowired
|
||||||
|
SaasRoleGroupRelationDao roleGroupRelationDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SaasRoleVO> queryByIdentityIdType(Long identityId, Integer identityType) {
|
public List<SaasRoleVO> queryByIdentityIdType(Long identityId, Integer identityType) {
|
||||||
// 查询人关联的角色id
|
// 查询人关联的角色id
|
||||||
List<Long> roleIds = roleUserRelationDao.queryByIdentityIdType(identityId, identityType).stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList());
|
List<Long> roleIds = roleUserRelationDao.queryByIdentityIdType(identityId, identityType).stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtils.isEmpty(roleIds)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
return getByIds(roleIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id查询权限详情包含权限组合权限集(底层基础方法)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<SaasRoleVO> getByIds(List<Long> roleIds) {
|
||||||
if (CollectionUtils.isEmpty(roleIds)) {
|
if (CollectionUtils.isEmpty(roleIds)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
@ -74,7 +89,7 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
return roles.stream().map(role -> {
|
return roles.stream().map(role -> {
|
||||||
// 获取对应的权限集
|
// 获取对应的权限集
|
||||||
List<SaasPermissionGroupVO> pGroup = new ArrayList<>();
|
List<SaasPermissionGroupVO> pGroup = new ArrayList<>();
|
||||||
if(finalPgrouRelationMap != null && finalPgrouRelationMap.containsKey(role.getId())) {
|
if (finalPgrouRelationMap != null && finalPgrouRelationMap.containsKey(role.getId())) {
|
||||||
pGroup = finalPgrouRelationMap.get(role.getId())
|
pGroup = finalPgrouRelationMap.get(role.getId())
|
||||||
.stream()
|
.stream()
|
||||||
.map(SaasPgroupRoleRelation::getGroupId)
|
.map(SaasPgroupRoleRelation::getGroupId)
|
||||||
@ -89,6 +104,43 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用查询
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<SaasRoleVO> query(QuerySaasRoleReq req) {
|
||||||
|
// 根据工作台类型和单位类型查询角色分组 todo 验空值和 1,12 数组匹配问题,传1只有一个结果返回
|
||||||
|
List<SaasRoleGroup> roleGroup = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()) || CollectionUtils.isNotEmpty(req.getOuTypeCode())) {
|
||||||
|
roleGroup = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder()
|
||||||
|
.ids(req.getSassRoleGroupIds())
|
||||||
|
.workspaceTypeCode(req.getWorkspaceTypeCode())
|
||||||
|
.ouTypeCode(req.getOuTypeCode())
|
||||||
|
.build());
|
||||||
|
if (CollectionUtils.isEmpty(roleGroup)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 根据角色分组查询角色分组关联表
|
||||||
|
List<SaasRoleGroupRelation> groupRelation = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isNotEmpty(roleGroup)) {
|
||||||
|
groupRelation = roleGroupRelationDao.lambdaQuery()
|
||||||
|
.in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroup.stream().map(BaseEntity::getId).collect(Collectors.toList()))
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
// 查询角色
|
||||||
|
List<SaasRole> list = saasRoleDao.lambdaQuery()
|
||||||
|
.in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds())
|
||||||
|
.in(CollectionUtils.isNotEmpty(groupRelation), BaseEntity::getId, groupRelation.stream().map(SaasRoleGroupRelation::getRoleId).collect(Collectors.toList()))
|
||||||
|
.eq(StringUtils.isNotBlank(req.getRoleType()),SaasRole::getRoleType,req.getRoleType())
|
||||||
|
.orderByDesc(BaseEntity::getId)
|
||||||
|
.list();
|
||||||
|
return getByIds(list.stream().map(BaseEntity::getId).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据角色id查询权限集关联关系
|
* 根据角色id查询权限集关联关系
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user