Merge remote-tracking branch 'origin/feature/REQ-2227' into feature/REQ-2227
This commit is contained in:
commit
ebed487c99
@ -1,12 +1,15 @@
|
|||||||
package cn.axzo.tyr.client.feign;
|
package cn.axzo.tyr.client.feign;
|
||||||
|
|
||||||
|
import cn.axzo.framework.domain.web.result.ApiListResult;
|
||||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||||
|
import cn.axzo.tyr.client.model.req.ChangeGroupLeaderRoleReq;
|
||||||
import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq;
|
import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq;
|
||||||
import cn.axzo.tyr.client.model.req.QueryRoleByNameReq;
|
import cn.axzo.tyr.client.model.req.QueryRoleByNameReq;
|
||||||
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
||||||
|
import cn.axzo.tyr.client.model.res.RoleTreeRes;
|
||||||
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
||||||
import cn.axzo.tyr.client.model.req.ChangeGroupLeaderRoleReq;
|
import cn.axzo.tyr.client.model.req.TreeRoleReq;
|
||||||
import cn.axzo.tyr.client.model.res.IsSuperAdminRes;
|
import cn.axzo.tyr.client.model.res.IsSuperAdminRes;
|
||||||
import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
||||||
import cn.axzo.tyr.client.model.res.QueryRoleByNameResp;
|
import cn.axzo.tyr.client.model.res.QueryRoleByNameResp;
|
||||||
@ -140,4 +143,13 @@ public interface TyrSaasRoleApi {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("api/saasRole/changeGroupLeaderRole")
|
@PostMapping("api/saasRole/changeGroupLeaderRole")
|
||||||
ApiResult<Void> changeGroupLeaderRole(@RequestBody @Valid List<ChangeGroupLeaderRoleReq> req);
|
ApiResult<Void> changeGroupLeaderRole(@RequestBody @Valid List<ChangeGroupLeaderRoleReq> req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询角色树
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/api/saasRole/tree")
|
||||||
|
ApiListResult<RoleTreeRes> treeSaasRole(@RequestBody @Valid TreeRoleReq req);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
package cn.axzo.tyr.client.model.req;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class TreeRoleReq {
|
||||||
|
|
||||||
|
private Boolean needRole;
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package cn.axzo.tyr.client.model.res;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RoleTreeRes {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根节点的code
|
||||||
|
*/
|
||||||
|
private String workspaceTypeCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名字
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型:ROLE_GROUP(分组)、ROLE(角色)、ROOT(根节点)
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否显示
|
||||||
|
*/
|
||||||
|
private Boolean isDisplay;
|
||||||
|
|
||||||
|
private List<RoleTreeRes> children;
|
||||||
|
}
|
||||||
@ -66,4 +66,8 @@ public class SaasRoleGroupVO {
|
|||||||
|
|
||||||
private Date updateAt;
|
private Date updateAt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级分组id
|
||||||
|
*/
|
||||||
|
private Long parentId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,6 +101,10 @@
|
|||||||
<artifactId>maokai-api</artifactId>
|
<artifactId>maokai-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.axzo.pokonyan</groupId>
|
||||||
|
<artifactId>pokonyan</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|||||||
@ -1,14 +1,20 @@
|
|||||||
package cn.axzo.tyr.server.controller.role;
|
package cn.axzo.tyr.server.controller.role;
|
||||||
|
|
||||||
import cn.axzo.basics.common.exception.ServiceException;
|
import cn.axzo.basics.common.exception.ServiceException;
|
||||||
|
import cn.axzo.framework.domain.web.result.ApiListResult;
|
||||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||||
import cn.axzo.tyr.client.feign.TyrSaasRoleApi;
|
import cn.axzo.tyr.client.feign.TyrSaasRoleApi;
|
||||||
|
import cn.axzo.tyr.client.model.req.ChangeGroupLeaderRoleReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.CommonDictQueryReq;
|
||||||
import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq;
|
import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq;
|
||||||
import cn.axzo.tyr.client.model.req.QueryRoleByNameReq;
|
import cn.axzo.tyr.client.model.req.QueryRoleByNameReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||||
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
||||||
|
import cn.axzo.tyr.client.model.res.RoleTreeRes;
|
||||||
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
||||||
import cn.axzo.tyr.client.model.req.ChangeGroupLeaderRoleReq;
|
import cn.axzo.tyr.client.model.req.TreeRoleReq;
|
||||||
|
import cn.axzo.tyr.client.model.res.CommonDictResp;
|
||||||
import cn.axzo.tyr.client.model.res.IsSuperAdminRes;
|
import cn.axzo.tyr.client.model.res.IsSuperAdminRes;
|
||||||
import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
||||||
import cn.axzo.tyr.client.model.res.QueryRoleByNameResp;
|
import cn.axzo.tyr.client.model.res.QueryRoleByNameResp;
|
||||||
@ -16,20 +22,34 @@ import cn.axzo.tyr.client.model.res.RoleWithUserRes;
|
|||||||
import cn.axzo.tyr.client.model.vo.SaasRoleAndGroupVO;
|
import cn.axzo.tyr.client.model.vo.SaasRoleAndGroupVO;
|
||||||
import cn.axzo.tyr.client.model.vo.SaasRoleCategoryVO;
|
import cn.axzo.tyr.client.model.vo.SaasRoleCategoryVO;
|
||||||
import cn.axzo.tyr.client.model.vo.SaasRoleGroupCodeVO;
|
import cn.axzo.tyr.client.model.vo.SaasRoleGroupCodeVO;
|
||||||
|
import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO;
|
||||||
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
||||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO;
|
import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO;
|
||||||
import cn.axzo.tyr.server.model.PermissionCacheKey;
|
import cn.axzo.tyr.server.model.PermissionCacheKey;
|
||||||
|
import cn.axzo.tyr.server.repository.dao.SaasRoleGroupRelationDao;
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
||||||
|
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||||
|
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||||
import cn.axzo.tyr.server.service.PermissionCacheService;
|
import cn.axzo.tyr.server.service.PermissionCacheService;
|
||||||
import cn.axzo.tyr.server.service.RoleService;
|
import cn.axzo.tyr.server.service.RoleService;
|
||||||
|
import cn.axzo.tyr.server.service.SaasCommonDictService;
|
||||||
|
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
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.BooleanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限
|
* 权限
|
||||||
@ -49,6 +69,17 @@ public class SaasRoleController implements TyrSaasRoleApi {
|
|||||||
PermissionCacheService permissionCacheService;
|
PermissionCacheService permissionCacheService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SaasRoleUserRelationDao saasRoleUserRelationDao;
|
private SaasRoleUserRelationDao saasRoleUserRelationDao;
|
||||||
|
@Autowired
|
||||||
|
private SaasCommonDictService saasCommonDictService;
|
||||||
|
@Autowired
|
||||||
|
private SaasRoleGroupService saasRoleGroupService;
|
||||||
|
@Autowired
|
||||||
|
private SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色组里面parentId = 0
|
||||||
|
*/
|
||||||
|
private static final Long ROOT_ROLE_GROUP_PARENT_ID = 0L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResult<Long> saveOrUpdate(SaveOrUpdateRoleVO saveOrUpdateRole) {
|
public ApiResult<Long> saveOrUpdate(SaveOrUpdateRoleVO saveOrUpdateRole) {
|
||||||
@ -133,4 +164,135 @@ public class SaasRoleController implements TyrSaasRoleApi {
|
|||||||
roleService.changeGroupLeaderRole(reqs);
|
roleService.changeGroupLeaderRole(reqs);
|
||||||
return ApiResult.ok();
|
return ApiResult.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ApiListResult<RoleTreeRes> treeSaasRole(TreeRoleReq req) {
|
||||||
|
|
||||||
|
// 因为根节点在roleGroup里面没有,都是workspaceTypeCode,描述是放在字典表里
|
||||||
|
List<CommonDictResp> commonDicts = listRootRole();
|
||||||
|
|
||||||
|
List<RoleTreeRes> roots = commonDicts.stream()
|
||||||
|
.map(e -> RoleTreeRes.builder()
|
||||||
|
.workspaceTypeCode(e.getDictCode())
|
||||||
|
.name(e.getDictValue())
|
||||||
|
.type("ROOT")
|
||||||
|
.build())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Map<String, List<RoleTreeRes>> roleGroups = listRoleGroupTree(commonDicts, req);
|
||||||
|
|
||||||
|
List<RoleTreeRes> result = roots.stream()
|
||||||
|
.peek(root -> root.setChildren(roleGroups.get(root.getWorkspaceTypeCode())))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
return ApiListResult.ok(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询角色
|
||||||
|
* Map<角色分组Id, List<RoleTreeRes>>
|
||||||
|
* @param roleGroups
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Map<Long, List<RoleTreeRes>> listRole(List<SaasRoleGroupVO> roleGroups,
|
||||||
|
TreeRoleReq req) {
|
||||||
|
|
||||||
|
List<Long> roleGroupIds = roleGroups.stream().map(SaasRoleGroupVO::getId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtils.isEmpty(roleGroupIds) || BooleanUtils.isNotTrue(req.getNeedRole())) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SaasRoleGroupRelation> saasRoleGroupRelations = saasRoleGroupRelationDao.getByGroupIds(roleGroupIds);
|
||||||
|
|
||||||
|
Map<Long, SaasRole> saasRoles = roleService.list(RoleService.ListSaasRoleParam.builder()
|
||||||
|
.roleIds(Lists.transform(saasRoleGroupRelations, SaasRoleGroupRelation::getRoleId))
|
||||||
|
.build())
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toMap(SaasRole::getId, Function.identity()));
|
||||||
|
|
||||||
|
return saasRoleGroupRelations.stream()
|
||||||
|
.collect(Collectors.groupingBy(SaasRoleGroupRelation::getSaasRoleGroupId))
|
||||||
|
.entrySet()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue()
|
||||||
|
.stream()
|
||||||
|
.map(value -> toRoleTree(saasRoles.get(value.getRoleId())))
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList())));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, List<RoleTreeRes>> listRoleGroupTree(List<CommonDictResp> commonDicts,
|
||||||
|
TreeRoleReq req) {
|
||||||
|
if (CollectionUtils.isEmpty(commonDicts)) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SaasRoleGroupVO> roleGroups = saasRoleGroupService.getList(QuerySaasRoleGroupReq.builder()
|
||||||
|
.workspaceTypeCode(Lists.transform(commonDicts, CommonDictResp::getDictCode))
|
||||||
|
.build())
|
||||||
|
.stream()
|
||||||
|
.sorted(Comparator.comparing(SaasRoleGroupVO::getSort))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Map<Long, List<RoleTreeRes>> roles = listRole(roleGroups, req);
|
||||||
|
|
||||||
|
Map<String, List<RoleTreeRes>> rootRoleGroups = roleGroups.stream()
|
||||||
|
.filter(e -> Objects.equals(e.getParentId(), ROOT_ROLE_GROUP_PARENT_ID))
|
||||||
|
.collect(Collectors.groupingBy(SaasRoleGroupVO::getWorkspaceTypeCode,
|
||||||
|
LinkedHashMap::new,
|
||||||
|
Collectors.mapping(this::toRoleTree, Collectors.toList())));
|
||||||
|
|
||||||
|
rootRoleGroups.values().forEach(e -> e.forEach(root -> appendChildren(root, roleGroups, roles)));
|
||||||
|
|
||||||
|
return rootRoleGroups;
|
||||||
|
}
|
||||||
|
|
||||||
|
private RoleTreeRes toRoleTree(SaasRoleGroupVO roleGroup) {
|
||||||
|
return RoleTreeRes.builder()
|
||||||
|
.workspaceTypeCode(roleGroup.getWorkspaceTypeCode())
|
||||||
|
.id(roleGroup.getId())
|
||||||
|
.name(roleGroup.getName())
|
||||||
|
.type("ROLE_GROUP")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private RoleTreeRes toRoleTree(SaasRole role) {
|
||||||
|
if (role == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return RoleTreeRes.builder()
|
||||||
|
.id(role.getId())
|
||||||
|
.name(role.getName())
|
||||||
|
.type("ROLE")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void appendChildren(RoleTreeRes rootRoleGroup,
|
||||||
|
List<SaasRoleGroupVO> roleGroups,
|
||||||
|
Map<Long, List<RoleTreeRes>> roles) {
|
||||||
|
if (rootRoleGroup == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 因为children可能是role或者roleGroup
|
||||||
|
List<RoleTreeRes> childrenRoleGroups = roleGroups.stream()
|
||||||
|
.filter(p -> Objects.equals(p.getParentId(), rootRoleGroup.getId()))
|
||||||
|
.map(this::toRoleTree)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<RoleTreeRes> childrenRoles = roles.get(rootRoleGroup.getId());
|
||||||
|
if (CollectionUtils.isNotEmpty(childrenRoles)) {
|
||||||
|
childrenRoleGroups.addAll(childrenRoles);
|
||||||
|
}
|
||||||
|
|
||||||
|
rootRoleGroup.setChildren(childrenRoleGroups);
|
||||||
|
|
||||||
|
childrenRoleGroups.forEach(e -> appendChildren(e, roleGroups, roles));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<CommonDictResp> listRootRole() {
|
||||||
|
return saasCommonDictService.query(CommonDictQueryReq.builder()
|
||||||
|
.scope("role")
|
||||||
|
.build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,11 @@ package cn.axzo.tyr.server.repository.entity;
|
|||||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -19,6 +22,9 @@ import java.io.Serializable;
|
|||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public class SaasRoleGroup extends BaseEntity<SaasRoleGroup> implements Serializable {
|
public class SaasRoleGroup extends BaseEntity<SaasRoleGroup> implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 972205950455439772L;
|
private static final long serialVersionUID = 972205950455439772L;
|
||||||
@ -69,6 +75,10 @@ public class SaasRoleGroup extends BaseEntity<SaasRoleGroup> implements Serializ
|
|||||||
*/
|
*/
|
||||||
private String categoryCode;
|
private String categoryCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级分组id
|
||||||
|
*/
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取主键值
|
* 获取主键值
|
||||||
|
|||||||
@ -1,8 +1,15 @@
|
|||||||
package cn.axzo.tyr.server.service;
|
package cn.axzo.tyr.server.service;
|
||||||
|
|
||||||
import cn.axzo.framework.domain.page.PageResp;
|
import cn.axzo.framework.domain.page.PageResp;
|
||||||
|
import cn.axzo.pokonyan.dao.page.IPageParam;
|
||||||
|
import cn.axzo.pokonyan.dao.wrapper.CriteriaField;
|
||||||
|
import cn.axzo.pokonyan.dao.wrapper.Operator;
|
||||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||||
import cn.axzo.tyr.client.model.req.*;
|
import cn.axzo.tyr.client.model.req.ChangeGroupLeaderRoleReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.QueryRoleByNameReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleReq;
|
||||||
|
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
||||||
import cn.axzo.tyr.client.model.res.IsSuperAdminRes;
|
import cn.axzo.tyr.client.model.res.IsSuperAdminRes;
|
||||||
import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
||||||
import cn.axzo.tyr.client.model.res.QueryRoleByNameResp;
|
import cn.axzo.tyr.client.model.res.QueryRoleByNameResp;
|
||||||
@ -16,6 +23,12 @@ import cn.axzo.tyr.server.model.RoleWithFeature;
|
|||||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
||||||
import cn.axzo.tyr.server.service.impl.TyrSaasAuthServiceImpl;
|
import cn.axzo.tyr.server.service.impl.TyrSaasAuthServiceImpl;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -27,7 +40,7 @@ import java.util.Set;
|
|||||||
* @author: ZhanSiHu
|
* @author: ZhanSiHu
|
||||||
* @date: 2023/9/6 15:51
|
* @date: 2023/9/6 15:51
|
||||||
*/
|
*/
|
||||||
public interface RoleService {
|
public interface RoleService extends IService<SaasRole> {
|
||||||
|
|
||||||
|
|
||||||
List<SaasRoleVO> queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId, Boolean includePermissionGroup);
|
List<SaasRoleVO> queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId, Boolean includePermissionGroup);
|
||||||
@ -103,5 +116,38 @@ public interface RoleService {
|
|||||||
/** 查询超管和管理员角色 **/
|
/** 查询超管和管理员角色 **/
|
||||||
List<SaasRole> listAdmins(Long workspaceId, Long ouId);
|
List<SaasRole> listAdmins(Long workspaceId, Long ouId);
|
||||||
|
|
||||||
|
List<SaasRole> list(ListSaasRoleParam param);
|
||||||
|
|
||||||
|
Page<SaasRole> page(PageSaasRoleParam param);
|
||||||
|
|
||||||
|
@SuperBuilder
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
class ListSaasRoleParam {
|
||||||
|
|
||||||
|
@CriteriaField(field = "id", operator = Operator.IN)
|
||||||
|
private List<Long> roleIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuperBuilder
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
class PageSaasRoleParam extends ListSaasRoleParam implements IPageParam {
|
||||||
|
@CriteriaField(ignore = true)
|
||||||
|
Integer page;
|
||||||
|
|
||||||
|
@CriteriaField(ignore = true)
|
||||||
|
Integer pageSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序:使用示例,createTime__DESC
|
||||||
|
*/
|
||||||
|
@CriteriaField(ignore = true)
|
||||||
|
List<String> sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<RoleWithFeature> listWithFeatures(Set<Long> roleIds, Set<Long> featureIds);
|
List<RoleWithFeature> listWithFeatures(Set<Long> roleIds, Set<Long> featureIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,51 @@
|
|||||||
package cn.axzo.tyr.server.service;
|
package cn.axzo.tyr.server.service;
|
||||||
|
|
||||||
|
import cn.axzo.pokonyan.dao.page.IPageParam;
|
||||||
|
import cn.axzo.pokonyan.dao.wrapper.CriteriaField;
|
||||||
|
import cn.axzo.pokonyan.dao.wrapper.Operator;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface SaasRoleGroupRelationService {
|
public interface SaasRoleGroupRelationService extends IService<SaasRoleGroupRelation> {
|
||||||
void saveOrUpdate(List<SaasRoleGroupRelation> relations);
|
void saveOrUpdate(List<SaasRoleGroupRelation> relations);
|
||||||
|
|
||||||
|
List<SaasRoleGroupRelation> list(ListSaasRoleGroupRelationParam param);
|
||||||
|
|
||||||
|
Page<SaasRoleGroupRelation> page(PageSaasRoleGroupRelationParam param);
|
||||||
|
|
||||||
|
@SuperBuilder
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
class ListSaasRoleGroupRelationParam {
|
||||||
|
|
||||||
|
@CriteriaField(field = "roleId", operator = Operator.IN)
|
||||||
|
private List<Long> roleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuperBuilder
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
class PageSaasRoleGroupRelationParam extends ListSaasRoleGroupRelationParam implements IPageParam {
|
||||||
|
@CriteriaField(ignore = true)
|
||||||
|
Integer page;
|
||||||
|
|
||||||
|
@CriteriaField(ignore = true)
|
||||||
|
Integer pageSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序:使用示例,createTime__DESC
|
||||||
|
*/
|
||||||
|
@CriteriaField(ignore = true)
|
||||||
|
List<String> sort;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
|||||||
import cn.axzo.basics.common.exception.ServiceException;
|
import cn.axzo.basics.common.exception.ServiceException;
|
||||||
import cn.axzo.framework.domain.page.PageResp;
|
import cn.axzo.framework.domain.page.PageResp;
|
||||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||||
|
import cn.axzo.pokonyan.dao.converter.PageConverter;
|
||||||
|
import cn.axzo.pokonyan.dao.mysql.QueryWrapperHelper;
|
||||||
import cn.axzo.tyr.client.common.enums.RoleResourceTypeEnum;
|
import cn.axzo.tyr.client.common.enums.RoleResourceTypeEnum;
|
||||||
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
|
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
|
||||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||||
@ -45,6 +47,7 @@ import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
|||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
||||||
|
import cn.axzo.tyr.server.repository.mapper.SaasRoleMapper;
|
||||||
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.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
||||||
@ -56,13 +59,16 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
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.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
@ -93,7 +99,8 @@ import java.util.stream.Stream;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RefreshScope
|
@RefreshScope
|
||||||
@Service
|
@Service
|
||||||
public class RoleServiceImpl implements RoleService {
|
public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
|
||||||
|
implements RoleService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
SaasRoleUserRelationDao roleUserRelationDao;
|
SaasRoleUserRelationDao roleUserRelationDao;
|
||||||
@ -1003,4 +1010,22 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SaasRole> list(ListSaasRoleParam param) {
|
||||||
|
return PageConverter.drainAll(pageNumber -> {
|
||||||
|
PageSaasRoleParam pageParam = PageSaasRoleParam.builder().build();
|
||||||
|
BeanUtils.copyProperties(param, pageParam);
|
||||||
|
pageParam.setPage(pageNumber);
|
||||||
|
pageParam.setPageSize(500);
|
||||||
|
return page(pageParam);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<SaasRole> page(PageSaasRoleParam param) {
|
||||||
|
QueryWrapper<SaasRole> wrapper = QueryWrapperHelper.fromBean(param, SaasRole.class);
|
||||||
|
wrapper.eq("is_delete", 0);
|
||||||
|
return this.page(PageConverter.convertToMybatis(param, SaasRole.class), wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -99,14 +100,26 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic
|
|||||||
// 新增时候
|
// 新增时候
|
||||||
if (req.getId() == null) {
|
if (req.getId() == null) {
|
||||||
baseResource.setCreateBy(req.getOperatorId());
|
baseResource.setCreateBy(req.getOperatorId());
|
||||||
|
baseResource.setDisplayOrder(0);
|
||||||
|
List<SaasFeatureResource> parallelResources = featureResourceDao.lambdaQuery().eq(SaasFeatureResource::getParentId, req.getParentId()).list();
|
||||||
|
if (CollectionUtil.isNotEmpty(parallelResources)) {
|
||||||
|
SaasFeatureResource maxOrderResource = parallelResources.stream().max(Comparator.comparingInt(SaasFeatureResource::getDisplayOrder)).orElse(new SaasFeatureResource());
|
||||||
|
baseResource.setDisplayOrder(maxOrderResource.getDisplayOrder() + 1);
|
||||||
|
}
|
||||||
newResource(baseResource);
|
newResource(baseResource);
|
||||||
} else {
|
} else {
|
||||||
featureResourceDao.updateById(baseResource);
|
featureResourceDao.updateById(baseResource);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(req.getComponentSaveReqList())) {
|
if (CollectionUtil.isNotEmpty(req.getComponentSaveReqList())) {
|
||||||
for (FeatureComponentSaveReq componentSaveReq : req.getComponentSaveReqList()) {
|
List<FeatureComponentSaveReq> components = req.getComponentSaveReqList();
|
||||||
saveOrUpdateFeatureComponent(componentSaveReq, baseResource.getPath(), req.getOperatorId());
|
for (int i = 0; i < components.size(); i++) {
|
||||||
|
FeatureComponentSaveReq childComponent = components.get(i);
|
||||||
|
if (childComponent.getParentId() != null) {
|
||||||
|
childComponent.setParentId(baseResource.getId());
|
||||||
|
}
|
||||||
|
// 递归新增修改删除子节点
|
||||||
|
saveOrUpdateFeatureComponent(childComponent, baseResource.getPath(), req.getOperatorId(), i);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
deleteComponentRecursionById(baseResource.getId(), null, req.getOperatorId());
|
deleteComponentRecursionById(baseResource.getId(), null, req.getOperatorId());
|
||||||
@ -122,10 +135,11 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveOrUpdateFeatureComponent(FeatureComponentSaveReq featureComponentSaveReq, String parentPath, Long operatorId) {
|
private void saveOrUpdateFeatureComponent(FeatureComponentSaveReq featureComponentSaveReq, String parentPath, Long operatorId, Integer displayOrder) {
|
||||||
// 批量保存path
|
// 批量保存path
|
||||||
SaasFeatureResource saasFeatureResource = BeanMapper.copyBean(featureComponentSaveReq, SaasFeatureResource.class);
|
SaasFeatureResource saasFeatureResource = BeanMapper.copyBean(featureComponentSaveReq, SaasFeatureResource.class);
|
||||||
saasFeatureResource.setUpdateBy(operatorId);
|
saasFeatureResource.setUpdateBy(operatorId);
|
||||||
|
saasFeatureResource.setDisplayOrder(displayOrder);
|
||||||
if (saasFeatureResource.getId() != null) {
|
if (saasFeatureResource.getId() != null) {
|
||||||
featureResourceDao.updateById(saasFeatureResource);
|
featureResourceDao.updateById(saasFeatureResource);
|
||||||
} else {
|
} else {
|
||||||
@ -141,12 +155,13 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic
|
|||||||
|
|
||||||
// 更新前端提交的数据;
|
// 更新前端提交的数据;
|
||||||
if (!CollectionUtil.isEmpty(children)) {
|
if (!CollectionUtil.isEmpty(children)) {
|
||||||
for (FeatureComponentSaveReq childComponent : children) {
|
for (int i = 0; i < children.size(); i++) {
|
||||||
|
FeatureComponentSaveReq childComponent = children.get(i);
|
||||||
if (childComponent.getParentId() != null) {
|
if (childComponent.getParentId() != null) {
|
||||||
childComponent.setParentId(saasFeatureResource.getId());
|
childComponent.setParentId(saasFeatureResource.getId());
|
||||||
}
|
}
|
||||||
// 递归新增修改删除子节点
|
// 递归新增修改删除子节点
|
||||||
saveOrUpdateFeatureComponent(childComponent, saasFeatureResource.getPath(), operatorId);
|
saveOrUpdateFeatureComponent(childComponent, saasFeatureResource.getPath(), operatorId, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,6 +180,7 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic
|
|||||||
for (SaasFeatureResource deleteChild : deleteChildren) {
|
for (SaasFeatureResource deleteChild : deleteChildren) {
|
||||||
// 删除自己及自己的子集
|
// 删除自己及自己的子集
|
||||||
featureResourceDao.lambdaUpdate()
|
featureResourceDao.lambdaUpdate()
|
||||||
|
.eq(BaseEntity::getIsDelete,0)
|
||||||
.apply("FIND_IN_SET('" + deleteChild.getId() + "', path)")
|
.apply("FIND_IN_SET('" + deleteChild.getId() + "', path)")
|
||||||
.set(SaasFeatureResource::getUpdateBy, operatorId)
|
.set(SaasFeatureResource::getUpdateBy, operatorId)
|
||||||
.set(BaseEntity::getIsDelete,1);
|
.set(BaseEntity::getIsDelete,1);
|
||||||
|
|||||||
@ -1,12 +1,19 @@
|
|||||||
package cn.axzo.tyr.server.service.impl;
|
package cn.axzo.tyr.server.service.impl;
|
||||||
|
|
||||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
import cn.axzo.pokonyan.dao.converter.PageConverter;
|
||||||
|
import cn.axzo.pokonyan.dao.mysql.QueryWrapperHelper;
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasRoleGroupRelationDao;
|
import cn.axzo.tyr.server.repository.dao.SaasRoleGroupRelationDao;
|
||||||
|
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||||
|
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupRelationMapper;
|
||||||
import cn.axzo.tyr.server.service.SaasRoleGroupRelationService;
|
import cn.axzo.tyr.server.service.SaasRoleGroupRelationService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
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.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -17,7 +24,8 @@ import java.util.stream.Collectors;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SaasRoleGroupRelationServiceImpl implements SaasRoleGroupRelationService {
|
public class SaasRoleGroupRelationServiceImpl extends ServiceImpl<SaasRoleGroupRelationMapper, SaasRoleGroupRelation>
|
||||||
|
implements SaasRoleGroupRelationService {
|
||||||
private final SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
private final SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -42,4 +50,23 @@ public class SaasRoleGroupRelationServiceImpl implements SaasRoleGroupRelationSe
|
|||||||
saasRoleGroupRelationDao.removeByIds(deleteList.stream().map(SaasRoleGroupRelation::getId).collect(Collectors.toList()));
|
saasRoleGroupRelationDao.removeByIds(deleteList.stream().map(SaasRoleGroupRelation::getId).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SaasRoleGroupRelation> list(ListSaasRoleGroupRelationParam param) {
|
||||||
|
return PageConverter.drainAll(pageNumber -> {
|
||||||
|
PageSaasRoleGroupRelationParam pageParam = PageSaasRoleGroupRelationParam.builder().build();
|
||||||
|
BeanUtils.copyProperties(param, pageParam);
|
||||||
|
pageParam.setPage(pageNumber);
|
||||||
|
pageParam.setPageSize(500);
|
||||||
|
return page(pageParam);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<SaasRoleGroupRelation> page(PageSaasRoleGroupRelationParam param) {
|
||||||
|
QueryWrapper<SaasRoleGroupRelation> wrapper = QueryWrapperHelper.fromBean(param, SaasRoleGroupRelation.class);
|
||||||
|
wrapper.eq("is_delete", 0);
|
||||||
|
|
||||||
|
return this.page(PageConverter.convertToMybatis(param, SaasRoleGroupRelation.class), wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -156,6 +156,7 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
|||||||
saasRoleGroup.setSort(req.getSort());
|
saasRoleGroup.setSort(req.getSort());
|
||||||
saasRoleGroup.setWorkspaceId(req.getWorkspaceId() != null ? req.getWorkspaceId() : -1L);
|
saasRoleGroup.setWorkspaceId(req.getWorkspaceId() != null ? req.getWorkspaceId() : -1L);
|
||||||
saasRoleGroup.setOuId(req.getOuId() != null ? req.getOuId() : -1L);
|
saasRoleGroup.setOuId(req.getOuId() != null ? req.getOuId() : -1L);
|
||||||
|
saasRoleGroup.setParentId(req.getParentId());
|
||||||
return saasRoleGroup;
|
return saasRoleGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user