feat:(REQ-3282) 增加角色分组的page接口

This commit is contained in:
李龙 2024-12-10 15:49:40 +08:00
parent 07256a629f
commit 0a6670666a
14 changed files with 497 additions and 41 deletions

View File

@ -2,6 +2,7 @@ package cn.axzo.tyr.client.model.req;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -62,4 +63,10 @@ public class ListSaasRoleGroupParam {
@CriteriaField(field = "parentId", operator = Operator.IN)
private Set<Long> parentIds;
/**
* needRole = true才生效
*/
@CriteriaField(ignore = true)
private Set<RoleTypeEnum> roleTypes;
}

View File

@ -5,12 +5,18 @@ import cn.axzo.foundation.result.ApiResult;
import cn.axzo.tyr.feign.req.PageRoleReq;
import cn.axzo.tyr.feign.resp.RoleResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}")
public interface RoleApi {
/**
* 角色分页接口
* @param req
* @return
*/
@PostMapping("/api/role/page")
ApiResult<PageResp<RoleResp>> page(@RequestBody PageRoleReq req);
ApiResult<PageResp<RoleResp>> page(@RequestBody @Validated PageRoleReq req);
}

View File

@ -0,0 +1,22 @@
package cn.axzo.tyr.feign.api;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.tyr.feign.req.PageRoleGroupReq;
import cn.axzo.tyr.feign.resp.RoleGroupResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}")
public interface RoleGroupApi {
/**
* 角色分组接口
* @param req
* @return
*/
@PostMapping("/api/roleGroup/page")
ApiResult<PageResp<RoleGroupResp>> page(@RequestBody @Validated PageRoleGroupReq req);
}

View File

@ -0,0 +1,53 @@
package cn.axzo.tyr.feign.req;
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Max;
import java.util.List;
import java.util.Set;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageRoleGroupReq {
private Integer page;
/**
* 最大值1000
*/
@Max(value = 1000, message = "pageSize最大值为1000")
private Integer pageSize;
/**
* 排序使用示例createTime__DESC
*/
private List<String> sort;
/**
* 角色分组code
*/
private Set<String> roleGroupCodes;
/**
* 角色类型:RoleTypeEnum
* super_admin:超级管理员
* admin:管理员
* init:初始化内置角色-标准角色
* auto_own:虚拟角色(自定义权限使用)
* common:自定义角色
*
* needRole = true时才生效
*/
private Set<RoleTypeEnum> roleTypes;
/**
* 是否需要角色信息
*/
private Boolean needRole;
}

View File

@ -8,6 +8,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Max;
import java.util.List;
import java.util.Set;
@ -19,6 +20,10 @@ public class PageRoleReq {
private Integer page;
/**
* 最大值1000
*/
@Max(value = 1000, message = "pageSize最大值为1000")
private Integer pageSize;
/**

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
@Data
@Builder
@ -78,4 +79,9 @@ public class RoleGroupResp {
* 更新时间
*/
private Date updateAt;
/**
* 角色信息
*/
private List<RoleResp> roles;
}

View File

