From bfa8a18432b72d2f97c736ea7d544b33b47fe3d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=86=E9=B9=8F?= Date: Tue, 27 Aug 2024 14:47:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-2899):=E5=89=8D=E7=AB=AF=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/tyr/client/feign/PageElementApi.java | 9 ++-- .../client/model/req/GetPageElementReq.java | 6 --- .../PageElementCategoryAndElementResp.java | 26 ++++++++++++ .../tyr/client/model/res/PageElementResp.java | 3 ++ .../permission/PageElementController.java | 7 +--- .../service/SaasPageElementService.java | 7 +--- .../impl/SaasPageElementServiceImpl.java | 42 ++++++++++++------- 7 files changed, 62 insertions(+), 38 deletions(-) create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementCategoryAndElementResp.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java index e57ad4b5..c6bdb2bc 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java @@ -3,10 +3,7 @@ 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.*; -import cn.axzo.tyr.client.model.res.FeatureResourcePageElementRelationViewResp; -import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp; -import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp; -import cn.axzo.tyr.client.model.res.PageElementResp; +import cn.axzo.tyr.client.model.res.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -38,7 +35,7 @@ public interface PageElementApi { /** 分页查询页面资源 **/ @PostMapping("/api/pageElement/page") - ApiPageResult page(@RequestBody @Valid PageQueryElementReq req); + ApiPageResult page(@RequestBody @Valid PageQueryElementReq req); /** 根据用户传入的页面code,查询用户有权限的元素code **/ @PostMapping("/api/pageElement/getUserHasPermissionPageElement") @@ -71,7 +68,7 @@ public interface PageElementApi { @PostMapping("/api/pageElement/delete") ApiResult delete(@RequestBody @Valid DeletePageElementReq req); - /** 删除页面元素 **/ + /** 查询页面元素关联关系 **/ @PostMapping("/api/pageElement/getFeatureResourceRelations") ApiResult getFeatureResourceRelations(@RequestBody @Valid IdReq req); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetPageElementReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetPageElementReq.java index cdf95126..56d0c85d 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetPageElementReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetPageElementReq.java @@ -40,10 +40,4 @@ public class GetPageElementReq { */ @Builder.Default private List relationTypes = Lists.newArrayList(0, 1); - - /** - * 是否按组分组返回 - */ - @Builder.Default - private Boolean returnWithGroup = Boolean.FALSE; } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementCategoryAndElementResp.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementCategoryAndElementResp.java new file mode 100644 index 00000000..fcda3eee --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementCategoryAndElementResp.java @@ -0,0 +1,26 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author likunpeng + * @version 1.0 + * @date 2024/8/27 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageElementCategoryAndElementResp { + /** 项目编码 **/ + private String itemCode; + /** 项目名称 **/ + private String itemName; + /** 元素列表 **/ + private List pageElements; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementResp.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementResp.java index 5f51c072..8fae72f1 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementResp.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PageElementResp.java @@ -72,7 +72,10 @@ public class PageElementResp { */ private Boolean selected; + /** 业务编码 **/ private String itemCode; + /** 业务名称 **/ + private String itemName; private String linkExt; diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java index 2875c85c..27dd384e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java @@ -4,10 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.PageElementApi; import cn.axzo.tyr.client.model.req.*; -import cn.axzo.tyr.client.model.res.FeatureResourcePageElementRelationViewResp; -import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp; -import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp; -import cn.axzo.tyr.client.model.res.PageElementResp; +import cn.axzo.tyr.client.model.res.*; import cn.axzo.tyr.server.service.SaasPageElementCategoryService; import cn.axzo.tyr.server.service.SaasPageElementService; import lombok.RequiredArgsConstructor; @@ -47,7 +44,7 @@ public class PageElementController implements PageElementApi { } @Override - public ApiPageResult page(PageQueryElementReq req) { + public ApiPageResult page(PageQueryElementReq req) { return ApiPageResult.ok(saasPageElementService.page(req)); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java index 1ecc29c6..cabd9946 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java @@ -2,10 +2,7 @@ package cn.axzo.tyr.server.service; import cn.axzo.framework.domain.page.PageResp; import cn.axzo.tyr.client.model.req.*; -import cn.axzo.tyr.client.model.res.FeatureResourcePageElementRelationViewResp; -import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp; -import cn.axzo.tyr.client.model.res.PageElementBasicDTO; -import cn.axzo.tyr.client.model.res.PageElementResp; +import cn.axzo.tyr.client.model.res.*; import cn.axzo.tyr.server.repository.entity.SaasPageElement; import com.baomidou.mybatisplus.extension.service.IService; @@ -64,7 +61,7 @@ public interface SaasPageElementService extends IService { * @param request 查询条件 * @return */ - PageResp page(PageQueryElementReq request); + PageResp page(PageQueryElementReq request); /** * 根据用户传入的页面code,查询用户有权限的元素code diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java index 829f5f6d..02ce55da 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java @@ -151,8 +151,7 @@ public class SaasPageElementServiceImpl extends ServiceImpl resps = change2PageElementResp(selectedPageElements, selectedIds); - return Boolean.TRUE.equals(request.getReturnWithGroup()) ? changeElementsWithGroup(resps) : resps; + return change2PageElementResp(selectedPageElements, selectedIds); } @Override @@ -231,17 +230,21 @@ public class SaasPageElementServiceImpl extends ServiceImpl page(PageQueryElementReq request) { + public PageResp page(PageQueryElementReq request) { IPage page = saasPageElementDao.lambdaQuery() .eq(SaasPageElement::getTerminal, request.getTerminal()) .in(CollectionUtils.isNotEmpty(request.getElementTypes()), SaasPageElement::getType, request.getElementTypes()) .and(StringUtils.isNotBlank(request.getSearchKey()), w -> w.like(SaasPageElement::getCode, request.getSearchKey()) .or().like(SaasPageElement::getName, request.getSearchKey()) - .or().like(SaasPageElement::getLinkUrl, request.getSearchKey())) + .or().like(SaasPageElement::getLinkUrl, request.getSearchKey()) + .or().like(SaasPageElement::getItemCode, request.getSearchKey()) + .or().like(SaasPageElement::getItemName, request.getSearchKey())) .page(new Page<>(request.getPage(), request.getPageSize())); List list = BeanMapper.copyList(page.getRecords(), PageElementResp.class); addComponentElement2Page(request.getTerminal(), list); - return PageResp.list(page.getCurrent(), page.getSize(), page.getTotal(), list); + + List categoryAndElementResps = changeElementWithCategories(list); + return PageResp.list(page.getCurrent(), page.getSize(), page.getTotal(), categoryAndElementResps); } @Override @@ -366,6 +369,8 @@ public class SaasPageElementServiceImpl extends ServiceImpl pageTypeElements = pageElements.stream().filter(e -> PageElementTypeEnum.PAGE.getCode().equals(e.getType())) .map(e -> PageElementResp.builder() .id(e.getId()) + .groupCode(e.getGroupCode()) + .groupName(e.getName()) .code(e.getCode()) .name(e.getName()) .type(e.getType()) @@ -383,6 +388,8 @@ public class SaasPageElementServiceImpl extends ServiceImpl recursiveSetElementToResource(e, relationMap, elementBasic)); } - } - private List changeElementsWithGroup(List resps) { - if (CollectionUtils.isEmpty(resps)) { - return Collections.emptyList(); + private List changeElementWithCategories(List list) { + List resps = Lists.newArrayList(); + if (CollectionUtils.isEmpty(list)) { + return resps; } - Map groupCodeEntityMap = resps.stream().collect(Collectors.toMap(PageElementResp::getGroupCode, Function.identity(), (v1, v2) -> v1)); - Map> groupCodesMap = resps.stream().collect(Collectors.groupingBy(PageElementResp::getGroupCode)); - List result = Lists.newArrayList(); - groupCodesMap.forEach((k, v) -> { - PageElementResp groupEntity = groupCodeEntityMap.get(k); - result.add(PageElementResp.builder().groupCode(k).groupName(groupEntity.getGroupName()).children(v).build()); + Map itemCodeAndElementMap = list.stream().collect(Collectors.toMap(PageElementResp::getItemCode, Function.identity(), (v1, v2) -> v1)); + Map> groupingByItemCodes = list.stream().collect(Collectors.groupingBy(PageElementResp::getItemCode)); + groupingByItemCodes.forEach((k, v) -> { + PageElementResp resp = itemCodeAndElementMap.get(k); + resps.add(PageElementCategoryAndElementResp.builder() + .itemCode(k) + .itemName(resp.getItemName()) + .pageElements(v) + .build()); }); - return result; + return resps; } }