feat(REQ-2545): 页面绑定关系增加类型字段。
This commit is contained in:
parent
603ae3d095
commit
ab34d7df79
@ -0,0 +1,28 @@
|
||||
package cn.axzo.tyr.client.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author likunpeng
|
||||
* @date 2024/7/2
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PageElementFeatureResourceRelationTypeEnum {
|
||||
/**
|
||||
* 默认类型
|
||||
*/
|
||||
DEFAULT(0, "默认类型"),
|
||||
|
||||
/**
|
||||
* 页面路由
|
||||
*/
|
||||
PAGE_ROUTE(1, "页面路由"),
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String desc;
|
||||
}
|
||||
@ -37,4 +37,10 @@ public class ModifyPageElementRelationDTO {
|
||||
* 页面元素编码列表
|
||||
*/
|
||||
private List<String> pageElementCodes;
|
||||
|
||||
/**
|
||||
* 绑定关系
|
||||
*/
|
||||
@Builder.Default
|
||||
private Integer relationType = 0;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 功能资源DTO
|
||||
@ -156,5 +157,5 @@ public class FeatureResourceDTO implements Serializable {
|
||||
/**
|
||||
* 页面元素对象
|
||||
*/
|
||||
private PageElementBasicDTO pageElement;
|
||||
private List<PageElementBasicDTO> pageElements;
|
||||
}
|
||||
|
||||
@ -30,4 +30,10 @@ public class PageElementBasicDTO {
|
||||
* 页面、元素名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 绑定关系
|
||||
* @see cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum
|
||||
*/
|
||||
private Integer relationType;
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPageElementFeatureResourceRelationMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
@ -18,11 +19,12 @@ import java.util.Objects;
|
||||
@Repository
|
||||
public class SaasPageElementFeatureResourceRelationDao extends ServiceImpl<SaasPageElementFeatureResourceRelationMapper, SaasPageElementFeatureResourceRelation> {
|
||||
|
||||
public List<SaasPageElementFeatureResourceRelation> listByPageElementCode(String pageElementCode, String terminal) {
|
||||
public List<SaasPageElementFeatureResourceRelation> listByPageElementCode(String pageElementCode, String terminal, List<Integer> types) {
|
||||
return lambdaQuery()
|
||||
.eq(SaasPageElementFeatureResourceRelation::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.eq(SaasPageElementFeatureResourceRelation::getPageElementCode, pageElementCode)
|
||||
.eq(SaasPageElementFeatureResourceRelation::getTerminal, terminal)
|
||||
.in(CollectionUtils.isNotEmpty(types), SaasPageElementFeatureResourceRelation::getType, types)
|
||||
.orderByDesc(BaseEntity::getId)
|
||||
.list();
|
||||
}
|
||||
@ -34,10 +36,11 @@ public class SaasPageElementFeatureResourceRelationDao extends ServiceImpl<SaasP
|
||||
.list();
|
||||
}
|
||||
|
||||
public void deleteByTerminalAndUniCodes(String terminal, List<String> featureResourceUniCodes, Long operatorId) {
|
||||
public void deleteByTerminalAndUniCodes(String terminal, List<String> featureResourceUniCodes, List<Integer> types, Long operatorId) {
|
||||
lambdaUpdate()
|
||||
.eq(SaasPageElementFeatureResourceRelation::getTerminal, terminal)
|
||||
.in(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode, featureResourceUniCodes)
|
||||
.in(CollectionUtils.isNotEmpty(types), SaasPageElementFeatureResourceRelation::getType, types)
|
||||
.set(SaasPageElementFeatureResourceRelation::getIsDelete, DeleteEnum.DELETE.getValue())
|
||||
.set(Objects.nonNull(operatorId), SaasPageElementFeatureResourceRelation::getUpdateBy, operatorId)
|
||||
.update();
|
||||
|
||||
@ -49,4 +49,11 @@ public class SaasPageElementFeatureResourceRelation extends BaseEntity<SaasPageE
|
||||
*/
|
||||
@TableField("terminal")
|
||||
private String terminal;
|
||||
|
||||
/**
|
||||
* 绑定类型:0(默认类型) 1(页面默认路由)
|
||||
* @see cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum
|
||||
*/
|
||||
@TableField("type")
|
||||
private Integer type;
|
||||
}
|
||||
|
||||
@ -3,6 +3,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.GetUserHasPermissionPageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElement;
|
||||
|
||||
@ -37,7 +38,7 @@ public interface SaasPageElementService {
|
||||
* @param featureResourceUniCode 组件code
|
||||
* @return
|
||||
*/
|
||||
List<SaasPageElement> getByTerminalAndUniCode(String terminal, String featureResourceUniCode);
|
||||
List<PageElementBasicDTO> getByTerminalAndUniCode(String terminal, String featureResourceUniCode);
|
||||
|
||||
/**
|
||||
* 新增页面组件与页面元素关系
|
||||
|
||||
@ -13,6 +13,7 @@ import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceAuthType;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceStatus;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum;
|
||||
import cn.axzo.tyr.client.model.req.DeleteFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.req.FeatureComponentSaveReq;
|
||||
import cn.axzo.tyr.client.model.req.FeatureResourceTreeSaveReq;
|
||||
@ -31,7 +32,6 @@ import cn.axzo.tyr.server.model.ResourcePermissionQueryDTO;
|
||||
import cn.axzo.tyr.server.model.convert.SaasFeatureResourceConvert;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElement;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasFeatureResourceMapper;
|
||||
@ -228,13 +228,15 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
baseResource.setFeatureCode(req.getUniCode());
|
||||
featureResourceDao.updateById(baseResource);
|
||||
}
|
||||
// 保存组件与页面元素关系
|
||||
saasPageElementService.modifyPageElementRelation(ModifyPageElementRelationDTO.builder()
|
||||
// 保存组件与页面元素关系,如果是页面,改的是默认路由
|
||||
ModifyPageElementRelationDTO modifyPageElementRelation = ModifyPageElementRelationDTO.builder()
|
||||
.operatorId(req.getOperatorId())
|
||||
.terminal(req.getTerminal())
|
||||
.featureResourceUniCode(req.getUniCode())
|
||||
.relationType(FeatureResourceType.PAGE.getCode().equals(req.getFeatureType()) ? PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue() : PageElementFeatureResourceRelationTypeEnum.DEFAULT.getValue())
|
||||
.pageElementCodes(req.getPageElementCodes())
|
||||
.build());
|
||||
.build();
|
||||
saasPageElementService.modifyPageElementRelation(modifyPageElementRelation);
|
||||
|
||||
if (CollectionUtil.isNotEmpty(req.getComponentSaveReqList())) {
|
||||
List<FeatureComponentSaveReq> components = req.getComponentSaveReqList();
|
||||
@ -577,16 +579,8 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
if (!FeatureResourceType.PAGE.getCode().equals(featureResourceTreeNode.getFeatureType())) {
|
||||
return;
|
||||
}
|
||||
List<SaasPageElement> saasPageElements = saasPageElementService.getByTerminalAndUniCode(featureResourceTreeNode.getTerminal(), featureResourceTreeNode.getUniCode());
|
||||
if (CollectionUtils.isEmpty(saasPageElements)) {
|
||||
return;
|
||||
}
|
||||
SaasPageElement saasPageElement = saasPageElements.get(0);
|
||||
featureResourceTreeNode.setPageElement(PageElementBasicDTO.builder()
|
||||
.id(saasPageElement.getId())
|
||||
.code(saasPageElement.getCode())
|
||||
.name(saasPageElement.getName())
|
||||
.build());
|
||||
List<PageElementBasicDTO> saasPageElements = saasPageElementService.getByTerminalAndUniCode(featureResourceTreeNode.getTerminal(), featureResourceTreeNode.getUniCode());
|
||||
featureResourceTreeNode.setPageElements(saasPageElements);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -6,10 +6,12 @@ import cn.axzo.basics.common.util.StopWatchUtil;
|
||||
import cn.axzo.framework.domain.page.PageResp;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementTypeEnum;
|
||||
import cn.axzo.tyr.client.model.req.*;
|
||||
import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementDao;
|
||||
@ -111,12 +113,26 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaasPageElement> getByTerminalAndUniCode(String terminal, String featureResourceUniCode) {
|
||||
public List<PageElementBasicDTO> getByTerminalAndUniCode(String terminal, String featureResourceUniCode) {
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(Lists.newArrayList(featureResourceUniCode), terminal);
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return saasPageElementDao.listByCodes(relations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toList()), terminal);
|
||||
Map<String, SaasPageElement> pageElementMap = saasPageElementDao.listByCodes(relations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toList()), terminal)
|
||||
.stream().collect(Collectors.toMap(SaasPageElement::getCode, Function.identity(), (v1, v2) -> v1));
|
||||
|
||||
return relations.stream().map(e -> {
|
||||
SaasPageElement pageElement = pageElementMap.get(e.getPageElementCode());
|
||||
if (Objects.isNull(pageElement)) {
|
||||
return null;
|
||||
}
|
||||
return PageElementBasicDTO.builder()
|
||||
.id(pageElement.getId())
|
||||
.code(pageElement.getCode())
|
||||
.name(pageElement.getName())
|
||||
.relationType(e.getType())
|
||||
.build();
|
||||
}).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -129,7 +145,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
|
||||
// 删除组件已有的绑定关系
|
||||
saasPageElementFeatureResourceRelationDao.deleteByTerminalAndUniCodes(modifyPageElementRelation.getTerminal(),
|
||||
Lists.newArrayList(modifyPageElementRelation.getFeatureResourceUniCode()), modifyPageElementRelation.getOperatorId());
|
||||
Lists.newArrayList(modifyPageElementRelation.getFeatureResourceUniCode()), Lists.newArrayList(modifyPageElementRelation.getRelationType()), modifyPageElementRelation.getOperatorId());
|
||||
|
||||
// 保存新的绑定关系
|
||||
if (CollectionUtils.isNotEmpty(modifyPageElementRelation.getPageElementCodes())) {
|
||||
@ -137,6 +153,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
.pageElementCode(e)
|
||||
.featureResourceUniCode(modifyPageElementRelation.getFeatureResourceUniCode())
|
||||
.terminal(modifyPageElementRelation.getTerminal())
|
||||
.type(modifyPageElementRelation.getRelationType())
|
||||
.createBy(modifyPageElementRelation.getOperatorId())
|
||||
.build()).collect(Collectors.toList());
|
||||
saasPageElementFeatureResourceRelationDao.saveBatch(relations);
|
||||
@ -149,7 +166,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
log.warn("deleteRelationByTerminalAndUniCode param error, terminal:{}, uniCodes:{}", terminal, featureResourceUniCodes);
|
||||
return;
|
||||
}
|
||||
saasPageElementFeatureResourceRelationDao.deleteByTerminalAndUniCodes(terminal, featureResourceUniCodes, operatorId);
|
||||
saasPageElementFeatureResourceRelationDao.deleteByTerminalAndUniCodes(terminal, featureResourceUniCodes, Lists.newArrayList(PageElementFeatureResourceRelationTypeEnum.DEFAULT.getValue()), operatorId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -168,7 +185,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
|
||||
@Override
|
||||
public GetUserHasPermissionPageElementResp getUserHasPermissionPageElement(GetUserHasPermissionPageElementReq request) {
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByPageElementCode(request.getPageElementCode(), request.getTerminal());
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByPageElementCode(request.getPageElementCode(), request.getTerminal(), Lists.newArrayList(PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue(), PageElementFeatureResourceRelationTypeEnum.DEFAULT.getValue()));
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
log.warn("绑定关系不存在,页面元素编码:{}", request.getPageElementCode());
|
||||
return null;
|
||||
@ -237,7 +254,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
if (StringUtils.isBlank(pageElement.getLinkUrl())) {
|
||||
continue;
|
||||
}
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByPageElementCode(pageElement.getCode(), request.getTerminal());
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByPageElementCode(pageElement.getCode(), request.getTerminal(), Lists.newArrayList(PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue()));
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user