@ -30,8 +30,7 @@ public enum BizResultCode implements IResultCode {
FEATURE_NAME_EXIST("100020", "菜单组件名字已经存在:{}"),
TERMINAL_EXIST("100021", "新端已经存在:{}"),
TERMINAL_NOT_FOUND("100022", "原端不存在:{}"),
FEATURE_CODE_OVER_LENGTH("100023", "组件code不能超过100个字符:{}"),
MAX_PAGE_SIZE_ERROR("100024", "最大PAGE_SIZE不能超过1000");
FEATURE_CODE_OVER_LENGTH("100023", "组件code不能超过100个字符:{}");
private String errorCode;

View File

@ -1,6 +1,5 @@
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;
@ -24,13 +23,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
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 {
@ -40,8 +35,6 @@ public class RoleController implements RoleApi {
@Override
public ApiResult<PageResp<RoleResp>> page(PageRoleReq req) {
check(req);
PageResp<SaasRoleRes> page = roleService.page(from(req));
return ApiResult.success(PageResp.<RoleResp>builder()
@ -186,6 +179,9 @@ public class RoleController implements RoleApi {
private RoleResp from(SaasRoleRes saasRoleRes) {
RoleResp result = RoleResp.builder().build();
BeanUtils.copyProperties(saasRoleRes, result);
result.setRoleId(saasRoleRes.getId());
result.setCooperateShipType(saasRoleRes.getProductUnitType());
result.setOuId(saasRoleRes.getOwnerOuId());
assembleRoleFeatureResource(saasRoleRes, result);
@ -196,11 +192,4 @@ public class RoleController implements RoleApi {
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);
}
}
}

View File

@ -0,0 +1,79 @@
package cn.axzo.tyr.server.controller.v2;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
import cn.axzo.tyr.client.model.req.PageSaasRoleGroupParam;
import cn.axzo.tyr.client.model.res.SaasRoleGroupDTO;
import cn.axzo.tyr.feign.api.RoleGroupApi;
import cn.axzo.tyr.feign.req.PageRoleGroupReq;
import cn.axzo.tyr.feign.resp.RoleGroupResp;
import cn.axzo.tyr.feign.resp.RoleResp;
import cn.axzo.tyr.server.service.SaasRoleGroupService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import java.util.Optional;
import java.util.stream.Collectors;
@Slf4j
@RestController
public class RoleGroupController implements RoleGroupApi {
@Autowired
private SaasRoleGroupService saasRoleGroupService;
@Override
public ApiResult<PageResp<RoleGroupResp>> page(PageRoleGroupReq req) {
PageResp<SaasRoleGroupDTO> page = saasRoleGroupService.page(from(req));
return ApiResult.success(PageResp.<RoleGroupResp>builder()
.total(page.getTotal())
.size(page.getSize())
.current(page.getCurrent())
.data(page.getData().stream()
.map(this::from)
.collect(Collectors.toList()))
.build());
}
private PageSaasRoleGroupParam from(PageRoleGroupReq req) {
PageSaasRoleGroupParam result = PageSaasRoleGroupParam.builder().build();
BeanUtils.copyProperties(req, result);
result.setRoleTypes(Optional.ofNullable(req.getRoleTypes())
.map(e -> e.stream()
.map(roleType -> RoleTypeEnum.valueOf(roleType.name()))
.collect(Collectors.toSet()))
.orElse(null));
return result;
}
private RoleGroupResp from(SaasRoleGroupDTO saasRoleGroupDTO) {
RoleGroupResp result = RoleGroupResp.builder().build();
assembleRole(saasRoleGroupDTO, result);
return result;
}
private void assembleRole(SaasRoleGroupDTO saasRoleGroupDTO, RoleGroupResp roleGroupResp) {
if (CollectionUtils.isEmpty(saasRoleGroupDTO.getSaasRoles())) {
return;
}
roleGroupResp.setRoles(saasRoleGroupDTO.getSaasRoles().stream()
.map(saasRole -> {
RoleResp roleResp = RoleResp.builder().build();
BeanUtils.copyProperties(saasRole, roleResp);
roleResp.setRoleId(saasRole.getId());
roleResp.setCooperateShipType(saasRole.getProductUnitType());
roleResp.setOuId(saasRole.getOwnerOuId());
return roleResp;
})
.collect(Collectors.toList()));
}
}

View File

@ -8,6 +8,7 @@ import cn.axzo.foundation.exception.Axssert;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
import cn.axzo.tyr.client.model.req.ListRoleReq;
import cn.axzo.tyr.client.model.req.ListSaasRoleGroupParam;
import cn.axzo.tyr.client.model.req.PageSaasRoleGroupParam;
@ -438,12 +439,19 @@ public class SaasRoleGroupServiceImpl extends ServiceImpl<SaasRoleGroupMapper, S
if (CollectionUtils.isEmpty(roleIds)) {
return Collections.emptyMap();
}
ListRoleReq listSaasRoleParam = ListRoleReq.builder().build();
listSaasRoleParam.setRoleIds(roleIds);
ListRoleReq listSaasRoleParam = ListRoleReq.builder()
.roleIds(roleIds)
.roleTypes(Optional.ofNullable(param.getRoleTypes())
.map(e -> e.stream()
.map(RoleTypeEnum::getValue)
.collect(Collectors.toList()))
.orElse(null))
.build();
Map<Long, SaasRoleRes> roles = roleService.list(listSaasRoleParam).stream()
.collect(Collectors.toMap(SaasRoleRes::getId, Function.identity()));
return saasRoleGroupRelations.stream()
.filter(e -> Objects.nonNull(roles.get(e.getRoleId())))
.collect(Collectors.groupingBy(SaasRoleGroupRelation::getSaasRoleGroupId,
LinkedHashMap::new,
Collectors.mapping(e -> roles.get(e.getRoleId()), Collectors.toList())));

View File

@ -1,11 +1,7 @@
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;
@ -27,10 +23,6 @@ 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
@ -50,16 +42,6 @@ class RoleControllerTest extends BaseTest {
@Test
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))
.pageSize(1000)
@ -68,6 +50,24 @@ class RoleControllerTest extends BaseTest {
.getData();
Assertions.assertEquals(roleResps.size(), 1);
Assertions.assertEquals(roleResps.get(0).getRoleId(), 24425L);
Assertions.assertEquals(roleResps.get(0).getRoleCode(), "oms:project_manager");
Assertions.assertEquals(roleResps.get(0).getName(), "项目经理");
Assertions.assertEquals(roleResps.get(0).getDescription(), "描述");
Assertions.assertEquals(roleResps.get(0).getRoleType(), "init");
Assertions.assertEquals(roleResps.get(0).getWorkspaceId(), -1L);
Assertions.assertEquals(roleResps.get(0).getOuId(), -1L);
Assertions.assertEquals(roleResps.get(0).getCooperateShipType(), 6);
Assertions.assertEquals(roleResps.get(0).getCreateBy(), 2003043L);
Assertions.assertEquals(roleResps.get(0).getUpdateBy(), 2003028L);
Assertions.assertTrue(roleResps.get(0).getIsDisplay());
Assertions.assertTrue(roleResps.get(0).getEnabled());
Assertions.assertEquals(roleResps.get(0).getSort(), 2);
Assertions.assertEquals(LocalDateTime.ofInstant(roleResps.get(0).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 9, 19, 15, 22, 55));
Assertions.assertEquals(LocalDateTime.ofInstant(roleResps.get(0).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 25));
roleResps = roleController.page(PageRoleReq.builder()
.workspaceType(6)
.build())

View File

@ -0,0 +1,229 @@
package cn.axzo.tyr.server.controller.v2;
import cn.axzo.tyr.base.BaseTest;
import cn.axzo.tyr.base.MysqlDataLoader;
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
import cn.axzo.tyr.feign.req.PageRoleGroupReq;
import cn.axzo.tyr.feign.resp.RoleGroupResp;
import com.google.common.collect.Sets;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
class RoleGroupControllerTest extends BaseTest {
@Autowired
private MysqlDataLoader mysqlDataLoader;
@Autowired
private RoleGroupController roleGroupController;
@BeforeEach
@Override
public void setup() {
super.setup();
mysqlDataLoader.loadFromClassName(getClass().getSimpleName());
MockitoAnnotations.initMocks(this);
}
@Test
void page() {
List<RoleGroupResp> page = roleGroupController.page(PageRoleGroupReq.builder()
.build())
.getData()
.getData();
Assertions.assertEquals(page.size(), 5);
page = roleGroupController.page(PageRoleGroupReq.builder()
.roleGroupCodes(Sets.newHashSet("A1", "A2"))
.build())
.getData()
.getData();
Assertions.assertEquals(page.size(), 2);
page = roleGroupController.page(PageRoleGroupReq.builder()
.roleGroupCodes(Sets.newHashSet("A1", "A2"))
.needRole(true)
.build())
.getData()
.getData();
Assertions.assertEquals(page.size(), 2);
Assertions.assertEquals(page.get(0).getRoles().size(), 1);
Assertions.assertEquals(page.get(0).getRoles().get(0).getRoleId(), 24425L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getRoleCode(), "oms:project_manager");
Assertions.assertEquals(page.get(0).getRoles().get(0).getName(), "项目经理");
Assertions.assertEquals(page.get(0).getRoles().get(0).getDescription(), "描述");
Assertions.assertEquals(page.get(0).getRoles().get(0).getRoleType(), "init");
Assertions.assertEquals(page.get(0).getRoles().get(0).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getOuId(), -1L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getCooperateShipType(), 6);
Assertions.assertEquals(page.get(0).getRoles().get(0).getCreateBy(), 2003043L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getUpdateBy(), 2003028L);
Assertions.assertTrue(page.get(0).getRoles().get(0).getIsDisplay());
Assertions.assertTrue(page.get(0).getRoles().get(0).getEnabled());
Assertions.assertEquals(page.get(0).getRoles().get(0).getSort(), 2);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(0).getRoles().get(0).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 9, 19, 15, 22, 55));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(0).getRoles().get(0).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 25));
Assertions.assertEquals(page.get(1).getRoles().size(), 3);
Assertions.assertEquals(page.get(1).getRoles().get(0).getRoleId(), 25324L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getRoleCode(), "cms:mafb_project_commissioner");
Assertions.assertEquals(page.get(1).getRoles().get(0).getName(), "项目负责人");
Assertions.assertEquals(page.get(1).getRoles().get(0).getDescription(), "");
Assertions.assertEquals(page.get(1).getRoles().get(0).getRoleType(), "init");
Assertions.assertEquals(page.get(1).getRoles().get(0).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getOuId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getCooperateShipType(), 5);
Assertions.assertEquals(page.get(1).getRoles().get(0).getCreateBy(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getUpdateBy(), 9000399985L);
Assertions.assertTrue(page.get(1).getRoles().get(0).getIsDisplay());
Assertions.assertTrue(page.get(1).getRoles().get(0).getEnabled());
Assertions.assertEquals(page.get(1).getRoles().get(0).getSort(), 1);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(0).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 10, 23, 17, 49, 59));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(0).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 40));
Assertions.assertEquals(page.get(1).getRoles().get(1).getRoleId(), 25326L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getRoleCode(), "cms:mafb_business_vice_officer");
Assertions.assertEquals(page.get(1).getRoles().get(1).getName(), "商务副经理");
Assertions.assertEquals(page.get(1).getRoles().get(1).getDescription(), "");
Assertions.assertEquals(page.get(1).getRoles().get(1).getRoleType(), "init");
Assertions.assertEquals(page.get(1).getRoles().get(1).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getOuId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getCooperateShipType(), 5);
Assertions.assertEquals(page.get(1).getRoles().get(1).getCreateBy(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getUpdateBy(), 2006333L);
Assertions.assertTrue(page.get(1).getRoles().get(1).getIsDisplay());
Assertions.assertTrue(page.get(1).getRoles().get(1).getEnabled());
Assertions.assertEquals(page.get(1).getRoles().get(1).getSort(), 2);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(1).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 10, 23, 17, 50, 0));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(1).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 41));
Assertions.assertEquals(page.get(1).getRoles().get(2).getRoleId(), 25327L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getRoleCode(), "cms:mafb_productivity_vice_officer");
Assertions.assertEquals(page.get(1).getRoles().get(2).getName(), "生产副经理");
Assertions.assertEquals(page.get(1).getRoles().get(2).getDescription(), "");
Assertions.assertEquals(page.get(1).getRoles().get(2).getRoleType(), "init");
Assertions.assertEquals(page.get(1).getRoles().get(2).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getOuId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getCooperateShipType(), 5);
Assertions.assertEquals(page.get(1).getRoles().get(2).getCreateBy(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getUpdateBy(), 2006333L);
Assertions.assertTrue(page.get(1).getRoles().get(2).getIsDisplay());
Assertions.assertTrue(page.get(1).getRoles().get(2).getEnabled());
Assertions.assertEquals(page.get(1).getRoles().get(2).getSort(), 3);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(2).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 10, 23, 17, 50, 0));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(2).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 41));
page = roleGroupController.page(PageRoleGroupReq.builder()
.roleGroupCodes(Sets.newHashSet("A1", "A2"))
.needRole(true)
.roleTypes(Sets.newHashSet(RoleTypeEnum.SUPER_ADMIN))
.build())
.getData()
.getData();
Assertions.assertEquals(page.size(), 2);
Assertions.assertNull(page.get(0).getRoles());
Assertions.assertNull(page.get(1).getRoles());
page = roleGroupController.page(PageRoleGroupReq.builder()
.roleGroupCodes(Sets.newHashSet("A1", "A2"))
.needRole(true)
.roleTypes(Sets.newHashSet(RoleTypeEnum.INIT))
.build())
.getData()
.getData();
Assertions.assertEquals(page.size(), 2);
Assertions.assertEquals(page.get(0).getRoles().size(), 1);
Assertions.assertEquals(page.get(0).getRoles().get(0).getRoleId(), 24425L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getRoleCode(), "oms:project_manager");
Assertions.assertEquals(page.get(0).getRoles().get(0).getName(), "项目经理");
Assertions.assertEquals(page.get(0).getRoles().get(0).getDescription(), "描述");
Assertions.assertEquals(page.get(0).getRoles().get(0).getRoleType(), "init");
Assertions.assertEquals(page.get(0).getRoles().get(0).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getOuId(), -1L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getCooperateShipType(), 6);
Assertions.assertEquals(page.get(0).getRoles().get(0).getCreateBy(), 2003043L);
Assertions.assertEquals(page.get(0).getRoles().get(0).getUpdateBy(), 2003028L);
Assertions.assertTrue(page.get(0).getRoles().get(0).getIsDisplay());
Assertions.assertTrue(page.get(0).getRoles().get(0).getEnabled());
Assertions.assertEquals(page.get(0).getRoles().get(0).getSort(), 2);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(0).getRoles().get(0).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 9, 19, 15, 22, 55));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(0).getRoles().get(0).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 25));
Assertions.assertEquals(page.get(1).getRoles().size(), 3);
Assertions.assertEquals(page.get(1).getRoles().get(0).getRoleId(), 25324L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getRoleCode(), "cms:mafb_project_commissioner");
Assertions.assertEquals(page.get(1).getRoles().get(0).getName(), "项目负责人");
Assertions.assertEquals(page.get(1).getRoles().get(0).getDescription(), "");
Assertions.assertEquals(page.get(1).getRoles().get(0).getRoleType(), "init");
Assertions.assertEquals(page.get(1).getRoles().get(0).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getOuId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getCooperateShipType(), 5);
Assertions.assertEquals(page.get(1).getRoles().get(0).getCreateBy(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(0).getUpdateBy(), 9000399985L);
Assertions.assertTrue(page.get(1).getRoles().get(0).getIsDisplay());
Assertions.assertTrue(page.get(1).getRoles().get(0).getEnabled());
Assertions.assertEquals(page.get(1).getRoles().get(0).getSort(), 1);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(0).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 10, 23, 17, 49, 59));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(0).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 40));
Assertions.assertEquals(page.get(1).getRoles().get(1).getRoleId(), 25326L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getRoleCode(), "cms:mafb_business_vice_officer");
Assertions.assertEquals(page.get(1).getRoles().get(1).getName(), "商务副经理");
Assertions.assertEquals(page.get(1).getRoles().get(1).getDescription(), "");
Assertions.assertEquals(page.get(1).getRoles().get(1).getRoleType(), "init");
Assertions.assertEquals(page.get(1).getRoles().get(1).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getOuId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getCooperateShipType(), 5);
Assertions.assertEquals(page.get(1).getRoles().get(1).getCreateBy(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(1).getUpdateBy(), 2006333L);
Assertions.assertTrue(page.get(1).getRoles().get(1).getIsDisplay());
Assertions.assertTrue(page.get(1).getRoles().get(1).getEnabled());
Assertions.assertEquals(page.get(1).getRoles().get(1).getSort(), 2);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(1).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 10, 23, 17, 50, 0));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(1).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 41));
Assertions.assertEquals(page.get(1).getRoles().get(2).getRoleId(), 25327L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getRoleCode(), "cms:mafb_productivity_vice_officer");
Assertions.assertEquals(page.get(1).getRoles().get(2).getName(), "生产副经理");
Assertions.assertEquals(page.get(1).getRoles().get(2).getDescription(), "");
Assertions.assertEquals(page.get(1).getRoles().get(2).getRoleType(), "init");
Assertions.assertEquals(page.get(1).getRoles().get(2).getWorkspaceId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getOuId(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getCooperateShipType(), 5);
Assertions.assertEquals(page.get(1).getRoles().get(2).getCreateBy(), -1L);
Assertions.assertEquals(page.get(1).getRoles().get(2).getUpdateBy(), 2006333L);
Assertions.assertTrue(page.get(1).getRoles().get(2).getIsDisplay());
Assertions.assertTrue(page.get(1).getRoles().get(2).getEnabled());
Assertions.assertEquals(page.get(1).getRoles().get(2).getSort(), 3);
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(2).getCreateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2023, 10, 23, 17, 50, 0));
Assertions.assertEquals(LocalDateTime.ofInstant(page.get(1).getRoles().get(2).getUpdateAt().toInstant(), ZoneId.systemDefault()),
LocalDateTime.of(2024, 8, 13, 10, 25, 41));
}
}

