feat(REQ-2899):前端资源删除接口

This commit is contained in:
李昆鹏 2024-08-27 14:47:21 +08:00
parent 59f0748d2c
commit bfa8a18432
7 changed files with 62 additions and 38 deletions

View File

@ -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<PageElementResp> page(@RequestBody @Valid PageQueryElementReq req);
ApiPageResult<PageElementCategoryAndElementResp> page(@RequestBody @Valid PageQueryElementReq req);
/** 根据用户传入的页面code查询用户有权限的元素code **/
@PostMapping("/api/pageElement/getUserHasPermissionPageElement")
@ -71,7 +68,7 @@ public interface PageElementApi {
@PostMapping("/api/pageElement/delete")
ApiResult<Void> delete(@RequestBody @Valid DeletePageElementReq req);
/** 删除页面元素 **/
/** 查询页面元素关联关系 **/
@PostMapping("/api/pageElement/getFeatureResourceRelations")
ApiResult<FeatureResourcePageElementRelationViewResp> getFeatureResourceRelations(@RequestBody @Valid IdReq req);
}

View File

@ -40,10 +40,4 @@ public class GetPageElementReq {
*/
@Builder.Default
private List<Integer> relationTypes = Lists.newArrayList(0, 1);
/**
* 是否按组分组返回
*/
@Builder.Default
private Boolean returnWithGroup = Boolean.FALSE;
}

View File

@ -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<PageElementResp> pageElements;
}

View File

@ -72,7 +72,10 @@ public class PageElementResp {
*/
private Boolean selected;
/** 业务编码 **/
private String itemCode;
/** 业务名称 **/
private String itemName;
private String linkExt;

View File

@ -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<PageElementResp> page(PageQueryElementReq req) {
public ApiPageResult<PageElementCategoryAndElementResp> page(PageQueryElementReq req) {
return ApiPageResult.ok(saasPageElementService.page(req));
}

View File

@ -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<SaasPageElement> {
* @param request 查询条件
* @return
*/
PageResp<PageElementResp> page(PageQueryElementReq request);
PageResp<PageElementCategoryAndElementResp> page(PageQueryElementReq request);
/**
* 根据用户传入的页面code查询用户有权限的元素code

View File

@ -151,8 +151,7 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
}
}
}
List<PageElementResp> 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<SaasPageElementMappe
}
@Override
public PageResp<PageElementResp> page(PageQueryElementReq request) {
public PageResp<PageElementCategoryAndElementResp> page(PageQueryElementReq request) {
IPage<SaasPageElement> 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<PageElementResp> list = BeanMapper.copyList(page.getRecords(), PageElementResp.class);
addComponentElement2Page(request.getTerminal(), list);
return PageResp.list(page.getCurrent(), page.getSize(), page.getTotal(), list);
List<PageElementCategoryAndElementResp> categoryAndElementResps = changeElementWithCategories(list);
return PageResp.list(page.getCurrent(), page.getSize(), page.getTotal(), categoryAndElementResps);
}
@Override
@ -366,6 +369,8 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
List<PageElementResp> 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<SaasPageElementMappe
if (Objects.nonNull(pageTypeElement)) {
pageTypeElement.getChildren().add(PageElementResp.builder()
.id(e.getId())
.groupCode(pageTypeElement.getGroupCode())
.groupName(pageTypeElement.getGroupName())
.code(e.getCode())
.name(e.getName())
.type(e.getType())
@ -879,21 +886,24 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
if (CollectionUtils.isNotEmpty(resource.getChildren())) {
resource.getChildren().forEach(e -> recursiveSetElementToResource(e, relationMap, elementBasic));
}
}
private List<PageElementResp> changeElementsWithGroup(List<PageElementResp> resps) {
if (CollectionUtils.isEmpty(resps)) {
return Collections.emptyList();
private List<PageElementCategoryAndElementResp> changeElementWithCategories(List<PageElementResp> list) {
List<PageElementCategoryAndElementResp> resps = Lists.newArrayList();
if (CollectionUtils.isEmpty(list)) {
return resps;
}
Map<String, PageElementResp> groupCodeEntityMap = resps.stream().collect(Collectors.toMap(PageElementResp::getGroupCode, Function.identity(), (v1, v2) -> v1));
Map<String, List<PageElementResp>> groupCodesMap = resps.stream().collect(Collectors.groupingBy(PageElementResp::getGroupCode));
List<PageElementResp> 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<String, PageElementResp> itemCodeAndElementMap = list.stream().collect(Collectors.toMap(PageElementResp::getItemCode, Function.identity(), (v1, v2) -> v1));
Map<String, List<PageElementResp>> 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;
}
}