feat:(REQ-3282) 增加角色page接口
This commit is contained in:
parent
d31cfc503d
commit
07256a629f
@ -5,6 +5,7 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ -65,6 +66,10 @@ public class SaasRoleGroupDTO {
|
||||
*/
|
||||
private String path;
|
||||
|
||||
private Date createAt;
|
||||
|
||||
private Date updateAt;
|
||||
|
||||
/**
|
||||
* 角色信息
|
||||
*/
|
||||
|
||||
@ -5,6 +5,8 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@ -57,4 +59,19 @@ public class SaasRoleGroupRes {
|
||||
* 上级分组id
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 层级path
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 添加时间
|
||||
*/
|
||||
private Date createAt;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateAt;
|
||||
}
|
||||
|
||||
@ -114,8 +114,10 @@ public class PageRoleReq {
|
||||
*/
|
||||
private Boolean needRoleUser;
|
||||
|
||||
|
||||
private Boolean needPermissionRelation;
|
||||
/**
|
||||
* 是否需要角色跟菜单组件的关联关系,不查询具体的菜单组件信息
|
||||
*/
|
||||
private Boolean needFeatureResourceRelation;
|
||||
|
||||
/**
|
||||
* 是否需要预设角色,因为预设角色的workspaceId和ouId为-1
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
package cn.axzo.tyr.feign.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class FeatureResourceRelationResp {
|
||||
|
||||
/**
|
||||
* 菜单资源树节点id
|
||||
*/
|
||||
private Long featureId;
|
||||
|
||||
/**
|
||||
* 新旧菜单资源数标识
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 菜单资源树节点类型
|
||||
*/
|
||||
private Integer featureType;
|
||||
|
||||
/**
|
||||
* 权限点标签:
|
||||
* 在职:JOINED
|
||||
* 离场:LEAVE
|
||||
* @see cn.axzo.tyr.feign.enums.RolePermissionTagEnum
|
||||
*/
|
||||
private Set<String> tags;
|
||||
}
|
||||
@ -30,6 +30,7 @@ public class RoleFeatureResourceResp {
|
||||
|
||||
/**
|
||||
* 菜单组件的权限标签
|
||||
* @see cn.axzo.tyr.feign.enums.RolePermissionTagEnum
|
||||
*/
|
||||
private Set<String> tags;
|
||||
}
|
||||
|
||||
@ -5,6 +5,8 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@ -12,4 +14,68 @@ import lombok.NoArgsConstructor;
|
||||
public class RoleGroupResp {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 租户类型:
|
||||
* @see cn.axzo.apollo.workspace.common.enums.WorkspaceTypeEnum
|
||||
*/
|
||||
private Integer workspaceType;
|
||||
|
||||
/**
|
||||
* 协同关系类型
|
||||
* 1:总包 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6:OMS通用 7:企业通用 8:企业内班组 9:项目内班组
|
||||
* 政务的就是-1
|
||||
* @see cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum
|
||||
*/
|
||||
private Integer cooperateShipType;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 所属工作台id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 所属单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 上级分组id
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 层级path
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 分组CODE
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 分类CODE, 用于代班长,小组长的权限分类。
|
||||
*/
|
||||
private String categoryCode;
|
||||
|
||||
/**
|
||||
* 添加时间
|
||||
*/
|
||||
private Date createAt;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateAt;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.tyr.feign.resp;
|
||||
|
||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -36,7 +37,7 @@ public class RoleResp {
|
||||
|
||||
/**
|
||||
* 角色类型:common 普通角色 super_admin超级管理员(禁止删除) admin子管理员(禁止删除) init初始化内置角色
|
||||
* @See cn.axzo.tyr.model.enums.RoleTypeEnum
|
||||
* @see cn.axzo.tyr.feign.enums.RoleTypeEnum
|
||||
*/
|
||||
private String roleType;
|
||||
|
||||
@ -53,6 +54,7 @@ public class RoleResp {
|
||||
/**
|
||||
* 协同关系类型
|
||||
* 1:总包 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6:OMS通用 7:企业通用 8:企业内班组 9:项目内班组
|
||||
* @see cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum
|
||||
*/
|
||||
private Integer cooperateShipType;
|
||||
|
||||
@ -104,4 +106,9 @@ public class RoleResp {
|
||||
* 角色对应的人员信息
|
||||
*/
|
||||
private List<RoleUserResp> roleUsers;
|
||||
|
||||
/**
|
||||
* 角色关联的菜单组件信息:只有相关的关联信息,比roleFeatureResources少很多信息
|
||||
*/
|
||||
private List<FeatureResourceRelationResp> featureResourceRelations;
|
||||
}
|
||||
|
||||
@ -11,5 +11,33 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
public class RoleUserResp {
|
||||
|
||||
private Long id;
|
||||
/**
|
||||
* 身份Id
|
||||
*/
|
||||
private Long identityId;
|
||||
|
||||
/**
|
||||
* 身份类型 1:工人 2:从业人员 3:班组长 4:运营人员 5:政务人员
|
||||
*/
|
||||
private Integer identityType;
|
||||
|
||||
/**
|
||||
* 用户personId
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 用户名字
|
||||
*/
|
||||
private String realName;
|
||||
|
||||
/**
|
||||
* 所属单位Id 用户在当前工作台的所属单位
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 工作台Id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
}
|
||||
|
||||
@ -18,4 +18,9 @@ public class PermissionConstant {
|
||||
public static final String FEATURE_TOP_PATH = "/0/";
|
||||
/** 权限点business_no前缀 **/
|
||||
public static final String FEATURE_BIZ_NO_PREFIX = "feature";
|
||||
|
||||
/**
|
||||
* 分页查询最大PAGE_SIZE
|
||||
*/
|
||||
public static final Integer MAX_PAGE_SIZE = 1000;
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ public enum BizResultCode implements IResultCode {
|
||||
TERMINAL_EXIST("100021", "新端已经存在:{}"),
|
||||
TERMINAL_NOT_FOUND("100022", "原端不存在:{}"),
|
||||
FEATURE_CODE_OVER_LENGTH("100023", "组件code不能超过100个字符:{}"),
|
||||
MAX_PAGE_SIZE_ERROR("100024", "最大查询");
|
||||
MAX_PAGE_SIZE_ERROR("100024", "最大PAGE_SIZE不能超过1000");
|
||||
|
||||
|
||||
private String errorCode;
|
||||
|
||||
@ -1,18 +1,25 @@
|
||||
package cn.axzo.tyr.server.controller.v2;
|
||||
|
||||
import cn.axzo.foundation.exception.Axssert;
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.foundation.result.ApiResult;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.model.enums.RolePermissionTagEnum;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.ListRoleUserRelationParam;
|
||||
import cn.axzo.tyr.feign.api.RoleApi;
|
||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.feign.req.PageRoleReq;
|
||||
import cn.axzo.tyr.feign.resp.FeatureResourceRelationResp;
|
||||
import cn.axzo.tyr.feign.resp.RoleFeatureResourceResp;
|
||||
import cn.axzo.tyr.feign.resp.RoleGroupResp;
|
||||
import cn.axzo.tyr.feign.resp.RoleResp;
|
||||
import cn.axzo.tyr.feign.resp.RoleUserResp;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -21,6 +28,9 @@ import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.tyr.server.common.constants.PermissionConstant.MAX_PAGE_SIZE;
|
||||
import static cn.axzo.tyr.server.config.exception.BizResultCode.MAX_PAGE_SIZE_ERROR;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class RoleController implements RoleApi {
|
||||
@ -79,34 +89,118 @@ public class RoleController implements RoleApi {
|
||||
result.setProductUnitTypes(req.getCooperateShipTypes());
|
||||
|
||||
result.setNeedPermission(req.getNeedFeatureResources());
|
||||
|
||||
result.setNeedPermissionRelation(req.getNeedFeatureResourceRelation());
|
||||
|
||||
result.setFeatureResourceTypes(Optional.ofNullable(req.getFeatureResourceTypes())
|
||||
.map(e -> e.stream()
|
||||
.map(f -> FeatureResourceType.valueOf(f.name()))
|
||||
.collect(Collectors.toList()))
|
||||
.orElse(null));
|
||||
return result;
|
||||
}
|
||||
|
||||
private void assembleRoleFeatureResource(SaasRoleRes saasRoleRes, RoleResp roleResp) {
|
||||
if (CollectionUtils.isEmpty(saasRoleRes.getSaasPermissions())) {
|
||||
return;
|
||||
}
|
||||
|
||||
roleResp.setRoleFeatureResources(saasRoleRes.getSaasPermissions().stream()
|
||||
.map(permission -> {
|
||||
RoleFeatureResourceResp roleFeatureResourceResp = RoleFeatureResourceResp.builder().build();
|
||||
BeanUtils.copyProperties(permission, roleFeatureResourceResp);
|
||||
roleFeatureResourceResp.setTags(Optional.ofNullable(permission.getTags())
|
||||
.map(tags -> tags.stream()
|
||||
.map(RolePermissionTagEnum::getDesc)
|
||||
.collect(Collectors.toSet())
|
||||
)
|
||||
.orElse(null));
|
||||
return roleFeatureResourceResp;
|
||||
})
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private void assembleRoleGroup(SaasRoleRes saasRoleRes, RoleResp roleResp) {
|
||||
if (CollectionUtils.isEmpty(saasRoleRes.getSaasRoleGroups())) {
|
||||
return;
|
||||
}
|
||||
roleResp.setRoleGroup(saasRoleRes.getSaasRoleGroups().stream()
|
||||
.map(roleGroup -> {
|
||||
RoleGroupResp roleGroupResp = RoleGroupResp.builder().build();
|
||||
BeanUtils.copyProperties(roleGroup, roleGroupResp);
|
||||
|
||||
if (StringUtils.isNotBlank(roleGroup.getWorkspaceTypeCode())) {
|
||||
roleGroupResp.setWorkspaceType(Integer.valueOf(roleGroup.getWorkspaceTypeCode()));
|
||||
}
|
||||
|
||||
// 因为角色分组页面可以选择多个,会逗号隔开,但是是不允许这样的数据出现的,为了兼容不报错,如果有逗号就取第一个返回
|
||||
if (StringUtils.isNotBlank(roleGroup.getOuTypeCode())) {
|
||||
if (roleGroup.getOuTypeCode().contains(",")) {
|
||||
roleGroupResp.setCooperateShipType(Integer.valueOf(roleGroup.getOuTypeCode().split(",")[0]));
|
||||
} else {
|
||||
roleGroupResp.setCooperateShipType(Integer.valueOf(roleGroup.getOuTypeCode()));
|
||||
}
|
||||
}
|
||||
return roleGroupResp;
|
||||
})
|
||||
.findFirst()
|
||||
.orElse(null));
|
||||
}
|
||||
|
||||
private void assembleRoleUser(SaasRoleRes saasRoleRes, RoleResp roleResp) {
|
||||
|
||||
if (CollectionUtils.isEmpty(saasRoleRes.getSaasRoleUsers())) {
|
||||
return;
|
||||
}
|
||||
|
||||
roleResp.setRoleUsers(saasRoleRes.getSaasRoleUsers().stream()
|
||||
.map(saasRoleUser -> {
|
||||
RoleUserResp roleUserResp = RoleUserResp.builder().build();
|
||||
BeanUtils.copyProperties(saasRoleUser, roleUserResp);
|
||||
return roleUserResp;
|
||||
})
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private void assembleFeatureResourceRelation(SaasRoleRes saasRoleRes, RoleResp roleResp) {
|
||||
|
||||
if (CollectionUtils.isEmpty(saasRoleRes.getPermissionRelations())) {
|
||||
return;
|
||||
}
|
||||
|
||||
roleResp.setFeatureResourceRelations(saasRoleRes.getPermissionRelations().stream()
|
||||
.map(saasPermissionRelationRes -> {
|
||||
FeatureResourceRelationResp featureResourceRelationResp = FeatureResourceRelationResp.builder().build();
|
||||
BeanUtils.copyProperties(saasPermissionRelationRes, featureResourceRelationResp);
|
||||
featureResourceRelationResp.setTags(Optional.ofNullable(saasPermissionRelationRes.getTags())
|
||||
.map(tags -> tags.stream()
|
||||
.map(RolePermissionTagEnum::getDesc)
|
||||
.collect(Collectors.toSet())
|
||||
)
|
||||
.orElse(null));
|
||||
return featureResourceRelationResp;
|
||||
})
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private RoleResp from(SaasRoleRes saasRoleRes) {
|
||||
RoleResp result = RoleResp.builder().build();
|
||||
BeanUtils.copyProperties(saasRoleRes, result);
|
||||
|
||||
if (Objects.nonNull(saasRoleRes.getSaasPermissions())) {
|
||||
result.setRoleFeatureResources(saasRoleRes.getSaasPermissions().stream()
|
||||
.map(permission -> {
|
||||
RoleFeatureResourceResp roleFeatureResourceResp = RoleFeatureResourceResp.builder().build();
|
||||
BeanUtils.copyProperties(permission, roleFeatureResourceResp);
|
||||
// roleFeatureResourceResp.setUniCode();
|
||||
roleFeatureResourceResp.setTags(Optional.ofNullable(permission.getTags())
|
||||
.map(tags -> tags.stream()
|
||||
.map(RolePermissionTagEnum::getDesc)
|
||||
.collect(Collectors.toSet())
|
||||
)
|
||||
.orElse(null));
|
||||
return roleFeatureResourceResp;
|
||||
})
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
assembleRoleFeatureResource(saasRoleRes, result);
|
||||
|
||||
assembleRoleGroup(saasRoleRes, result);
|
||||
|
||||
assembleRoleUser(saasRoleRes, result);
|
||||
|
||||
assembleFeatureResourceRelation(saasRoleRes, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void check(PageRoleReq req) {
|
||||
if (Objects.nonNull(req.getPageSize())) {
|
||||
Axssert.check(MAX_PAGE_SIZE >= req.getPageSize() , MAX_PAGE_SIZE_ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ import java.util.List;
|
||||
*/
|
||||
public interface SaasRoleGroupService extends IService<SaasRoleGroup> {
|
||||
|
||||
@Deprecated
|
||||
List<SaasRoleGroupVO> getList(QuerySaasRoleGroupReq req);
|
||||
|
||||
/**
|
||||
@ -26,6 +27,7 @@ public interface SaasRoleGroupService extends IService<SaasRoleGroup> {
|
||||
* @param req 角色分组参数
|
||||
* @return 角色分组列表
|
||||
*/
|
||||
@Deprecated
|
||||
List<SaasRoleGroupVO> getRoleGroupList(QuerySaasRoleGroupReq req);
|
||||
|
||||
|
||||
@ -40,6 +42,7 @@ public interface SaasRoleGroupService extends IService<SaasRoleGroup> {
|
||||
* @param categoryCode
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
List<SaasRoleGroupVO> listByCategoryCode(List<String> categoryCode);
|
||||
|
||||
/**
|
||||
@ -47,6 +50,7 @@ public interface SaasRoleGroupService extends IService<SaasRoleGroup> {
|
||||
* @param codes 角色组编码
|
||||
* @param type 1-仅查当前code 2-对应code角色组及子级角色组 3-仅对应code角色组的子级
|
||||
* **/
|
||||
@Deprecated
|
||||
List<SaasRoleGroup> listByCodes(List<String> codes, int type);
|
||||
|
||||
List<SaasRoleGroupDTO> list(ListSaasRoleGroupParam param);
|
||||
|
||||
@ -1621,31 +1621,31 @@ public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
List<SaasRoleGroupRelation> roleGroupRelations = saasRoleGroupRelationDao.lambdaQuery()
|
||||
.in(SaasRoleGroupRelation::getRoleId, Lists.transform(saasRoles, SaasRole::getId))
|
||||
.eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
List<SaasRoleGroupRelation> roleGroupRelations = saasRoleGroupRelationService.list(SaasRoleGroupRelationService.ListSaasRoleGroupRelationParam.builder()
|
||||
.roleIds(Lists.transform(saasRoles, SaasRole::getId))
|
||||
.build());
|
||||
|
||||
if (CollectionUtils.isEmpty(roleGroupRelations)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Map<Long, SaasRoleGroup> saasRoleGroups = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder()
|
||||
.ids(Lists.transform(roleGroupRelations, SaasRoleGroupRelation::getSaasRoleGroupId))
|
||||
.build())
|
||||
Map<Long, SaasRoleGroupDTO> saasRoleGroups = saasRoleGroupService.list(ListSaasRoleGroupParam.builder()
|
||||
.ids(roleGroupRelations.stream()
|
||||
.map(SaasRoleGroupRelation::getSaasRoleGroupId)
|
||||
.collect(Collectors.toSet()))
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(SaasRoleGroup::getId, Function.identity()));
|
||||
.collect(Collectors.toMap(SaasRoleGroupDTO::getId, Function.identity()));
|
||||
|
||||
return roleGroupRelations.stream()
|
||||
.filter(e -> saasRoleGroups.get(e.getSaasRoleGroupId()) != null)
|
||||
.collect(Collectors.groupingBy(SaasRoleGroupRelation::getRoleId,
|
||||
Collectors.mapping(e -> {
|
||||
SaasRoleGroup saasRoleGroup = saasRoleGroups.get(e.getSaasRoleGroupId());
|
||||
SaasRoleGroupDTO saasRoleGroup = saasRoleGroups.get(e.getSaasRoleGroupId());
|
||||
return toRoleGroupRes(saasRoleGroup);
|
||||
}, Collectors.toList())));
|
||||
}
|
||||
|
||||
private SaasRoleGroupRes toRoleGroupRes(SaasRoleGroup saasRoleGroup) {
|
||||
private SaasRoleGroupRes toRoleGroupRes(SaasRoleGroupDTO saasRoleGroup) {
|
||||
if (saasRoleGroup == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -1,26 +1,44 @@
|
||||
package cn.axzo.tyr.server.controller.v2;
|
||||
|
||||
import cn.axzo.apollo.core.web.Results;
|
||||
import cn.axzo.apollo.workspace.api.workspace.req.GetSimpleWorkspaceReqV2;
|
||||
import cn.axzo.apollo.workspace.api.workspace.res.SimpleWorkspaceRes;
|
||||
import cn.axzo.basics.profiles.api.UserProfileServiceApi;
|
||||
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||
import cn.axzo.foundation.exception.BusinessException;
|
||||
import cn.axzo.tyr.base.BaseTest;
|
||||
import cn.axzo.tyr.base.MysqlDataLoader;
|
||||
import cn.axzo.tyr.client.model.enums.RolePermissionTagEnum;
|
||||
import cn.axzo.tyr.feign.enums.FeatureResourceTypeEnum;
|
||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.feign.req.PageRoleReq;
|
||||
import cn.axzo.tyr.feign.resp.RoleResp;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.google.common.collect.Sets;
|
||||
import org.assertj.core.util.Lists;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.axzo.tyr.server.config.exception.BizResultCode.MAX_PAGE_SIZE_ERROR;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
class RoleControllerTest extends BaseTest {
|
||||
|
||||
@Autowired
|
||||
private MysqlDataLoader mysqlDataLoader;
|
||||
@Autowired
|
||||
private RoleController roleController;
|
||||
@Autowired
|
||||
private UserProfileServiceApi userProfileServiceApi;
|
||||
|
||||
@BeforeEach
|
||||
@Override
|
||||
@ -29,11 +47,23 @@ class RoleControllerTest extends BaseTest {
|
||||
mysqlDataLoader.loadFromClassName(getClass().getSimpleName());
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
|
||||
@Test
|
||||
void list() {
|
||||
void page() {
|
||||
|
||||
BusinessException businessException = assertThrows(BusinessException.class, ()->{
|
||||
roleController.page(PageRoleReq.builder()
|
||||
.pageSize(1001)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
});
|
||||
assertEquals(businessException.getErrorCode(), MAX_PAGE_SIZE_ERROR.getErrorCode());
|
||||
|
||||
List<RoleResp> roleResps = roleController.page(PageRoleReq.builder()
|
||||
.roleIds(Sets.newHashSet(24425L))
|
||||
.build())
|
||||
.roleIds(Sets.newHashSet(24425L))
|
||||
.pageSize(1000)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 1);
|
||||
@ -129,32 +159,136 @@ class RoleControllerTest extends BaseTest {
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(0).getId(), 153L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(0).getUniCode(), "oms:menu_page");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(0).getTags().size(), 1);
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(0).getTags().contains(RolePermissionTagEnum.JOINED));
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(0).getTags().contains(RolePermissionTagEnum.JOINED.getDesc()));
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(0).getTerminal(), "NT_OMS_WEB");
|
||||
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(1).getId(), 466L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(1).getUniCode(), "oms:imConfig_page");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(1).getTags().size(), 1);
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(1).getTags().contains(RolePermissionTagEnum.JOINED));
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(1).getTags().contains(RolePermissionTagEnum.JOINED.getDesc()));
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(1).getTerminal(), "NT_OMS_WEB");
|
||||
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(2).getId(), 467L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(2).getUniCode(), "oms:im_robot_page");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(2).getTags().size(), 1);
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(2).getTags().contains(RolePermissionTagEnum.JOINED));
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(2).getTags().contains(RolePermissionTagEnum.JOINED.getDesc()));
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(2).getTerminal(), "NT_OMS_WEB");
|
||||
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(3).getId(), 469L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(3).getUniCode(), "oms:msgPush_page");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(3).getTags().size(), 1);
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(3).getTags().contains(RolePermissionTagEnum.JOINED));
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(3).getTags().contains(RolePermissionTagEnum.JOINED.getDesc()));
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(3).getTerminal(), "NT_OMS_WEB");
|
||||
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(4).getId(), 693L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(4).getUniCode(), "oms:detail_backPay_btn");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(4).getTags().size(), 1);
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(4).getTags().contains(RolePermissionTagEnum.JOINED));
|
||||
Assertions.assertTrue(roleResps.get(0).getRoleFeatureResources().get(4).getTags().contains(RolePermissionTagEnum.JOINED.getDesc()));
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().get(4).getTerminal(), "NT_OMS_WEB");
|
||||
|
||||
|
||||
roleResps = roleController.page(PageRoleReq.builder()
|
||||
.roleIds(Sets.newHashSet(24425L))
|
||||
.needRoleGroup(true)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 1);
|
||||
Assertions.assertNotNull(roleResps.get(0).getRoleGroup());
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getId(), 6);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getWorkspaceType(), 6);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getCooperateShipType(), 6);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getName(), "研发中心");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getWorkspaceId(), -1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getOuId(), -1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getParentId(), 0);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getPath(), "6,");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getSort(), 3);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getCode(), "A1");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getCategoryCode(), "FF");
|
||||
Assertions.assertEquals(LocalDateTime.ofInstant(roleResps.get(0).getRoleGroup().getCreateAt().toInstant(), ZoneId.systemDefault()),
|
||||
LocalDateTime.of(2023, 9, 19, 14, 31, 19));
|
||||
Assertions.assertEquals(LocalDateTime.ofInstant(roleResps.get(0).getRoleGroup().getUpdateAt().toInstant(), ZoneId.systemDefault()),
|
||||
LocalDateTime.of(2024, 5, 29, 9, 33, 24));
|
||||
|
||||
roleResps = roleController.page(PageRoleReq.builder()
|
||||
.roleIds(Sets.newHashSet(25324L))
|
||||
.needRoleGroup(true)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 1);
|
||||
Assertions.assertNotNull(roleResps.get(0).getRoleGroup());
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getId(), 13);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getWorkspaceType(), 2);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getCooperateShipType(), 5);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getName(), "专业分包");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getWorkspaceId(), -1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getOuId(), -1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getParentId(), 0);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getPath(), "13,");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getSort(), 1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getCode(), "A2");
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleGroup().getCategoryCode(), "");
|
||||
Assertions.assertEquals(LocalDateTime.ofInstant(roleResps.get(0).getRoleGroup().getCreateAt().toInstant(), ZoneId.systemDefault()),
|
||||
LocalDateTime.of(2023, 10, 23, 17, 49, 59));
|
||||
Assertions.assertEquals(LocalDateTime.ofInstant(roleResps.get(0).getRoleGroup().getUpdateAt().toInstant(), ZoneId.systemDefault()),
|
||||
LocalDateTime.of(2024, 8, 15, 18, 39, 13));
|
||||
|
||||
List<PersonProfileDto> personProfileDtos = Lists.newArrayList();
|
||||
PersonProfileDto personProfileDto = new PersonProfileDto();
|
||||
personProfileDto.setId(24511L);
|
||||
personProfileDto.setRealName("测试名字");
|
||||
personProfileDtos.add(personProfileDto);
|
||||
Mockito.when(userProfileServiceApi.postPersonProfiles(Mockito.any()))
|
||||
.thenReturn(CommonResponse.success(personProfileDtos));
|
||||
|
||||
roleResps = roleController.page(PageRoleReq.builder()
|
||||
.roleIds(Sets.newHashSet(24425L))
|
||||
.needRoleUser(true)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().size(), 1);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().get(0).getPersonId(), 24511L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().get(0).getIdentityId(), 28802L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().get(0).getIdentityType(), 3);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().get(0).getOuId(), 4L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().get(0).getWorkspaceId(), 3L);
|
||||
Assertions.assertEquals(roleResps.get(0).getRoleUsers().get(0).getRealName(), "测试名字");
|
||||
|
||||
roleResps = roleController.page(PageRoleReq.builder()
|
||||
.roleIds(Sets.newHashSet(24425L))
|
||||
.needFeatureResourceRelation(true)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 1);
|
||||
Assertions.assertEquals(roleResps.get(0).getFeatureResourceRelations().size(), 10);
|
||||
Assertions.assertEquals(roleResps.get(0).getFeatureResourceRelations().get(0).getFeatureId(), 153L);
|
||||
Assertions.assertEquals(roleResps.get(0).getFeatureResourceRelations().get(0).getType(), 1);
|
||||
Assertions.assertEquals(roleResps.get(0).getFeatureResourceRelations().get(0).getFeatureType(), 2);
|
||||
Assertions.assertEquals(roleResps.get(0).getFeatureResourceRelations().get(0).getTags().size(), 1);
|
||||
Assertions.assertTrue(roleResps.get(0).getFeatureResourceRelations().get(0).getTags().contains(RolePermissionTagEnum.JOINED.getDesc()));
|
||||
|
||||
|
||||
roleResps = roleController.page(PageRoleReq.builder()
|
||||
.roleIds(Sets.newHashSet(24425L))
|
||||
.needFeatureResourceRelation(true)
|
||||
.featureResourceTypes(Lists.newArrayList(FeatureResourceTypeEnum.PAGE))
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 1);
|
||||
Assertions.assertEquals(roleResps.get(0).getFeatureResourceRelations().size(), 7);
|
||||
|
||||
roleResps = roleController.page(PageRoleReq.builder()
|
||||
.needPresetRole(true)
|
||||
.build())
|
||||
.getData()
|
||||
.getData();
|
||||
Assertions.assertEquals(roleResps.size(), 4);
|
||||
|
||||
}
|
||||
}
|
||||
@ -10,10 +10,10 @@ INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete
|
||||
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at) VALUES (25, 25326, 13, 0, '2023-10-23 17:50:00', '2023-10-23 17:49:59');
|
||||
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at) VALUES (26, 25327, 13, 0, '2023-10-23 17:50:00', '2023-10-23 17:49:59');
|
||||
|
||||
INSERT INTO saas_role_group (id, workspace_type_code, ou_type_code, name, workspace_id, ou_id, parent_id, sort, code, category_code, is_delete, create_at, update_at)
|
||||
VALUES (6, '6', '6', '研发中心', -1, -1, 0, 3, 'A1', '', 0, '2023-09-19 14:31:19', '2024-05-29 09:33:24');
|
||||
INSERT INTO saas_role_group (id, workspace_type_code, ou_type_code, name, workspace_id, ou_id, parent_id, sort, code, category_code, is_delete, create_at, update_at)
|
||||
VALUES (13, '2', '5', '专业分包', -1, -1, 0, 1, 'A2', '', 0, '2023-10-23 17:49:59', '2024-08-15 18:39:13');
|
||||
INSERT INTO saas_role_group (id, workspace_type_code, ou_type_code, name, workspace_id, ou_id, parent_id, sort, code, category_code, is_delete, create_at, update_at, path)
|
||||
VALUES (6, '6', '6', '研发中心', -1, -1, 0, 3, 'A1', 'FF', 0, '2023-09-19 14:31:19', '2024-05-29 09:33:24', '6,');
|
||||
INSERT INTO saas_role_group (id, workspace_type_code, ou_type_code, name, workspace_id, ou_id, parent_id, sort, code, category_code, is_delete, create_at, update_at, path)
|
||||
VALUES (13, '2', '5,3,4', '专业分包', -1, -1, 0, 1, 'A2', '', 0, '2023-10-23 17:49:59', '2024-08-15 18:39:13', '13,');
|
||||
|
||||
INSERT INTO saas_role (id, NAME, description, role_type, role_code, workspace_id, owner_ou_id, product_unit_type, workspace_type, is_delete, create_at, update_at, create_by, update_by, fit_ou_type_bit, fit_ou_node_type_bit, position_template_id, project_team_manage_role_resource_id, from_pre_role_id, job_code, is_display, sort, enabled)
|
||||
VALUES (101100, '超级管理员', '超级管理员', 'super_admin', 'ou_superadmin', 0, 0, 7, 1, 0, '2024-09-25 21:47:42', '2024-09-29 17:17:27', 2051297, 2051297, 1, 65535, 0, null, 0, '', 1, 0, 1);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user