View File

@ -1,8 +1,12 @@
#-->DEFAULT
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 (24425, '项目经理', '', 'init', 'oms:project_manager', -1, -1, 6, 6, 0, '2023-09-19 15:22:55', '2024-08-13 10:25:25', 2003043, 2003028, 1, 65535, 0, null, 0, '', 1, 2, 1);
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 (25324, '项目负责人', '', 'init', 'cms:mafb_project_commissioner', -1, -1, 5, 2, 0, '2023-10-23 17:49:59', '2024-08-13 10:25:40', -1, 9000399985, 1, 65535, 0, null, 0, '', 1, 1, 1);
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 (25326, '商务副经理', '', 'init', 'cms:mafb_business_vice_officer', -1, -1, 5, 2, 0, '2023-10-23 17:50:00', '2024-08-13 10:25:41', -1, 2006333, 1, 65535, 0, null, 0, '', 1, 2, 1);
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 (25327, '生产副经理', '', 'init', 'cms:mafb_productivity_vice_officer', -1, -1, 5, 2, 0, '2023-10-23 17:50:00', '2024-08-13 10:25:41', -1, 2006333, 1, 65535, 0, null, 0, '', 1, 3, 1);
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 (24425, '项目经理', '描述', 'init', 'oms:project_manager', -1, -1, 6, 6, 0, '2023-09-19 15:22:55', '2024-08-13 10:25:25', 2003043, 2003028, 1, 65535, 0, null, 0, '', 1, 2, 1);
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 (25324, '项目负责人', '', 'init', 'cms:mafb_project_commissioner', -1, -1, 5, 2, 0, '2023-10-23 17:49:59', '2024-08-13 10:25:40', -1, 9000399985, 1, 65535, 0, null, 0, '', 1, 1, 1);
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 (25326, '商务副经理', '', 'init', 'cms:mafb_business_vice_officer', -1, -1, 5, 2, 0, '2023-10-23 17:50:00', '2024-08-13 10:25:41', -1, 2006333, 1, 65535, 0, null, 0, '', 1, 2, 1);
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 (25327, '生产副经理', '', 'init', 'cms:mafb_productivity_vice_officer', -1, -1, 5, 2, 0, '2023-10-23 17:50:00', '2024-08-13 10:25:41', -1, 2006333, 1, 65535, 0, null, 0, '', 1, 3, 1);
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at) VALUES (12, 24425, 6, 0, '2023-09-19 15:22:55', '2023-09-19 15:22:55');

