From d31cfc503ddbf9f9cfac5f65d0ee2b87cab3e56f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=BE=99?= Date: Mon, 9 Dec 2024 10:35:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:(REQ-3282)=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/tyr/feign/req/PageRoleReq.java | 14 +++- .../server/controller/v2/RoleController.java | 30 ++++---- .../server/service/impl/RoleServiceImpl.java | 2 +- .../controller/v2/RoleControllerTest.java | 72 +++++++++++++++---- 4 files changed, 87 insertions(+), 31 deletions(-) diff --git a/tyr-client/src/main/java/cn/axzo/tyr/feign/req/PageRoleReq.java b/tyr-client/src/main/java/cn/axzo/tyr/feign/req/PageRoleReq.java index 2cd59c8a..6cfd6478 100644 --- a/tyr-client/src/main/java/cn/axzo/tyr/feign/req/PageRoleReq.java +++ b/tyr-client/src/main/java/cn/axzo/tyr/feign/req/PageRoleReq.java @@ -1,9 +1,8 @@ package cn.axzo.tyr.feign.req; -import cn.axzo.foundation.page.PageReq; +import cn.axzo.tyr.feign.enums.FeatureResourceTypeEnum; import cn.axzo.tyr.feign.enums.RolePermissionTagEnum; import cn.axzo.tyr.feign.enums.RoleTypeEnum; -import cn.axzo.tyr.feign.enums.FeatureResourceTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,7 +15,16 @@ import java.util.Set; @Builder @NoArgsConstructor @AllArgsConstructor -public class PageRoleReq extends PageReq { +public class PageRoleReq { + + private Integer page; + + private Integer pageSize; + + /** + * 排序:使用示例,createTime__DESC + */ + private List sort; /** * 角色id diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/v2/RoleController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/v2/RoleController.java index 65b9ad87..9b114598 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/v2/RoleController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/v2/RoleController.java @@ -17,6 +17,7 @@ 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; @@ -85,20 +86,23 @@ public class RoleController implements RoleApi { RoleResp result = RoleResp.builder().build(); BeanUtils.copyProperties(saasRoleRes, result); - result.setRoleFeatureResources(saasRoleRes.getSaasPermissions().stream() - .map(permission -> { - RoleFeatureResourceResp roleFeatureResourceResp = RoleFeatureResourceResp.builder().build(); - BeanUtils.copyProperties(permission, roleFeatureResourceResp); + 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())); + roleFeatureResourceResp.setTags(Optional.ofNullable(permission.getTags()) + .map(tags -> tags.stream() + .map(RolePermissionTagEnum::getDesc) + .collect(Collectors.toSet()) + ) + .orElse(null)); + return roleFeatureResourceResp; + }) + .collect(Collectors.toList())); + } + return result; } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java index 5494e4ab..2a1f3d28 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java @@ -1455,7 +1455,7 @@ public class RoleServiceImpl extends ServiceImpl Map> saasRoleUsers = listSaasRoleUser(param, page.getRecords()); Map> permissionRelations = listRolePermissionRelations(param, page.getRecords()); -ºº + return PageConverter.toResp(page, (record) -> from(record, saasRoleGroups, BooleanUtils.isTrue(param.getNeedPermissionOld()) ? saasPermissionsOld : saasPermissions, diff --git a/tyr-server/src/test/java/cn/axzo/tyr/server/controller/v2/RoleControllerTest.java b/tyr-server/src/test/java/cn/axzo/tyr/server/controller/v2/RoleControllerTest.java index 617f5a81..4ff715d5 100644 --- a/tyr-server/src/test/java/cn/axzo/tyr/server/controller/v2/RoleControllerTest.java +++ b/tyr-server/src/test/java/cn/axzo/tyr/server/controller/v2/RoleControllerTest.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.controller.v2; 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.RoleTypeEnum; import cn.axzo.tyr.feign.req.PageRoleReq; import cn.axzo.tyr.feign.resp.RoleResp; @@ -30,87 +31,130 @@ class RoleControllerTest extends BaseTest { } @Test void list() { - List roleResps = roleController.list(PageRoleReq.builder() + List roleResps = roleController.page(PageRoleReq.builder() .roleIds(Sets.newHashSet(24425L)) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 1); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .workspaceType(6) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 2); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .isDisplay(true) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 9); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .roleCode("oms:project_manager") .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 1); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .workspaceIds(Sets.newHashSet(3L, 0L)) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 5); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .ouIds(Sets.newHashSet(4L, 0L)) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 5); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .enabled(true) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 9); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .roleTypes(Sets.newHashSet(RoleTypeEnum.SUPER_ADMIN)) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 4); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .workspaceOuPairs(Lists.newArrayList(PageRoleReq.WorkspaceOuPair.builder() .workspaceId(3L) .ouId(4L) .build())) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 1); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .roleCodes(Sets.newHashSet("ou_superadmin")) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 1); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .roleGroupCodes(Sets.newHashSet("omsSuperAdminGroup")) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 1); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .cooperateShipTypes(Sets.newHashSet(1)) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 2); - roleResps = roleController.list(PageRoleReq.builder() + roleResps = roleController.page(PageRoleReq.builder() .roleIds(Sets.newHashSet(24425L)) .needFeatureResources(true) .build()) + .getData() .getData(); Assertions.assertEquals(roleResps.size(), 1); - Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().size(), 10); + Assertions.assertEquals(roleResps.get(0).getRoleFeatureResources().size(), 5); + 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.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.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.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.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.assertEquals(roleResps.get(0).getRoleFeatureResources().get(4).getTerminal(), "NT_OMS_WEB"); + } } \ No newline at end of file