feat: (feature/REQ-3167) 资源目录列表接口支持查询页面元素
This commit is contained in:
parent
cbc7769418
commit
944c0d099b
@ -46,7 +46,7 @@ public interface PageElementApi {
|
||||
|
||||
/** 查询页面元素类型(按端分组) **/
|
||||
@PostMapping("/api/pageElementCategory/list")
|
||||
ApiResult<List<ListPageElementCategoryResp>> listPageElementCategory();
|
||||
ApiResult<List<ListPageElementCategoryResp>> listPageElementCategory(@RequestBody PageElementCategoryReq req);
|
||||
|
||||
/** 新增、编辑页面元素类型 **/
|
||||
@PostMapping("/api/pageElementCategory/saveOrUpdate")
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package cn.axzo.tyr.client.model.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PageElementCategoryReq {
|
||||
|
||||
/**
|
||||
* 是否需要查询分组下的页面元素
|
||||
*/
|
||||
private Boolean needPage;
|
||||
}
|
||||
@ -3,6 +3,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.foundation.page.IPageReq;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -34,4 +35,10 @@ public class PageElementReq implements IPageReq {
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needFeatureSource;
|
||||
|
||||
@CriteriaField(field = "itemCode", operator = Operator.IN)
|
||||
private Set<String> itemCodes;
|
||||
|
||||
@CriteriaField(field = "type", operator = Operator.IN)
|
||||
private Set<PageElementTypeEnum> types;
|
||||
}
|
||||
@ -37,5 +37,11 @@ public class ListPageElementCategoryResp {
|
||||
private String itemName;
|
||||
/** 端 **/
|
||||
private String terminal;
|
||||
|
||||
/**
|
||||
* 分组下的页面元素,
|
||||
* 1、needPage = true:这里只有saas_page_element.type = PAGE的记录
|
||||
*/
|
||||
private List<PageElementResp> pageElement;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,8 +3,25 @@ package cn.axzo.tyr.server.controller.permission;
|
||||
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.*;
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.GetPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.GetUserHasPermissionPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.IdReq;
|
||||
import cn.axzo.tyr.client.model.req.ModifyPageElementRelationDTO;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementImportDataReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReportReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PageQueryElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PageQueryElementV2Req;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementReq;
|
||||
import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementCategoryAndElementResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementRelationFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementCategoryService;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -59,8 +76,8 @@ public class PageElementController implements PageElementApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<ListPageElementCategoryResp>> listPageElementCategory() {
|
||||
return ApiResult.ok(saasPageElementCategoryService.listGroupByTerminal());
|
||||
public ApiResult<List<ListPageElementCategoryResp>> listPageElementCategory(PageElementCategoryReq req) {
|
||||
return ApiResult.ok(saasPageElementCategoryService.listGroupByTerminal(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp;
|
||||
|
||||
@ -13,7 +14,7 @@ import java.util.List;
|
||||
*/
|
||||
public interface SaasPageElementCategoryService {
|
||||
|
||||
List<ListPageElementCategoryResp> listGroupByTerminal();
|
||||
List<ListPageElementCategoryResp> listGroupByTerminal(PageElementCategoryReq req);
|
||||
|
||||
Long saveOrUpdate(SaveOrUpdatePageElementCategoryReq req);
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
*
|
||||
* @param request 上报元素列表
|
||||
*/
|
||||
@Deprecated
|
||||
void report(PageElementReportReq request);
|
||||
|
||||
/**
|
||||
@ -28,6 +29,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
List<PageElementResp> getPageElement(GetPageElementReq request);
|
||||
|
||||
/**
|
||||
@ -37,6 +39,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
* @param featureResourceUniCodes 组件code
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
List<PageElementBasicDTO> getByTerminalAndUniCodes(String terminal, List<String> featureResourceUniCodes);
|
||||
|
||||
/**
|
||||
@ -44,6 +47,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
*
|
||||
* @param modifyPageElementRelation 关系对象
|
||||
*/
|
||||
@Deprecated
|
||||
void modifyPageElementRelation(ModifyPageElementRelationDTO modifyPageElementRelation);
|
||||
|
||||
/**
|
||||
@ -53,6 +57,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
* @param featureResourceUniCodes 组件code
|
||||
* @param operatorId 操作人
|
||||
*/
|
||||
@Deprecated
|
||||
void deleteRelationByTerminalAndUniCodes(String terminal, List<String> featureResourceUniCodes, Long operatorId);
|
||||
|
||||
/**
|
||||
@ -61,6 +66,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
* @param request 查询条件
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
PageResp<PageElementCategoryAndElementResp> page(PageQueryElementReq request);
|
||||
|
||||
/**
|
||||
@ -76,6 +82,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
|
||||
cn.axzo.foundation.page.PageResp<PageElementResp> page(PageElementReq param);
|
||||
|
||||
@Deprecated
|
||||
PageResp<PageElementResp> pageV2(PageQueryElementV2Req req);
|
||||
|
||||
Long saveOrUpdate(SaveOrUpdatePageElementReq req);
|
||||
|
||||
@ -4,11 +4,15 @@ import cn.axzo.basics.common.constant.enums.DeleteEnum;
|
||||
import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.config.MqProducer;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementCategoryDao;
|
||||
@ -17,17 +21,21 @@ import cn.axzo.tyr.server.repository.dao.SaasPageElementFeatureResourceRelationD
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElement;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementCategory;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementCategoryService;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.tyr.server.event.inner.EventTypeEnum.PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT;
|
||||
@ -50,28 +58,65 @@ public class SaasPageElementCategoryServiceImpl implements SaasPageElementCatego
|
||||
private final SaasPageElementFeatureResourceRelationDao saasPageElementFeatureResourceRelationDao;
|
||||
private final SaasPgroupPermissionRelationOperateLogService saasPgroupPermissionRelationOperateLogService;
|
||||
private final MqProducer mqProducer;
|
||||
private final SaasPageElementService saasPageElementService;
|
||||
|
||||
@Override
|
||||
public List<ListPageElementCategoryResp> listGroupByTerminal() {
|
||||
List<ListPageElementCategoryResp> categoryResps = Lists.newArrayList();
|
||||
public List<ListPageElementCategoryResp> listGroupByTerminal(PageElementCategoryReq req) {
|
||||
List<SaasPageElementCategory> categories = saasPageElementCategoryDao.lambdaQuery()
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
if (CollectionUtils.isEmpty(categories)) {
|
||||
return categoryResps;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
Map<String, List<SaasPageElementCategory>> categoryMap = categories.stream().collect(Collectors.groupingBy(SaasPageElementCategory::getTerminal));
|
||||
categoryMap.forEach((key, value) -> {
|
||||
categoryResps.add(ListPageElementCategoryResp.builder().terminal(key)
|
||||
.pageElementCategories(value.stream().map(c -> ListPageElementCategoryResp.PageElementCategoryDTO
|
||||
.builder()
|
||||
.id(c.getId())
|
||||
.itemCode(c.getItemCode())
|
||||
.itemName(c.getItemName())
|
||||
.terminal(c.getTerminal())
|
||||
.build()).collect(Collectors.toList())).build());
|
||||
});
|
||||
return categoryResps;
|
||||
|
||||
Map<String, List<PageElementResp>> pageElementMap = listPageElement(categories, req);
|
||||
|
||||
return categories.stream()
|
||||
.collect(Collectors.groupingBy(SaasPageElementCategory::getTerminal))
|
||||
.entrySet()
|
||||
.stream()
|
||||
.map(e -> from(e, pageElementMap))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private ListPageElementCategoryResp from(Map.Entry<String, List<SaasPageElementCategory>> entry,
|
||||
Map<String, List<PageElementResp>> pageElementMap) {
|
||||
return ListPageElementCategoryResp.builder()
|
||||
.terminal(entry.getKey())
|
||||
.pageElementCategories(entry.getValue().stream()
|
||||
.map(c -> ListPageElementCategoryResp.PageElementCategoryDTO
|
||||
.builder()
|
||||
.id(c.getId())
|
||||
.itemCode(c.getItemCode())
|
||||
.itemName(c.getItemName())
|
||||
.terminal(c.getTerminal())
|
||||
.pageElement(pageElementMap.get(c.getItemCode()))
|
||||
.build())
|
||||
.collect(Collectors.toList()))
|
||||
.build();
|
||||
}
|
||||
|
||||
private Map<String, List<PageElementResp>> listPageElement(List<SaasPageElementCategory> categories,
|
||||
PageElementCategoryReq req) {
|
||||
|
||||
if (CollectionUtils.isEmpty(categories) || BooleanUtils.isNotTrue(req.getNeedPage())) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Set<String> itemCodes = categories.stream()
|
||||
.map(SaasPageElementCategory::getItemCode)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtils.isEmpty(itemCodes)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return saasPageElementService.list(PageElementReq.builder()
|
||||
.itemCodes(itemCodes)
|
||||
.types(Sets.newHashSet(PageElementTypeEnum.PAGE))
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(PageElementResp::getItemCode));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user