Merge remote-tracking branch 'origin/feature/REQ-1102' into feature/REQ-1102
This commit is contained in:
commit
70777f0e99
7
integration-test/src/test/resources/reponse-check.js
Normal file
7
integration-test/src/test/resources/reponse-check.js
Normal file
@ -0,0 +1,7 @@
|
||||
client.test("request executed successful", function () {
|
||||
client.assert(response.status == 200, "Response status is not 200")
|
||||
});
|
||||
|
||||
client.test("response body status successful", function () {
|
||||
client.assert(response.body.code == 0, "Response body code is not 0")
|
||||
});
|
||||
8
integration-test/src/test/resources/rest-client.env.json
Normal file
8
integration-test/src/test/resources/rest-client.env.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"local": {
|
||||
"host": "http://localhost:8080"
|
||||
},
|
||||
"dev": {
|
||||
"host": "https://dev-app.axzo.cn/msg-center/webApi/message/"
|
||||
}
|
||||
}
|
||||
13
integration-test/src/test/resources/role-user.http
Normal file
13
integration-test/src/test/resources/role-user.http
Normal file
@ -0,0 +1,13 @@
|
||||
###
|
||||
POST {{host}}/api/saas-role-user/list
|
||||
Accept: application/json
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
> reponse-check.js
|
||||
|
||||
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
package cn.axzo.tyr.server.common.enums;
|
||||
package cn.axzo.tyr.client.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
@ -3,7 +3,9 @@ package cn.axzo.tyr.client.feign;
|
||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.DeletePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdatePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SavePermissionGroupPPVO;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@ -20,10 +22,10 @@ import java.util.List;
|
||||
public interface SaasPermissionGroupApi {
|
||||
|
||||
/**
|
||||
* 保存/更新
|
||||
* 保存/更新 例外
|
||||
*/
|
||||
@PostMapping("/api/saasPermissionGoup/saveOrUpdate")
|
||||
ApiResult<Void> saveOrUpdate(@RequestBody SaasPermissionGroupVO req);
|
||||
@PostMapping("/api/saasPermissionGoup/saveOrUpdateSpecial")
|
||||
ApiResult<Long> saveOrUpdateSpecial(@RequestBody @Valid SaveOrUpdatePermissionGroupVO permissionGroup);
|
||||
|
||||
/**
|
||||
* 根据id查询详情
|
||||
@ -47,4 +49,7 @@ public interface SaasPermissionGroupApi {
|
||||
|
||||
@PostMapping("/api/saasPermissionGoup/savePermissionPoints")
|
||||
ApiResult<Void> savePermissionPoints(@RequestBody@Valid SavePermissionGroupPPVO save);
|
||||
|
||||
@PostMapping("/api/saasPermissionGoup/deletePermissionGroupSpecial")
|
||||
ApiResult<Void> deletePermissionGroupSpecial(@RequestBody @Valid DeletePermissionGroupVO group);
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -21,7 +22,7 @@ public interface SaasRoleGroupApi {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saasRoleGroup/save")
|
||||
ApiResult saveOrUpdate(@RequestBody SaasRoleGroupVO req);
|
||||
ApiResult<Long> saveOrUpdate(@RequestBody SaasRoleGroupVO req);
|
||||
|
||||
/**
|
||||
* 获取权限分组列表
|
||||
@ -37,7 +38,6 @@ public interface SaasRoleGroupApi {
|
||||
* 删除
|
||||
*/
|
||||
@PostMapping("/api/saasRoleGroup//api/saasPermissionGoup/delete")
|
||||
ApiResult delete(@RequestBody List<Long> id);
|
||||
|
||||
ApiResult<Void> delete(@RequestBody@NotEmpty List<Long> ids);
|
||||
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -27,7 +28,7 @@ public interface TyrSaasRoleApi {
|
||||
* 如果权限列表不为空则创建通用权限
|
||||
*/
|
||||
@PostMapping("/api/saasRole/saveOrUpdate")
|
||||
ApiResult<Long> saveOrUpdate(@RequestBody SaveOrUpdateRoleVO saveOrUpdateRole);
|
||||
ApiResult<Long> saveOrUpdate(@RequestBody @Validated SaveOrUpdateRoleVO saveOrUpdateRole);
|
||||
|
||||
/**
|
||||
* 根据id查询详情
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
package cn.axzo.tyr.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 角色
|
||||
@ -20,6 +23,12 @@ public interface TyrSaasRoleUserApi {
|
||||
@PostMapping("/api/saas-role-user/save-or-update")
|
||||
ApiResult<Void> saveOrUpdate(@RequestBody @Valid RoleUserReq req);
|
||||
|
||||
|
||||
/**
|
||||
* 用户角色列表 限制1000条
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/list")
|
||||
ApiResult<List<SaasRoleUserRelationDTO>> roleUserList(@RequestBody @Valid RoleUserParam param);
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package cn.axzo.tyr.client.model.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PermissionType {
|
||||
FEATURE("feature", "功能"),
|
||||
DATA("data", "数据"),
|
||||
;
|
||||
|
||||
private String code;
|
||||
private String desc;
|
||||
|
||||
private static final Map<String, PermissionType> MAPPING = new HashMap<>();
|
||||
static {
|
||||
for (PermissionType type : PermissionType.values()) {
|
||||
MAPPING.put(type.code, type);
|
||||
}
|
||||
}
|
||||
|
||||
public static PermissionType apply(Integer code) {
|
||||
return code == null ? null :MAPPING.get(code);
|
||||
}
|
||||
}
|
||||
@ -18,12 +18,12 @@ public class QuerySaasRoleGroupReq {
|
||||
/**
|
||||
* 项目部id(不传或者传-1查询的是标准分组)
|
||||
*/
|
||||
private Long workspaceId;
|
||||
private List<Long> workspaceIds;
|
||||
|
||||
/**
|
||||
* 单位id(不传或者传-1查询的是标准分组)
|
||||
*/
|
||||
private Long ouId;
|
||||
private List<Long> ouIds;
|
||||
|
||||
/**
|
||||
* 工作台类型字典code
|
||||
|
||||
@ -0,0 +1,71 @@
|
||||
package cn.axzo.tyr.client.model.roleuser.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author haiyangjin
|
||||
* @date 2023/9/14
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SaasRoleUserRelationDTO {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 身份Id
|
||||
*/
|
||||
private Long identityId;
|
||||
|
||||
/**
|
||||
* 身份类型 1:工人 2:从业人员 3:班组长 4:运营人员 5:政务人员
|
||||
*/
|
||||
private Integer identityType;
|
||||
|
||||
/**
|
||||
* 角色Id
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 自然人Id
|
||||
*/
|
||||
private Long naturalPersonId;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
* 所属单位Id 用户在当前工作台的所属单位
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 工作台Id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 资源类型
|
||||
*/
|
||||
private Integer resourceType;
|
||||
|
||||
/**
|
||||
* 资源Id
|
||||
*/
|
||||
private Long resourceId;
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package cn.axzo.tyr.client.model.roleuser.req;
|
||||
|
||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author haiyangjin
|
||||
* @date 2023/9/14
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class RoleUserParam {
|
||||
/**
|
||||
* 工作台id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
|
||||
/**
|
||||
* personId
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 身份id
|
||||
* 传身份id的时候请带上身份类型。 身份id会重复
|
||||
*/
|
||||
private Long identityId;
|
||||
|
||||
/**
|
||||
* 身份类型
|
||||
*/
|
||||
private IdentityType identityType;
|
||||
|
||||
/**
|
||||
* role ids
|
||||
*/
|
||||
private Set<Long> roleIds;
|
||||
}
|
||||
@ -47,6 +47,7 @@ public class RoleUserReq {
|
||||
*/
|
||||
@NotNull
|
||||
private IdentityType identityType;
|
||||
|
||||
/**
|
||||
* 完整的update,所有RoleId都被更新
|
||||
*/
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.axzo.tyr.client.model.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DeletePermissionGroupVO {
|
||||
@NotNull
|
||||
private Long roleId;
|
||||
|
||||
@NotEmpty
|
||||
private List<Long> specialPermissionGroupIds;
|
||||
|
||||
@NotNull
|
||||
private Long operatorId;
|
||||
|
||||
private String operatorName;
|
||||
}
|
||||
@ -36,6 +36,16 @@ public class SaasRoleGroupVO {
|
||||
*/
|
||||
private List<Long> roleIds;
|
||||
|
||||
/**
|
||||
* 工作台id(自定义时传入)
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 单位id(自定义时传入)
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
|
||||
@ -1,13 +1,20 @@
|
||||
package cn.axzo.tyr.client.model.vo;
|
||||
|
||||
import cn.axzo.trade.datasecurity.core.annotation.control.DisableCrypt;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Data
|
||||
@ -16,47 +23,118 @@ import java.util.stream.Collectors;
|
||||
@Builder
|
||||
public class SaasRoleVO {
|
||||
|
||||
private Long id;
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 角色类型:common 普通角色 admin管理员
|
||||
*/
|
||||
private String roleType;
|
||||
/**
|
||||
* 角色类型: init 标准 common 自定义角色 admin管理员 super_admin 超管
|
||||
*/
|
||||
private String roleType;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
private Long createBy;
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
private Long updateBy;
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
* 权限组
|
||||
*/
|
||||
private List<SaasPermissionGroupVO> permissionGroup;
|
||||
/**
|
||||
* 权限组
|
||||
*/
|
||||
private List<SaasPermissionGroupVO> permissionGroup;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Long isDelete;
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Long isDelete;
|
||||
|
||||
private Date createAt;
|
||||
private Date createAt;
|
||||
|
||||
private Date updateAt;
|
||||
private Date updateAt;
|
||||
|
||||
/**
|
||||
* 获取角色对应所用的权限
|
||||
* @return
|
||||
*/
|
||||
public List<PermissionPointTreeNode> getFeature(){
|
||||
return this.permissionGroup.stream().map(SaasPermissionGroupVO::getFeature).flatMap(List::stream).distinct().collect(Collectors.toList());
|
||||
}
|
||||
/**
|
||||
* 获取角色对应所用的菜单,不管例外
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<PermissionPointTreeNode> getFeature() {
|
||||
return this.permissionGroup.stream().map(SaasPermissionGroupVO::getFeature).flatMap(List::stream).distinct().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色基于单位ID和工作台ID所匹配的所以菜单(包括通用和例外)
|
||||
* @param workspaceId
|
||||
* @param ouId
|
||||
* @return
|
||||
*/
|
||||
public List<PermissionPointTreeNode> getMatchFeature (Long workspaceId, Long ouId) {
|
||||
Set<PermissionPointTreeNode> permissionPoint = new HashSet<>();
|
||||
//例外
|
||||
group:
|
||||
for (SaasPermissionGroupVO permissionGroupVO : permissionGroup) {
|
||||
// 通用权限
|
||||
if (CollectionUtil.isEmpty(permissionGroupVO.getScopes())) {
|
||||
permissionPoint.addAll(permissionGroupVO.getFeature());
|
||||
}
|
||||
List<SaasRolePermissionScopeVO> scopes = permissionGroupVO.getScopes();
|
||||
|
||||
scope:
|
||||
for (SaasRolePermissionScopeVO scope : scopes) {
|
||||
//正选
|
||||
if (Objects.equals(scope.getType(), 1)) {
|
||||
|
||||
// 判断是否与当前工作台或者单位ID匹配
|
||||
if (scope.getScopeType().equals("workspace")
|
||||
&& match(true, permissionPoint, permissionGroupVO.getFeature(), scope.getScopeId(), workspaceId)) {
|
||||
continue group;
|
||||
}
|
||||
|
||||
if (scope.getScopeType().equals("ou")
|
||||
&& match(true, permissionPoint, permissionGroupVO.getFeature(), scope.getScopeId(), ouId)
|
||||
) {
|
||||
continue group;
|
||||
}
|
||||
|
||||
//反选
|
||||
} else if (Objects.equals(scope.getType(), 2)) {
|
||||
|
||||
// 判断是否与当前工作台或者单位ID匹配
|
||||
if (scope.getScopeType().equals("workspace")
|
||||
&& match(false, permissionPoint, permissionGroupVO.getFeature(), scope.getScopeId(), workspaceId)
|
||||
/* && !Objects.equals(scope.getScopeId(), workspaceId)
|
||||
&& permissionPoint.addAll(permissionGroupVO.getFeature())*/) {
|
||||
continue group;
|
||||
}
|
||||
|
||||
if (scope.getScopeType().equals("ou")
|
||||
&& match(false, permissionPoint, permissionGroupVO.getFeature(), scope.getScopeId(), ouId)
|
||||
/* && !Objects.equals(scope.getScopeId(), ouId)
|
||||
&& permissionPoint.addAll(permissionGroupVO.getFeature())*/) {
|
||||
continue group;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return new ArrayList<>((Collection) permissionPoint);
|
||||
}
|
||||
|
||||
private boolean match(boolean isMatch, Set<PermissionPointTreeNode> source, Collection<PermissionPointTreeNode> target, Long scopeId, Long workspaceId) {
|
||||
if (isMatch && scopeId.equals(workspaceId)) {
|
||||
source.addAll(target);
|
||||
return true;
|
||||
} else if (!isMatch && !Objects.equals(scopeId, workspaceId)) {
|
||||
source.addAll(target);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,62 @@
|
||||
package cn.axzo.tyr.client.model.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SaveOrUpdatePermissionGroupVO {
|
||||
|
||||
/**
|
||||
* 权限集id(例外)
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
@NotNull
|
||||
private Long roleId;
|
||||
/**
|
||||
* 权限集名称
|
||||
*/
|
||||
@NotBlank
|
||||
private String name;
|
||||
|
||||
private String description;
|
||||
|
||||
@NotNull
|
||||
private Long operatorId;
|
||||
|
||||
private String operatorName;
|
||||
|
||||
@NotNull
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 已选择的项目部
|
||||
*/
|
||||
@Valid
|
||||
private List<PermissionGroupScopeVO> selectedWorkspace;
|
||||
|
||||
/**
|
||||
* 已选择的单位
|
||||
*/
|
||||
@Valid
|
||||
private List<PermissionGroupScopeVO> selectedOu;
|
||||
|
||||
@Data
|
||||
public static class PermissionGroupScopeVO {
|
||||
/**
|
||||
* 选择类型 1:正选(指定组织适用) 2:反选(指定组织不适用)
|
||||
*/
|
||||
@NotNull
|
||||
private Integer type;
|
||||
/**
|
||||
* 作为范围id(workspaceId/ouId)
|
||||
*/
|
||||
@NotNull
|
||||
private Long scopeId;
|
||||
}
|
||||
|
||||
}
|
||||
@ -79,6 +79,6 @@ public class SaveOrUpdateRoleVO {
|
||||
* 项目部类型字典code
|
||||
*/
|
||||
@NotNull
|
||||
private Long workspaceTypeCode;
|
||||
private String workspaceTypeCode;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,8 +12,8 @@ public class PermissionConstant {
|
||||
/** 权限点path分隔符 **/
|
||||
public static final String FEATURE_PATH_DELIMITER = "/";
|
||||
|
||||
/** 无父级 **/
|
||||
public static final String FEATURE_NO_PARENT = "0";
|
||||
/** 无父级的parent_business_no **/
|
||||
public static final String FEATURE_TOP_BIZ_NO = "0";
|
||||
/** 顶级path **/
|
||||
public static final String FEATURE_TOP_PATH = "/0/";
|
||||
/** 权限点business_no前缀 **/
|
||||
|
||||
@ -7,11 +7,13 @@ import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.SaasPermissionGroupApi;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.DeletePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdatePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SavePermissionGroupPPVO;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupScopeDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupScopeDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.service.PermissionGroupService;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -33,8 +35,8 @@ public class SaasPermissionGroupController implements SaasPermissionGroupApi {
|
||||
private final PermissionGroupService permissionGroupService;
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> saveOrUpdate(SaasPermissionGroupVO req) {
|
||||
return null;
|
||||
public ApiResult<Long> saveOrUpdateSpecial(SaveOrUpdatePermissionGroupVO permissionGroup) {
|
||||
return ApiResult.ok(permissionGroupService.saveOrUpdateScope(permissionGroup));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -69,4 +71,10 @@ public class SaasPermissionGroupController implements SaasPermissionGroupApi {
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> deletePermissionGroupSpecial(DeletePermissionGroupVO group) {
|
||||
permissionGroupService.deletePermissionGroupSpecial(group);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -23,9 +23,8 @@ public class SaasRoleGroupController implements SaasRoleGroupApi {
|
||||
private final SaasRoleGroupService saasRoleGroupService;
|
||||
|
||||
@Override
|
||||
public ApiResult saveOrUpdate(SaasRoleGroupVO req) {
|
||||
saasRoleGroupService.saveOrUpdate(req);
|
||||
return ApiResult.ok();
|
||||
public ApiResult<Long> saveOrUpdate(SaasRoleGroupVO req) {
|
||||
return ApiResult.ok(saasRoleGroupService.saveOrUpdate(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -43,8 +42,8 @@ public class SaasRoleGroupController implements SaasRoleGroupApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult delete(List<Long> id) {
|
||||
|
||||
public ApiResult<Void> delete(List<Long> ids) {
|
||||
saasRoleGroupService.delete(ids);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,14 +2,18 @@ package cn.axzo.tyr.server.controller.roleuser;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
|
||||
import cn.axzo.tyr.server.repository.service.SaasRoleUserRelationDao;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author tanjie@axzo.cn
|
||||
@ -20,10 +24,16 @@ import javax.validation.Valid;
|
||||
@RequiredArgsConstructor
|
||||
public class RoleUserController implements TyrSaasRoleUserApi {
|
||||
private final SaasRoleUserService saasRoleUserService;
|
||||
private final SaasRoleUserRelationService saasRoleUserRelationService;
|
||||
@Override
|
||||
public ApiResult<Void> saveOrUpdate(@Valid RoleUserReq req) {
|
||||
saasRoleUserService.saveOrUpdate(req);
|
||||
return ApiResult.ok();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<SaasRoleUserRelationDTO>> roleUserList(@RequestBody @Valid RoleUserParam param) {
|
||||
return ApiResult.ok(saasRoleUserRelationService.list(param));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ package cn.axzo.tyr.server.job;
|
||||
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.*;
|
||||
import cn.axzo.tyr.server.repository.service.*;
|
||||
import cn.axzo.tyr.server.repository.dao.*;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.handler.IJobHandler;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
@ -76,12 +76,6 @@ public class OMSRoleJobHandler extends IJobHandler {
|
||||
oldRole.forEach(e -> {
|
||||
e.setWorkspaceId(-1l);
|
||||
e.setOwnerOuId(-1l);
|
||||
e.setFitOuTypeBit(-1);
|
||||
e.setFitOuNodeTypeBit(-1);
|
||||
e.setPositionTemplateId(-1l);
|
||||
e.setProjectTeamManageRoleResourceId(-1l);
|
||||
e.setFromPreRoleId(-1l);
|
||||
e.setJobCode("");
|
||||
});
|
||||
roleDao.updateBatchById(oldRole);
|
||||
// 保存角色分组关联关系
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.ProductModule;
|
||||
import cn.axzo.tyr.server.repository.mapper.ProductModuleMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
@ -17,5 +17,7 @@ public class SaasPermissionGroupDao extends ServiceImpl<SaasPermissionGroupMappe
|
||||
.set(BaseEntity::getIsDelete,id)
|
||||
.update();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupMapper;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupScopeMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@ -20,5 +21,16 @@ public class SaasPermissionGroupScopeDao extends ServiceImpl<SaasPermissionGroup
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeByIds(Collection<? extends Serializable> idList) {
|
||||
if (CollectionUtils.isEmpty(idList)) {
|
||||
return false;
|
||||
}
|
||||
return lambdaUpdate()
|
||||
.in(SaasPermissionGroupScope::getId,idList)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasProductModuleFeatureRelationMapper;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
@ -1,14 +1,10 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
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.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPgroupRoleRelationMapper;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
@ -38,6 +34,8 @@ public class SaasRoleGroupDao extends ServiceImpl<SaasRoleGroupMapper, SaasRoleG
|
||||
LambdaQueryChainWrapper<SaasRoleGroup> eq = this.lambdaQuery()
|
||||
.in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds())
|
||||
.in(CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()), SaasRoleGroup::getWorkspaceTypeCode, req.getWorkspaceTypeCode())
|
||||
.in(CollectionUtils.isNotEmpty(req.getWorkspaceIds()), SaasRoleGroup::getWorkspaceId, req.getWorkspaceIds())
|
||||
.in(CollectionUtils.isNotEmpty(req.getOuIds()), SaasRoleGroup::getOuId, req.getOuIds())
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value);
|
||||
if(CollectionUtils.isNotEmpty(req.getOuTypeCode())){
|
||||
eq.last(" AND (" + condition.substring(0, condition.length() - 2) + ")");
|
||||
@ -1,25 +1,29 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupRelationMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class SaasRoleGroupRelationDao extends ServiceImpl<SaasRoleGroupRelationMapper, SaasRoleGroupRelation> {
|
||||
|
||||
public void deleteByRoleGroupId(List<Long> roleGroupId) {
|
||||
lambdaUpdate()
|
||||
.in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroupId)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
@Override
|
||||
public boolean removeByIds(Collection<? extends Serializable> idList) {
|
||||
if (CollectionUtils.isEmpty(idList)) {
|
||||
return false;
|
||||
}
|
||||
return lambdaUpdate()
|
||||
.in(SaasRoleGroupRelation::getId,idList)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,17 +1,13 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
package cn.axzo.tyr.server.repository.dao;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.model.BaseWorkspaceModel;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleUserRelationMapper;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
@ -1,12 +1,10 @@
|
||||
package cn.axzo.tyr.server.repository.service.impl;
|
||||
package cn.axzo.tyr.server.repository.dao.impl;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasFeatureMapper;
|
||||
import cn.axzo.tyr.server.repository.service.SaasFeatureDao;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 权限集作用范围
|
||||
@ -56,5 +57,14 @@ public class SaasPermissionGroupScope extends BaseEntity<SaasPermissionGroupScop
|
||||
protected Serializable pkVal() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
SaasPermissionGroupScope that = (SaasPermissionGroupScope) o;
|
||||
return Objects.equals(pgroupId, that.pgroupId) && Objects.equals(type, that.type) && Objects.equals(scopeType, that.scopeType) && Objects.equals(scopeId, that.scopeId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -58,9 +58,8 @@ public class SaasPgroupPermissionRelation extends BaseEntity<SaasPgroupPermissio
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
if (!super.equals(o)) return false;
|
||||
SaasPgroupPermissionRelation that = (SaasPgroupPermissionRelation) o;
|
||||
return Objects.equals(groupId, that.groupId) && Objects.equals(featureId, that.featureId) && Objects.equals(isDelete, that.isDelete);
|
||||
return Objects.equals(groupId, that.groupId) && Objects.equals(featureId, that.featureId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -39,39 +39,14 @@ public class SaasRole extends BaseEntity<SaasRole> {
|
||||
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 废弃
|
||||
*/
|
||||
@Deprecated
|
||||
private Integer workspaceType;
|
||||
|
||||
private Long ownerOuId;
|
||||
|
||||
/**
|
||||
* 废弃 20230911
|
||||
*/
|
||||
private Integer fitOuTypeBit;
|
||||
|
||||
/**
|
||||
* 废弃 20230911
|
||||
*/
|
||||
private Integer fitOuNodeTypeBit;
|
||||
|
||||
/**
|
||||
* 废弃 20230911
|
||||
*/
|
||||
private Long positionTemplateId;
|
||||
|
||||
/**
|
||||
* 废弃 20230911
|
||||
*/
|
||||
private Long projectTeamManageRoleResourceId;
|
||||
|
||||
/**
|
||||
* 废弃 20230911
|
||||
*/
|
||||
private Long fromPreRoleId;
|
||||
|
||||
/**
|
||||
* 废弃 20230911
|
||||
*/
|
||||
private String jobCode;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
|
||||
@ -50,9 +50,8 @@ public class SaasRoleGroupRelation extends BaseEntity<SaasRoleGroupRelation> imp
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
if (!super.equals(o)) return false;
|
||||
SaasRoleGroupRelation that = (SaasRoleGroupRelation) o;
|
||||
return Objects.equals(roleId, that.roleId) && Objects.equals(saasRoleGroupId, that.saasRoleGroupId) && Objects.equals(isDelete, that.isDelete);
|
||||
return Objects.equals(roleId, that.roleId) && Objects.equals(saasRoleGroupId, that.saasRoleGroupId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.framework.domain.page.PageResp;
|
||||
import cn.axzo.tyr.client.model.enums.PermissionGroupType;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.DeletePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdatePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SavePermissionGroupPPVO;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -25,4 +29,14 @@ public interface PermissionGroupService {
|
||||
|
||||
void savePermissionPoints(SavePermissionGroupPPVO save);
|
||||
|
||||
/**
|
||||
* 新增或者编辑例外权限
|
||||
* @param permissionGroup
|
||||
* @return
|
||||
*/
|
||||
Long saveOrUpdateScope(SaveOrUpdatePermissionGroupVO permissionGroup);
|
||||
|
||||
SaasPermissionGroup getRequiredPermissionGroup(Long permissionGroupId, PermissionGroupType type);
|
||||
|
||||
void deletePermissionGroupSpecial(DeletePermissionGroupVO group);
|
||||
}
|
||||
|
||||
@ -27,4 +27,6 @@ public interface SaasBasicDictService {
|
||||
Boolean update(BasicDictUpdateReq req);
|
||||
|
||||
Boolean updateStauts(BasicDictUpdateStatusReq req);
|
||||
|
||||
BasicDictNodeResp getWorkspaceType(String workspaceType);
|
||||
}
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface SaasPermissionGroupScopeService {
|
||||
void saveOrUpdate(List<SaasPermissionGroupScope> scopes);
|
||||
}
|
||||
@ -8,7 +8,7 @@ import java.util.List;
|
||||
public interface SaasRoleGroupService {
|
||||
List<SaasRoleGroupVO> getList(QuerySaasRoleGroupReq req);
|
||||
|
||||
void saveOrUpdate(SaasRoleGroupVO req);
|
||||
Long saveOrUpdate(SaasRoleGroupVO req);
|
||||
|
||||
void delete(Long id);
|
||||
void delete(List<Long> ids);
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author haiyangjin
|
||||
* @date 2023/9/14
|
||||
*/
|
||||
public interface SaasRoleUserRelationService {
|
||||
List<SaasRoleUserRelationDTO> list(RoleUserParam param);
|
||||
}
|
||||
@ -1,8 +1,11 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author tanjie@axzo.cn
|
||||
@ -11,6 +14,4 @@ import javax.validation.Valid;
|
||||
public interface SaasRoleUserService {
|
||||
|
||||
void saveOrUpdate( RoleUserReq req);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -7,22 +7,16 @@ import cn.axzo.framework.domain.web.BizException;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.model.enums.PermissionGroupType;
|
||||
import cn.axzo.tyr.client.model.enums.PermissionScope;
|
||||
import cn.axzo.tyr.client.model.enums.PermissionScopeType;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRolePermissionScopeVO;
|
||||
import cn.axzo.tyr.client.model.vo.SavePermissionGroupPPVO;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupScopeDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupRoleRelationDao;
|
||||
import cn.axzo.tyr.client.model.vo.*;
|
||||
import cn.axzo.tyr.server.repository.entity.*;
|
||||
import cn.axzo.tyr.server.repository.dao.*;
|
||||
import cn.axzo.tyr.server.service.PermissionGroupService;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import cn.axzo.tyr.server.service.SaasPermissionGroupScopeService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -33,10 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -63,9 +54,23 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
SaasPermissionGroupScopeDao saasPermissionGroupScopeDao;
|
||||
@Autowired
|
||||
SaasPgroupPermissionRelationService saasPgroupPermissionRelationService;
|
||||
@Autowired
|
||||
SaasRoleDao saasRoleDao;
|
||||
@Autowired
|
||||
SaasPermissionGroupScopeService saasPermissionGroupScopeService;
|
||||
|
||||
@Override
|
||||
public List<SaasPermissionGroupVO> query(QuerySaasPermissionGroupReq req) {
|
||||
if (CollectionUtils.isEmpty(req.getWorkspaceId())) {
|
||||
req.setWorkspaceId(Arrays.asList(-1l));
|
||||
} else if(!req.getWorkspaceId().contains(-1l)){
|
||||
req.getWorkspaceId().add(-1l);
|
||||
}
|
||||
if (CollectionUtils.isEmpty(req.getOuId())) {
|
||||
req.setOuId(Arrays.asList(-1l));
|
||||
} else if (!req.getOuId().contains(-1l)) {
|
||||
req.getOuId().add(-1l);
|
||||
}
|
||||
// 如果角色id不为空则先查询角色权限集关联表
|
||||
List<SaasPgroupRoleRelation> relationList = null;
|
||||
if (CollectionUtils.isNotEmpty(req.getRoleIds())) {
|
||||
@ -237,16 +242,7 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void savePermissionPoints(SavePermissionGroupPPVO save) {
|
||||
List<SaasPermissionGroup> groups = permissionGroupDao.lambdaQuery()
|
||||
.eq(SaasPermissionGroup::getId, save.getId())
|
||||
.eq(SaasPermissionGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(groups)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不存在");
|
||||
}
|
||||
SaasPermissionGroup saasPermissionGroup = groups.get(0);
|
||||
if (!Objects.equals(saasPermissionGroup.getIsCommon(), PermissionGroupType.COMMON.getCode())) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不是通用权限集");
|
||||
}
|
||||
SaasPermissionGroup saasPermissionGroup = getRequiredPermissionGroup(save.getId(), null);
|
||||
List<SaasPgroupPermissionRelation> pgpRelations = Optional.ofNullable(save.getSelectedPPIds()).orElse(new ArrayList<>()).stream().map(ppId -> {
|
||||
SaasPgroupPermissionRelation target = new SaasPgroupPermissionRelation();
|
||||
target.setGroupId(saasPermissionGroup.getId());
|
||||
@ -257,4 +253,168 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
}).collect(Collectors.toList());
|
||||
saasPgroupPermissionRelationService.saveOrUpdate(pgpRelations);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long saveOrUpdateScope(SaveOrUpdatePermissionGroupVO permissionGroup) {
|
||||
SaasPermissionGroup saasPermissionGroup;
|
||||
validSaasPermissionGroup(permissionGroup);
|
||||
Date now = new Date();
|
||||
if (Objects.nonNull(permissionGroup.getId())) {
|
||||
saasPermissionGroup = getRequiredPermissionGroup(permissionGroup.getId(), PermissionGroupType.SPECIAL);
|
||||
} else {
|
||||
saasPermissionGroup = new SaasPermissionGroup();
|
||||
saasPermissionGroup.setCreateBy(permissionGroup.getOperatorId());
|
||||
saasPermissionGroup.setCreatorName(Optional.ofNullable(permissionGroup.getOperatorName()).orElse(""));
|
||||
saasPermissionGroup.setUpdateBy(permissionGroup.getOperatorId());
|
||||
saasPermissionGroup.setUpdatorName(Optional.ofNullable(permissionGroup.getOperatorName()).orElse(""));
|
||||
saasPermissionGroup.setIsCommon(PermissionGroupType.SPECIAL.getCode());
|
||||
saasPermissionGroup.setCreateAt(now);
|
||||
}
|
||||
saasPermissionGroup.setType(permissionGroup.getType());
|
||||
saasPermissionGroup.setName(permissionGroup.getName());
|
||||
saasPermissionGroup.setUpdateBy(permissionGroup.getOperatorId());
|
||||
saasPermissionGroup.setUpdatorName(Optional.ofNullable(permissionGroup.getOperatorName()).orElse(""));
|
||||
saasPermissionGroup.setDescription(permissionGroup.getDescription());
|
||||
saasPermissionGroup.setUpdateAt(now);
|
||||
permissionGroupDao.saveOrUpdate(saasPermissionGroup);
|
||||
if (Objects.isNull(permissionGroup.getId())) {
|
||||
SaasPgroupRoleRelation roleRelation = new SaasPgroupRoleRelation();
|
||||
roleRelation.setRoleId(permissionGroup.getRoleId());
|
||||
roleRelation.setGroupId(saasPermissionGroup.getId());
|
||||
roleRelation.setCreateBy(permissionGroup.getOperatorId());
|
||||
roleRelation.setUpdateBy(permissionGroup.getOperatorId());
|
||||
roleRelation.setCreateAt(now);
|
||||
roleRelation.setUpdateAt(now);
|
||||
roleRelationDao.save(roleRelation);
|
||||
}
|
||||
List<SaasPermissionGroupScope> scopes = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(permissionGroup.getSelectedWorkspace())) {
|
||||
scopes.addAll(permissionGroup.getSelectedWorkspace().stream().map(w -> {
|
||||
SaasPermissionGroupScope scope = new SaasPermissionGroupScope();
|
||||
scope.setPgroupId(saasPermissionGroup.getId());
|
||||
scope.setType(w.getType());
|
||||
scope.setScopeType(PermissionScopeType.WORKSPACE.getCode());
|
||||
scope.setScopeId(w.getScopeId());
|
||||
scope.setCreateAt(now);
|
||||
scope.setUpdateAt(now);
|
||||
return scope;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(permissionGroup.getSelectedOu())) {
|
||||
scopes.addAll(permissionGroup.getSelectedOu().stream().map(w -> {
|
||||
SaasPermissionGroupScope scope = new SaasPermissionGroupScope();
|
||||
scope.setPgroupId(saasPermissionGroup.getId());
|
||||
scope.setType(w.getType());
|
||||
scope.setScopeType(PermissionScopeType.OU.getCode());
|
||||
scope.setScopeId(w.getScopeId());
|
||||
scope.setCreateAt(now);
|
||||
scope.setUpdateAt(now);
|
||||
return scope;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
saasPermissionGroupScopeService.saveOrUpdate(scopes);
|
||||
return saasPermissionGroup.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SaasPermissionGroup getRequiredPermissionGroup(Long permissionGroupId, PermissionGroupType type) {
|
||||
List<SaasPermissionGroup> groups = permissionGroupDao.lambdaQuery()
|
||||
.eq(SaasPermissionGroup::getId, permissionGroupId)
|
||||
.eq(SaasPermissionGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(groups)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不存在");
|
||||
}
|
||||
SaasPermissionGroup saasPermissionGroup = groups.get(0);
|
||||
if (Objects.nonNull(type) && !Objects.equals(saasPermissionGroup.getIsCommon(), type.getCode())) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, String.format("权限集不是%s权限集", type.getDesc()));
|
||||
}
|
||||
return saasPermissionGroup;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deletePermissionGroupSpecial(DeletePermissionGroupVO group) {
|
||||
List<SaasPgroupRoleRelation> relations = roleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, group.getRoleId())
|
||||
.in(SaasPgroupRoleRelation::getGroupId, group.getSpecialPermissionGroupIds())
|
||||
.eq(SaasPgroupRoleRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不存在");
|
||||
}
|
||||
List<Long> deleteGroupIds = relations.stream().map(SaasPgroupRoleRelation::getGroupId).sorted().collect(Collectors.toList());
|
||||
List<SaasPermissionGroup> groups = permissionGroupDao.lambdaQuery()
|
||||
.in(SaasPermissionGroup::getId, deleteGroupIds)
|
||||
.eq(SaasPermissionGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (groups.stream().anyMatch(e -> !Objects.equals(e.getIsCommon(), PermissionGroupType.SPECIAL.getCode()))) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "只能删除例外权限集");
|
||||
}
|
||||
//删除角色关联
|
||||
roleRelationDao.removeByIds(relations.stream().map(SaasPgroupRoleRelation::getId).sorted().collect(Collectors.toList()));
|
||||
List<SaasPermissionGroupScope> scopes = saasPermissionGroupScopeDao.lambdaQuery().in(SaasPermissionGroupScope::getPgroupId, deleteGroupIds)
|
||||
.eq(SaasPermissionGroupScope::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isNotEmpty(scopes)) {
|
||||
// 删除例外scope
|
||||
saasPermissionGroupScopeDao.removeByIds(scopes.stream().map(SaasPermissionGroupScope::getId).sorted().collect(Collectors.toList()));
|
||||
}
|
||||
// 删除权限集
|
||||
permissionGroupDao.lambdaUpdate()
|
||||
.in(BaseEntity::getId,deleteGroupIds)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.set(BaseEntity::getUpdateAt, new Date())
|
||||
.set(SaasPermissionGroup::getUpdateBy, group.getOperatorId())
|
||||
.set(SaasPermissionGroup::getUpdatorName, group.getOperatorName())
|
||||
.update();
|
||||
}
|
||||
|
||||
private void validSaasPermissionGroup(SaveOrUpdatePermissionGroupVO permissionGroup) {
|
||||
SaasRole saasRole = saasRoleDao.getById(permissionGroup.getRoleId());
|
||||
if (Objects.isNull(saasRole)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不存在");
|
||||
}
|
||||
if (Objects.nonNull(permissionGroup.getId())) {
|
||||
int relationCount = roleRelationDao.lambdaQuery()
|
||||
.eq(SaasPgroupRoleRelation::getRoleId, permissionGroup.getRoleId())
|
||||
.eq(SaasPgroupRoleRelation::getGroupId, permissionGroup.getId())
|
||||
.eq(SaasPgroupRoleRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).count();
|
||||
if (relationCount == 0) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "角色和权限组不存在关联关系");
|
||||
}
|
||||
}
|
||||
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> selectedWorkspace = permissionGroup.getSelectedWorkspace();
|
||||
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> selectedOu = permissionGroup.getSelectedOu();
|
||||
Set<Integer> scopeTypes = new HashSet<>();
|
||||
if (CollectionUtils.isEmpty(selectedWorkspace) && CollectionUtils.isEmpty(selectedOu)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "例外不能为空");
|
||||
}
|
||||
// TODO 校验规则是产品给的吗?
|
||||
if (CollectionUtils.isNotEmpty(selectedWorkspace)) {
|
||||
Map<Integer, List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO>> selectedWorkspaceMap = selectedWorkspace.stream()
|
||||
.collect(Collectors.groupingBy(SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO::getType));
|
||||
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> includeScopes = Optional.ofNullable(selectedWorkspaceMap.get(PermissionScope.INCLUDE.getCode())).orElse(new ArrayList<>());
|
||||
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> excludeScopes = Optional.ofNullable(selectedWorkspaceMap.get(PermissionScope.EXCLUDE.getCode())).orElse(new ArrayList<>());
|
||||
if (includeScopes.size() + excludeScopes.size() != selectedWorkspace.size()) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "选择类型设置错误");
|
||||
}
|
||||
if (CollectionUtils.containsAny(includeScopes, excludeScopes)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "项目部例外设置冲突");
|
||||
}
|
||||
scopeTypes.addAll(selectedWorkspace.stream().map(SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO::getType).collect(Collectors.toSet()));
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(selectedOu)) {
|
||||
Map<Integer, List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO>> selectedOuMap = selectedOu.stream()
|
||||
.collect(Collectors.groupingBy(SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO::getType));
|
||||
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> includeScopes = Optional.ofNullable(selectedOuMap.get(PermissionScope.INCLUDE.getCode())).orElse(new ArrayList<>());
|
||||
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> excludeScopes = Optional.ofNullable(selectedOuMap.get(PermissionScope.EXCLUDE.getCode())).orElse(new ArrayList<>());
|
||||
if (includeScopes.size() + excludeScopes.size() != selectedWorkspace.size()) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "选择类型设置错误");
|
||||
}
|
||||
if (CollectionUtils.containsAny(includeScopes, excludeScopes)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "单位例外设置冲突");
|
||||
}
|
||||
scopeTypes.addAll(selectedOu.stream().map(SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO::getType).collect(Collectors.toSet()));
|
||||
}
|
||||
if (scopeTypes.size() > 1) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "例外类型不能同时指定适用与不适用");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,14 +17,14 @@ import cn.axzo.tyr.client.model.permission.PermissionPointMoveRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
|
||||
import cn.axzo.tyr.server.repository.SaasBasicDictDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.service.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import cn.axzo.tyr.server.service.SaasBasicDictService;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -32,7 +32,6 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -51,27 +50,14 @@ import static cn.axzo.tyr.server.common.constants.PermissionConstant.*;
|
||||
public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
|
||||
private final SaasFeatureDao saasFeatureDao;
|
||||
private final SaasBasicDictDao saasBasicDictDao;
|
||||
private final SaasBasicDictService saasBasicDictService;
|
||||
private final SaasPgroupPermissionRelationDao saasPgroupPermissionRelationDao;
|
||||
|
||||
@Override
|
||||
public List<PermissionPointTreeNode> listTreeNodes(PermissionPointTreeQueryReq request) {
|
||||
//条件转换 workspace --> terminal
|
||||
workspace2Terminal(request);
|
||||
//查询条件构建
|
||||
LambdaQueryWrapper<SaasFeature> queryWrapper = new LambdaQueryWrapper<SaasFeature>()
|
||||
.in(CollectionUtil.isNotEmpty(request.getTerminalList()), SaasFeature::getTerminal, request.getTerminalList());
|
||||
//查指定节点子级处理条件
|
||||
if (request.getParentId() != null && request.getParentId() != 0) {
|
||||
SaasFeature parent = this.saasFeatureDao.getById(request.getParentId());
|
||||
if (parent == null) {
|
||||
log.error("指定的父级节点不存在:{}", request.getParentId());
|
||||
throw new BizException(BaseCode.BAD_REQUEST);
|
||||
}
|
||||
//追加条件path左匹配
|
||||
queryWrapper.likeRight(SaasFeature::getPath, parent.getPath() + parent.getId() + FEATURE_PATH_DELIMITER);
|
||||
}
|
||||
|
||||
//构建查询条件
|
||||
Wrapper<SaasFeature> queryWrapper = buildQueryWrapper(request);
|
||||
List<SaasFeature> list = saasFeatureDao.list(queryWrapper);
|
||||
|
||||
//构建树形结构, 整体排序保证层级内的有序 - 优化点:构建树形结构时进行过滤
|
||||
@ -85,14 +71,19 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
List<PermissionPointTreeNode> nodesResult = filterTreeNode(request, treeList);
|
||||
|
||||
//指定parent后不需要顶级的工作台
|
||||
if (request.getParentId() != null) {
|
||||
if (request.getParentId() != null || CollectionUtil.isEmpty(nodesResult)) {
|
||||
return nodesResult;
|
||||
}
|
||||
|
||||
return buildTopNodes(nodesResult);
|
||||
}
|
||||
|
||||
private List<PermissionPointTreeNode> buildTopNodes(List<PermissionPointTreeNode> nodesResult) {
|
||||
//构建workspace-terminal工作台层级
|
||||
|
||||
//按terminal分组
|
||||
Map<String, List<PermissionPointTreeNode>> mappingNode = nodesResult.stream()
|
||||
.collect(Collectors.groupingBy(PermissionPointTreeNode::getTerminal));
|
||||
//构建workspace-terminal工作台层级
|
||||
List<BasicDictTreeResp> dictList = saasBasicDictService.getBasicDictNodeTree(BasicDictQueryReq.builder()
|
||||
.type(DictTypeFiledEnum.TERMINAL).build());
|
||||
//遍历所有workspace和terminal-构建顶层两级
|
||||
@ -101,7 +92,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
List<BasicDictTreeResp> terminals = workspace.getChildren();
|
||||
PermissionPointTreeNode workspaceNode = null;
|
||||
for (BasicDictTreeResp terminal : terminals) {
|
||||
//有对应权限点 则建立上级
|
||||
//有下级权限点 则建立上级
|
||||
List<PermissionPointTreeNode> childrenNodes = mappingNode.get(terminal.getCode());
|
||||
if (CollectionUtil.isNotEmpty(childrenNodes)) {
|
||||
PermissionPointTreeNode terminalTree = new PermissionPointTreeNode();
|
||||
@ -125,6 +116,25 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
return result;
|
||||
}
|
||||
|
||||
private Wrapper<SaasFeature> buildQueryWrapper(PermissionPointTreeQueryReq request) {
|
||||
//条件转换 workspace --> terminal
|
||||
workspace2Terminal(request);
|
||||
//查询条件构建
|
||||
LambdaQueryWrapper<SaasFeature> queryWrapper = new LambdaQueryWrapper<SaasFeature>()
|
||||
.in(CollectionUtil.isNotEmpty(request.getTerminalList()), SaasFeature::getTerminal, request.getTerminalList());
|
||||
//查指定节点子级处理条件
|
||||
if (request.getParentId() != null && request.getParentId() != 0) {
|
||||
SaasFeature parent = this.saasFeatureDao.getById(request.getParentId());
|
||||
if (parent == null) {
|
||||
log.error("指定的父级节点不存在:{}", request.getParentId());
|
||||
throw new BizException(BaseCode.BAD_REQUEST);
|
||||
}
|
||||
//追加条件path左匹配
|
||||
queryWrapper.likeRight(SaasFeature::getPath, parent.getPath() + parent.getId() + FEATURE_PATH_DELIMITER);
|
||||
}
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
private void workspace2Terminal(PermissionPointTreeQueryReq request) {
|
||||
if (CollectionUtil.isNotEmpty(request.getWorkspaceType())) {
|
||||
List<String> terminals = new ArrayList<>();
|
||||
@ -132,7 +142,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
for (String workSpaceType : request.getWorkspaceType()) {
|
||||
dictReq.setWorkspaceType(DictWorkSpaceTypeEnum.getByValue(workSpaceType));
|
||||
dictReq.setType(DictTypeFiledEnum.TERMINAL);
|
||||
List<BasicDictNodeResp> dictList = saasBasicDictDao.getBasicDictNodeList(dictReq);
|
||||
List<BasicDictNodeResp> dictList = saasBasicDictService.getBasicDictNodeList(dictReq);
|
||||
terminals.addAll(dictList.stream().map(BasicDictNodeResp::getCode).collect(Collectors.toList()));
|
||||
}
|
||||
request.setTerminalList(terminals);
|
||||
@ -195,13 +205,11 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
|
||||
@Override
|
||||
public PermissionPointVO getDetail(Long permissionId) {
|
||||
SaasFeature feature = this.saasFeatureDao.getById(permissionId);
|
||||
if (feature == null) {
|
||||
log.warn("no saasFeature found for:{}", permissionId);
|
||||
throw new BizException(BaseCode.BAD_REQUEST);
|
||||
}
|
||||
|
||||
SaasFeature feature = getAndCheck(permissionId);
|
||||
PermissionPointVO vo = BeanMapper.copyBean(feature, PermissionPointVO.class);
|
||||
vo.setFeatureTypeDesc(FeatureType.apply(vo.getFeatureType()).getDesc());
|
||||
//按位拆分适配单位类型和节点类型
|
||||
vo.applyFitOuTypeBit(feature.getFitOuTypeBit());
|
||||
vo.applyFitOuNodeTypeBit(feature.getFitOuNodeTypeBit());
|
||||
|
||||
@ -210,8 +218,8 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
BasicDictNodeReq terminalReq = new BasicDictNodeReq();
|
||||
terminalReq.setCode(feature.getTerminal());
|
||||
terminalReq.setType(DictTypeFiledEnum.TERMINAL);
|
||||
BasicDictNodeResp terminal = saasBasicDictDao.getBasicDictNode(terminalReq);
|
||||
BasicDictNodeResp workspace = saasBasicDictDao.getWorkspaceType(terminal.getWorkspaceType());
|
||||
BasicDictNodeResp terminal = saasBasicDictService.getBasicDictNode(terminalReq);
|
||||
BasicDictNodeResp workspace = saasBasicDictService.getWorkspaceType(terminal.getWorkspaceType());
|
||||
List<String> pathName = new ArrayList<>();
|
||||
pathName.add(workspace.getName());
|
||||
pathName.add(terminal.getName());
|
||||
@ -222,11 +230,12 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
vo.setPathName(pathName);
|
||||
return vo;
|
||||
}
|
||||
//查询所有父级
|
||||
List<String> split = StrUtil.split(vo.getPath(), FEATURE_PATH_DELIMITER, true, true);
|
||||
List<Long> ids = split.stream()
|
||||
.filter(x -> !StrUtil.equals(FEATURE_NO_PARENT, x))
|
||||
|
||||
//查询所有父级 - path拆分查询
|
||||
List<Long> ids = StrUtil.split(vo.getPath(), FEATURE_PATH_DELIMITER, true, true)
|
||||
.stream()
|
||||
.map(Long::valueOf)
|
||||
.filter(id -> id > 0)
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, SaasFeature> parentsMapping = this.saasFeatureDao.listByIds(ids)
|
||||
.stream()
|
||||
@ -284,23 +293,22 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
saasFeature.setFitOuNodeTypeBit(dto.mergeFitOuNodeTypeBit());
|
||||
SaasFeature parent;
|
||||
if (dto.getParentId() == null || dto.getParentId() < 1) {
|
||||
parent = new SaasFeature();
|
||||
parent.setPath(FEATURE_TOP_PATH);
|
||||
parent.setBusinessNo("0");
|
||||
//设置为0便于下面查询
|
||||
parent.setParentId(0L);
|
||||
saasFeature.setParentId(0L);
|
||||
saasFeature.setPath(FEATURE_TOP_PATH);
|
||||
saasFeature.setParentBusinessNo(FEATURE_TOP_BIZ_NO);
|
||||
} else {
|
||||
parent = this.saasFeatureDao.getById(dto.getParentId());
|
||||
saasFeature.setPath(parent.getPath() + parent.getId() + FEATURE_PATH_DELIMITER);
|
||||
saasFeature.setParentBusinessNo(parent.getBusinessNo());
|
||||
}
|
||||
//计算子节点作为sort
|
||||
|
||||
//生成biz_no
|
||||
saasFeature.setBusinessNo(FEATURE_BIZ_NO_PREFIX + System.currentTimeMillis());
|
||||
saasFeature.setParentBusinessNo(parent.getBusinessNo());
|
||||
saasFeature.setPath(parent.getPath() + parent.getId() + FEATURE_PATH_DELIMITER);
|
||||
this.saasFeatureDao.save(saasFeature);
|
||||
dto.setId(saasFeature.getId());
|
||||
dto.setBusinessNo(saasFeature.getBusinessNo());
|
||||
//调整排序 - 兼容处理老数据,数据规范化
|
||||
changeSort(saasFeature, saasFeature.getSort());
|
||||
return dto;
|
||||
}
|
||||
|
||||
@ -338,7 +346,8 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
public void move(PermissionPointMoveRequest request) {
|
||||
SaasFeature feature = getAndCheck(request.getPermissionId());
|
||||
changeParent(feature, request);
|
||||
changeSort(feature, request);
|
||||
feature.setParentId(request.getParentId());
|
||||
changeSort(feature, request.getSort());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -357,35 +366,36 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void changeSort(SaasFeature feature, PermissionPointMoveRequest request) {
|
||||
//原parent下节点排序会有缺失但无影响-不处理
|
||||
private void changeSort(SaasFeature feature, Integer targetSort) {
|
||||
//排序从1开始
|
||||
//原parent下节点排序会有缺失 - 有节点新增时进行处理
|
||||
//同terminal 同级节点
|
||||
List<SaasFeature> saasFeatures = this.saasFeatureDao.listByParentIdAndTerminal(request.getParentId(),
|
||||
List<SaasFeature> saasFeatures = this.saasFeatureDao.listByParentIdAndTerminal(feature.getParentId(),
|
||||
feature.getTerminal());
|
||||
//数据规范化
|
||||
if (targetSort == null
|
||||
|| targetSort > saasFeatures.size()) {
|
||||
//默认在最后
|
||||
targetSort = saasFeatures.size();
|
||||
}
|
||||
targetSort = targetSort < 1 ? 1 : targetSort;
|
||||
//排序并排除自己
|
||||
List<SaasFeature> sortedList = saasFeatures.stream()
|
||||
.sorted(Comparator.comparing(SaasFeature::getSort))
|
||||
.filter(x -> !x.getId().equals(feature.getId()))
|
||||
.collect(Collectors.toList());
|
||||
//将自己插入指定位置
|
||||
sortedList.add(targetSort - 1, feature);
|
||||
//记录排序
|
||||
Map<Long, Integer> sortMap = new HashMap<>();
|
||||
//插入指定位置
|
||||
sortMap.put(request.getPermissionId(), request.getSort());
|
||||
//找到需要更新排序其他节点
|
||||
AtomicInteger sort = new AtomicInteger(0);
|
||||
Integer targetSort = request.getSort();
|
||||
saasFeatures.stream()
|
||||
.sorted(Comparator.comparing(SaasFeature::getSort))
|
||||
.forEach(x -> {
|
||||
//跳过自己
|
||||
if (!x.getId().equals(request.getPermissionId())) {
|
||||
//记录位置
|
||||
sort.incrementAndGet();
|
||||
if (targetSort.equals(sort.get())) {
|
||||
//找到指定位置,当前节点需要移动到下一位置
|
||||
sort.incrementAndGet();
|
||||
}
|
||||
if (!x.getSort().equals(sort.get())) {
|
||||
// 排序需要修正
|
||||
sortMap.put(x.getId(), sort.get());
|
||||
}
|
||||
}
|
||||
});
|
||||
//找到需要更新排序的节点
|
||||
for (int i = 0; i < sortedList.size(); i++) {
|
||||
SaasFeature saasFeature = sortedList.get(i);
|
||||
if (Objects.equals(saasFeature.getSort(), i + 1)) {
|
||||
sortMap.put(saasFeature.getId(), i + 1);
|
||||
}
|
||||
}
|
||||
|
||||
//执行更新 - 有一定性能问题
|
||||
for (Map.Entry<Long, Integer> entry : sortMap.entrySet()) {
|
||||
this.saasFeatureDao.updateSort(entry.getKey(), entry.getValue());
|
||||
@ -431,6 +441,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
node.setTerminal(feature.getTerminal());
|
||||
node.setFeatureType(feature.getFeatureType());
|
||||
node.setFeatureTypeDesc(FeatureType.apply(feature.getFeatureType()).getDesc());
|
||||
node.setDelegatedType(feature.getDelegatedType());
|
||||
node.setPath(feature.getPath());
|
||||
node.setSort(feature.getSort());
|
||||
return node;
|
||||
|
||||
@ -6,7 +6,7 @@ import cn.axzo.tyr.client.model.product.ProductFeatureRelationSearchReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.repository.service.SaasProductModuleFeatureRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasProductModuleFeatureRelationDao;
|
||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@ -11,7 +11,7 @@ import cn.axzo.tyr.client.model.product.ProductSearchPageReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductVO;
|
||||
import cn.axzo.tyr.server.repository.entity.ProductModule;
|
||||
import cn.axzo.tyr.server.repository.service.ProductModuleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
|
||||
import cn.axzo.tyr.server.service.ProductService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@ -13,8 +13,8 @@ import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO;
|
||||
import cn.axzo.tyr.server.repository.dao.*;
|
||||
import cn.axzo.tyr.server.repository.entity.*;
|
||||
import cn.axzo.tyr.server.repository.service.*;
|
||||
import cn.axzo.tyr.server.service.*;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -209,6 +209,14 @@ public class RoleServiceImpl implements RoleService {
|
||||
if (Objects.isNull(saasRole)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "角色不存在");
|
||||
}
|
||||
if (Objects.isNull(saveOrUpdateRole.getPermissionGroupId())) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "更新角色时权限集不能为空不存在");
|
||||
}
|
||||
SaasPermissionGroup group = saasPermissionGroupDao.lambdaQuery().eq(SaasPermissionGroup::getId, saveOrUpdateRole.getPermissionGroupId())
|
||||
.eq(SaasPermissionGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value).one();
|
||||
if (Objects.isNull(group)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不存在");
|
||||
}
|
||||
} else {
|
||||
saasRole = new SaasRole();
|
||||
saasRole.setCreateBy(saveOrUpdateRole.getOperatorId());
|
||||
@ -225,7 +233,6 @@ public class RoleServiceImpl implements RoleService {
|
||||
saasRole.setDescription(saasRole.getDescription());
|
||||
saasRole.setRoleType(saveOrUpdateRole.getRoleType());
|
||||
saasRole.setWorkspaceId(saveOrUpdateRole.getWorkspaceId());
|
||||
saasRole.setWorkspaceType(saveOrUpdateRole.getWorkspaceType());
|
||||
saasRole.setOwnerOuId(saveOrUpdateRole.getOwnerOuId());
|
||||
saasRole.setUpdateBy(saveOrUpdateRole.getOperatorId());
|
||||
saasRole.setUpdateAt(now);
|
||||
@ -241,10 +248,10 @@ public class RoleServiceImpl implements RoleService {
|
||||
}).collect(Collectors.toList()));
|
||||
saasPermissionGroupDao.saveOrUpdate(saasPermissionGroup);
|
||||
SaasPgroupRoleRelation pgrr = new SaasPgroupRoleRelation();
|
||||
pgrr.setCreateBy(saveOrUpdateRole.getOperatorId());
|
||||
pgrr.setRoleId(saasRole.getId());
|
||||
pgrr.setUpdateBy(saveOrUpdateRole.getOperatorId());
|
||||
pgrr.setGroupId(saasPermissionGroup.getId());
|
||||
pgrr.setCreateBy(saveOrUpdateRole.getOperatorId());
|
||||
pgrr.setUpdateBy(saveOrUpdateRole.getOperatorId());
|
||||
pgrr.setCreateAt(now);
|
||||
pgrr.setUpdateAt(now);
|
||||
// 新增或保存角色通用权限映射
|
||||
@ -286,16 +293,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
saasPermissionGroup.setCreateBy(saveOrUpdateRole.getOperatorId());
|
||||
saasPermissionGroup.setCreatorName(saveOrUpdateRole.getOperatorName());
|
||||
} else {
|
||||
List<SaasPermissionGroup> groups = saasPermissionGroupDao.lambdaQuery()
|
||||
.eq(SaasPermissionGroup::getId, saveOrUpdateRole.getPermissionGroupId())
|
||||
.eq(SaasPermissionGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(groups)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不存在");
|
||||
}
|
||||
saasPermissionGroup = groups.get(0);
|
||||
if (!Objects.equals(saasPermissionGroup.getIsCommon(), PermissionGroupType.COMMON.getCode())) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "权限集不是通用权限集");
|
||||
}
|
||||
saasPermissionGroup = permissionGroupService.getRequiredPermissionGroup(saveOrUpdateRole.getPermissionGroupId(), PermissionGroupType.COMMON);
|
||||
}
|
||||
saasPermissionGroup.setName(saveOrUpdateRole.getPermissionGroupName());
|
||||
saasPermissionGroup.setDescription(saveOrUpdateRole.getPermissionGroupDescription());
|
||||
@ -315,7 +313,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
Map<Long, SaasRoleGroup> roleGroupMap = groups.stream().collect(Collectors.toMap(SaasRoleGroup::getId, Function.identity()));
|
||||
List<SaveOrUpdateRoleVO.GroupInfoVO> invalidRoleGroups = groupTrees.stream().filter(rg -> {
|
||||
SaasRoleGroup target = roleGroupMap.get(rg.getId());
|
||||
return Objects.isNull(target) || !Objects.equals(target.getWorkspaceTypeCode(), rg.getWorkspaceTypeCode().toString());
|
||||
return Objects.isNull(target) || !Objects.equals(target.getWorkspaceTypeCode(), rg.getWorkspaceTypeCode());
|
||||
}).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(invalidRoleGroups)) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "角色分组信息错误");
|
||||
|
||||
@ -1,47 +1,22 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.framework.domain.ServiceException;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.model.BaseWorkspaceModel;
|
||||
import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq;
|
||||
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.res.QueryBatchByIdentityIdTypeRes;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRoleVO;
|
||||
import cn.axzo.tyr.server.common.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.server.common.util.StreamUtil;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
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.SaasRoleGroupDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasRoleGroupRelationDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasRoleUserRelationDao;
|
||||
import cn.axzo.tyr.server.service.PermissionGroupService;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserService;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
||||
@ -170,6 +170,11 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
|
||||
return saasBasicDictDao.updateStatus(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BasicDictNodeResp getWorkspaceType(String workspaceType) {
|
||||
return saasBasicDictDao.getWorkspaceType(workspaceType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BasicDictNodeResp getById(Long id) {
|
||||
return BeanMapper.copyBean(saasBasicDictDao.getById(id), BasicDictNodeResp.class);
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupScopeDao;
|
||||
import cn.axzo.tyr.server.service.SaasPermissionGroupScopeService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SaasPermissionGroupScopeServiceImpl implements SaasPermissionGroupScopeService {
|
||||
private final SaasPermissionGroupScopeDao saasPermissionGroupScopeDao;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdate(List<SaasPermissionGroupScope> scopes) {
|
||||
if (CollectionUtils.isEmpty(scopes)) {
|
||||
return;
|
||||
}
|
||||
List<SaasPermissionGroupScope> exists = saasPermissionGroupScopeDao.lambdaQuery()
|
||||
.in(SaasPermissionGroupScope::getPgroupId, scopes.stream().map(SaasPermissionGroupScope::getPgroupId).distinct().sorted().collect(Collectors.toList()))
|
||||
.eq(SaasPermissionGroupScope::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
Collection<SaasPermissionGroupScope> insertList = CollectionUtils.subtract(scopes, exists);
|
||||
Collection<SaasPermissionGroupScope> deleteList = CollectionUtils.subtract(exists, scopes);
|
||||
if (CollectionUtils.isNotEmpty(insertList)) {
|
||||
saasPermissionGroupScopeDao.saveBatch(insertList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(deleteList)) {
|
||||
saasPermissionGroupScopeDao.removeByIds(deleteList.stream().map(SaasPermissionGroupScope::getId).sorted().collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@ package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -18,24 +18,24 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SaasPgroupPermissionRelationServiceImpl implements SaasPgroupPermissionRelationService {
|
||||
private final SaasPgroupPermissionRelationDao saasPgroupPermissionRelationDao;
|
||||
private final SaasPgroupPermissionRelationDao saasPgroupPermissionRelationDao;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdate(List<SaasPgroupPermissionRelation> relations) {
|
||||
if (CollectionUtils.isNotEmpty(relations)) {
|
||||
return;
|
||||
}
|
||||
List<SaasPgroupPermissionRelation> exists = saasPgroupPermissionRelationDao.lambdaQuery()
|
||||
.in(SaasPgroupPermissionRelation::getGroupId, relations.stream().map(SaasPgroupPermissionRelation::getGroupId).distinct().sorted().collect(Collectors.toList()))
|
||||
.eq(SaasPgroupPermissionRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
Collection<SaasPgroupPermissionRelation> insertList = CollectionUtils.subtract(relations, exists);
|
||||
Collection<SaasPgroupPermissionRelation> deleteList = CollectionUtils.subtract(exists, relations);
|
||||
if (CollectionUtils.isNotEmpty(insertList)) {
|
||||
saasPgroupPermissionRelationDao.saveBatch(insertList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(deleteList)) {
|
||||
saasPgroupPermissionRelationDao.removeByIds(deleteList.stream().map(SaasPgroupPermissionRelation::getId).sorted().collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdate(List<SaasPgroupPermissionRelation> relations) {
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return;
|
||||
}
|
||||
List<SaasPgroupPermissionRelation> exists = saasPgroupPermissionRelationDao.lambdaQuery()
|
||||
.in(SaasPgroupPermissionRelation::getGroupId, relations.stream().map(SaasPgroupPermissionRelation::getGroupId).distinct().sorted().collect(Collectors.toList()))
|
||||
.eq(SaasPgroupPermissionRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
Collection<SaasPgroupPermissionRelation> insertList = CollectionUtils.subtract(relations, exists);
|
||||
Collection<SaasPgroupPermissionRelation> deleteList = CollectionUtils.subtract(exists, relations);
|
||||
if (CollectionUtils.isNotEmpty(insertList)) {
|
||||
saasPgroupPermissionRelationDao.saveBatch(insertList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(deleteList)) {
|
||||
saasPgroupPermissionRelationDao.removeByIds(deleteList.stream().map(SaasPgroupPermissionRelation::getId).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.framework.domain.web.BizException;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.tyr.client.model.enums.PermissionGroupType;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupRoleRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupRoleRelationDao;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupRoleRelationService;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
@ -22,32 +25,23 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SaasPgroupRoleRelationServiceImpl implements SaasPgroupRoleRelationService {
|
||||
private final SaasPgroupRoleRelationDao saasPgroupRoleRelationDao;
|
||||
private final SaasPermissionGroupDao saasPermissionGroupDao;
|
||||
private final SaasPgroupRoleRelationDao saasPgroupRoleRelationDao;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdateCommon(SaasPgroupRoleRelation commonRelation) {
|
||||
List<SaasPgroupRoleRelation> relations = saasPgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, commonRelation.getRoleId())
|
||||
.eq(SaasPgroupRoleRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
saasPgroupRoleRelationDao.save(commonRelation);
|
||||
return;
|
||||
}
|
||||
List<SaasPgroupRoleRelation> prr = relations.stream().filter(e -> Objects.equals(commonRelation.getGroupId(), e.getGroupId())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(prr)) {
|
||||
// 通用权限集已经 存在
|
||||
return;
|
||||
}
|
||||
List<Long> permissionGroupIds = relations.stream().map(SaasPgroupRoleRelation::getGroupId).sorted().collect(Collectors.toList());
|
||||
List<SaasPermissionGroup> commonGroups = saasPermissionGroupDao.lambdaQuery().in(SaasPermissionGroup::getId, permissionGroupIds)
|
||||
.eq(SaasPermissionGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.eq(SaasPermissionGroup::getIsCommon, PermissionGroupType.COMMON.getCode()).list();
|
||||
if (CollectionUtils.isNotEmpty(commonGroups)) {
|
||||
Set<Long> commonGroupIds = commonGroups.stream().map(SaasPermissionGroup::getId).collect(Collectors.toSet());
|
||||
// 移除以前的通用权限集
|
||||
saasPgroupRoleRelationDao.removeByIds(relations.stream().filter(e -> commonGroupIds.contains(e.getGroupId())).collect(Collectors.toList()));
|
||||
}
|
||||
saasPgroupRoleRelationDao.save(commonRelation);
|
||||
}
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdateCommon(SaasPgroupRoleRelation commonRelation) {
|
||||
List<SaasPgroupRoleRelation> relations = saasPgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, commonRelation.getRoleId())
|
||||
.eq(SaasPgroupRoleRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
saasPgroupRoleRelationDao.save(commonRelation);
|
||||
return;
|
||||
}
|
||||
List<SaasPgroupRoleRelation> prr = relations.stream().filter(e -> Objects.equals(commonRelation.getGroupId(), e.getGroupId())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(prr)) {
|
||||
// 通用权限集已经 存在
|
||||
return;
|
||||
}else {
|
||||
throw new BizException(BaseCode.BAD_REQUEST,"传入的权限集id与已存在的通用权限集id不一致 req{}", JSONUtil.toJsonStr(commonRelation));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.service.SaasRoleGroupRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleGroupRelationDao;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupRelationService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -18,27 +18,28 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SaasRoleGroupRelationServiceImpl implements SaasRoleGroupRelationService {
|
||||
private final SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdate(List<SaasRoleGroupRelation> relations) {
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return;
|
||||
}
|
||||
List<SaasRoleGroupRelation> exists = saasRoleGroupRelationDao.lambdaQuery()
|
||||
.in(SaasRoleGroupRelation::getRoleId, relations.stream().map(SaasRoleGroupRelation::getRoleId).distinct().sorted().collect(Collectors.toList()))
|
||||
.eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(exists)) {
|
||||
saasRoleGroupRelationDao.saveBatch(relations);
|
||||
return;
|
||||
}
|
||||
Collection<SaasRoleGroupRelation> insertList = CollectionUtils.subtract(relations, exists);
|
||||
Collection<SaasRoleGroupRelation> deleteList = CollectionUtils.subtract(exists, relations);
|
||||
if (CollectionUtils.isNotEmpty(insertList)) {
|
||||
saasRoleGroupRelationDao.saveBatch(insertList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(deleteList)) {
|
||||
saasRoleGroupRelationDao.removeByIds(deleteList.stream().map(SaasRoleGroupRelation::getId).sorted().collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
private final SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdate(List<SaasRoleGroupRelation> relations) {
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return;
|
||||
}
|
||||
List<SaasRoleGroupRelation> exists = saasRoleGroupRelationDao.lambdaQuery()
|
||||
.in(SaasRoleGroupRelation::getRoleId, relations.stream().map(SaasRoleGroupRelation::getRoleId).distinct().sorted().collect(Collectors.toList()))
|
||||
.eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(exists)) {
|
||||
saasRoleGroupRelationDao.saveBatch(relations);
|
||||
return;
|
||||
}
|
||||
Collection<SaasRoleGroupRelation> insertList = CollectionUtils.subtract(relations, exists);
|
||||
Collection<SaasRoleGroupRelation> deleteList = CollectionUtils.subtract(exists, relations);
|
||||
if (CollectionUtils.isNotEmpty(insertList)) {
|
||||
saasRoleGroupRelationDao.saveBatch(insertList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(deleteList)) {
|
||||
saasRoleGroupRelationDao.removeByIds(deleteList.stream().map(SaasRoleGroupRelation::getId).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
import java.util.Date;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.framework.domain.web.BizException;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.service.*;
|
||||
import cn.axzo.tyr.server.repository.dao.*;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -56,7 +56,7 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<SaasRoleGroupRelation> saasRoleGroupRelations = saasRoleGroupRelationDao.lambdaQuery()
|
||||
.in(SaasRoleGroupRelation::getSaasRoleGroupId, groups.stream().map(SaasRoleGroup::getId))
|
||||
.in(SaasRoleGroupRelation::getSaasRoleGroupId, groups.stream().map(SaasRoleGroup::getId).collect(Collectors.toList()))
|
||||
.eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
Map<Long, List<Long>> groupRoleMap = saasRoleGroupRelations.stream().collect(Collectors.groupingBy(SaasRoleGroupRelation::getSaasRoleGroupId, Collectors.mapping(SaasRoleGroupRelation::getRoleId, Collectors.toList())));
|
||||
List<SaasRoleGroupVO> results = groups.stream()
|
||||
@ -73,7 +73,7 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveOrUpdate(SaasRoleGroupVO req) {
|
||||
public Long saveOrUpdate(SaasRoleGroupVO req) {
|
||||
// 拼接ouTypeCode字符串
|
||||
String ouTypeCodeStr = null;
|
||||
if (CollectionUtils.isNotEmpty(req.getOuTypeCode())) {
|
||||
@ -85,21 +85,29 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
||||
saasRoleGroup.setOuTypeCode(ouTypeCodeStr);
|
||||
saasRoleGroup.setName(req.getName());
|
||||
saasRoleGroup.setSort(req.getSort());
|
||||
saasRoleGroup.setWorkspaceId(req.getWorkspaceId() != null ? req.getWorkspaceId():-1l);
|
||||
saasRoleGroup.setOuId(req.getOuId() != null ? req.getOuId():-1l);
|
||||
saasRoleGroupDao.saveOrUpdate(saasRoleGroup);
|
||||
return saasRoleGroup.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 只有当分组下面角色为空时才能删除
|
||||
* @param ids
|
||||
*/
|
||||
@Override
|
||||
public void delete(Long id) {
|
||||
// 删除分组
|
||||
|
||||
// 删除角色分组关联关系
|
||||
|
||||
//
|
||||
|
||||
|
||||
// 删除权限分组关联关系
|
||||
// 删除权限
|
||||
// 删除权限集关联关系
|
||||
// 删除权限集
|
||||
public void delete(List<Long> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return;
|
||||
}
|
||||
int relationCount = saasRoleGroupRelationDao.lambdaQuery()
|
||||
.in(SaasRoleGroupRelation::getSaasRoleGroupId, ids)
|
||||
.eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.count();
|
||||
if (relationCount > 0) {
|
||||
throw new BizException(BaseCode.BAD_REQUEST, "分组关联角色,不能删除");
|
||||
}
|
||||
saasRoleGroupDao.delete(ids);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author haiyangjin
|
||||
* @date 2023/9/14
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SaasRoleUserRelationServiceImpl implements SaasRoleUserRelationService {
|
||||
|
||||
@Resource
|
||||
private SaasRoleUserRelationDao saasRoleUserRelationDao;
|
||||
@Override
|
||||
public List<SaasRoleUserRelationDTO> list(RoleUserParam param) {
|
||||
List<SaasRoleUserRelation> 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())
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.last("LIMIT 1000")
|
||||
.list();
|
||||
if (CollectionUtil.isEmpty(saasRoleUserRelations)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return saasRoleUserRelations.stream().map(e -> BeanUtil.copyProperties(e, SaasRoleUserRelationDTO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
@ -10,7 +10,7 @@ import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
|
||||
import cn.axzo.tyr.server.controller.permission.PermissionPointController;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.service.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -44,9 +44,10 @@ public class PermissionPointTest {
|
||||
public void testListTreeNode() {
|
||||
PermissionPointTreeQueryReq request = new PermissionPointTreeQueryReq();
|
||||
//request.setParentId(354L);
|
||||
request.setKeyword("预警");
|
||||
//request.setKeyword("预警");
|
||||
//request.setWorkspaceType(Arrays.asList("ent"));
|
||||
request.setTerminalList(Arrays.asList("NT_CMS_WEB_ENT_ZB"));
|
||||
//request.setTerminalList(Arrays.asList("NT_CMS_WEB_ENT_ZB"));
|
||||
request.setDelegateType(2);
|
||||
ApiResult<List<PermissionPointTreeNode>> result = controller.listTreeNodes(request);
|
||||
System.out.println("---------------");
|
||||
System.out.println(JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect));
|
||||
@ -71,17 +72,18 @@ public class PermissionPointTest {
|
||||
PermissionPointDTO permissionPoint = new PermissionPointDTO();
|
||||
permissionPoint.setFeatureName("测试合同权限点");
|
||||
permissionPoint.setFeatureCode("CMS_WEB_PROJ_0158");
|
||||
permissionPoint.setParentId(360L);
|
||||
permissionPoint.setPath("/0/354/360/");
|
||||
permissionPoint.setSort(6);
|
||||
permissionPoint.setTerminal("NT_CMS_WEB_PROJ");
|
||||
permissionPoint.setFeatureType(3);
|
||||
permissionPoint.setAppName("tyr");
|
||||
permissionPoint.setFeatureUrl("/tyr/test/permission");
|
||||
permissionPoint.setNeedAuth(true);
|
||||
permissionPoint.setNeedAuth(true);
|
||||
//permissionPoint.setParentId(360L);
|
||||
//permissionPoint.setPath("/0/354/360/");
|
||||
//permissionPoint.setSort(3);
|
||||
//permissionPoint.setTerminal("NT_CMS_WEB_PROJ");
|
||||
permissionPoint.setTerminal("NT_CMS_WEB_ENT_ZB");
|
||||
permissionPoint.setFeatureType(1);
|
||||
//permissionPoint.setAppName("tyr");
|
||||
//permissionPoint.setFeatureUrl("/tyr/test/permission");
|
||||
//permissionPoint.setNeedAuth(true);
|
||||
//permissionPoint.setNeedAuth(true);
|
||||
System.out.println(JSON.toJSONString(permissionPoint));
|
||||
//controller.savePermissionPoint(permissionPoint);
|
||||
controller.savePermissionPoint(permissionPoint);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -106,8 +108,8 @@ public class PermissionPointTest {
|
||||
@Test
|
||||
public void testMove() {
|
||||
PermissionPointMoveRequest request = new PermissionPointMoveRequest();
|
||||
request.setPermissionId(360L);
|
||||
request.setParentId(354L);
|
||||
request.setPermissionId(3483L);
|
||||
request.setParentId(360L);
|
||||
request.setSort(1);
|
||||
ApiResult<Void> result = controller.move(request);
|
||||
System.out.println(JSON.toJSONString(result));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user