View File

@ -0,0 +1,49 @@
#-->DEFAULT
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 (24425, '项目经理', '描述', 'init', 'oms:project_manager', -1, -1, 6, 6, 0, '2023-09-19 15:22:55', '2024-08-13 10:25:25', 2003043, 2003028, 1, 65535, 0, null, 0, '', 1, 2, 1);
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 (25324, '项目负责人', '', 'init', 'cms:mafb_project_commissioner', -1, -1, 5, 2, 0, '2023-10-23 17:49:59', '2024-08-13 10:25:40', -1, 9000399985, 1, 65535, 0, null, 0, '', 1, 1, 1);
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 (25326, '商务副经理', '', 'init', 'cms:mafb_business_vice_officer', -1, -1, 5, 2, 0, '2023-10-23 17:50:00', '2024-08-13 10:25:41', -1, 2006333, 1, 65535, 0, null, 0, '', 1, 2, 1);
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 (25327, '生产副经理', '', 'init', 'cms:mafb_productivity_vice_officer', -1, -1, 5, 2, 0, '2023-10-23 17:50:00', '2024-08-13 10:25:41', -1, 2006333, 1, 65535, 0, null, 0, '', 1, 3, 1);
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at) VALUES (12, 24425, 6, 0, '2023-09-19 15:22:55', '2023-09-19 15:22:55');
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at) VALUES (23, 25324, 13, 0, '2023-10-23 17:49:59', '2023-10-23 17:49:58');
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, 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);
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 (101101, '超级管理员', '超级管理员', 'super_admin', 'pro_superadmin', 0, 0, 1, 2, 0, '2024-09-25 21:47:42', '2024-09-29 17:17:27', 2051297, 2051297, 1, 65535, 0, null, 0, '', 1, 0, 1);
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 (101102, '超级管理员', '超级管理员', 'super_admin', 'oms_superadmin', 0, 0, 6, 6, 0, '2024-09-25 21:47:42', '2024-09-29 17:17:27', 2051297, 2051297, 1, 65535, 0, null, 0, '', 1, 0, 1);
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 (101103, '超级管理员', '超级管理员', 'super_admin', 'zw_superadmin', 0, 0, 3, 3, 0, '2024-09-25 21:47:42', '2024-09-29 17:17:27', 2051297, 2051297, 1, 65535, 0, null, 0, '', 1, 0, 1);
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 (3416, '自定义', '', 'common', '', 3, 4, 1, 2, 0, '2022-10-19 15:52:33', '2024-09-29 17:16:27', 0, 0, 65535, 65535, 0, 0, 0, '', 1, 0, 1);
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at)
VALUES (549, 101100, 18, 0, '2024-09-25 21:47:42', '2024-09-25 21:47:42');
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at)
VALUES (550, 101101, 14, 0, '2024-09-25 21:47:42', '2024-09-25 21:47:42');
INSERT INTO saas_role_group_relation (id, role_id, saas_role_group_id, is_delete, create_at, update_at)
VALUES (551, 101102, 57, 0, '2024-09-25 21:47:42', '2024-09-25 21:47:42');
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 (14, '2', '1', '总包单位', -1, -1, 0, 1, '', '', 0, '2023-10-23 17:50:04', '2024-09-10 10:18:44', '14,');
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 (18, '1', '7', '企业通用', -1, -1, 0, 4, '', '', 0, '2023-10-23 17:50:15', '2024-09-10 10:18:44', '18,');
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 (57, '6', '6', 'OMS超管组', -1, -1, 0, 9, 'omsSuperAdminGroup', '', 0, '2024-04-17 11:38:28', '2024-09-10 10:18:45', '57,');
#-->SaasRoleUserRelationServiceImplTest.sql