REQ-2299 【开发】 查看详情

This commit is contained in:
yangheng 2024-04-23 17:09:16 +08:00
parent 493fe5a7d6
commit 75c84441cc
21 changed files with 300 additions and 46 deletions

View File

@ -42,6 +42,8 @@ public enum ReturnCodeEnum{
DATA_OBJECT_RULE_DUPLICATE(908, "规则名有重复,请检查"),
TYPE_UNKNOWN(909, "未知类型"),
DATA_NOT_EXIST(910, "数据不存在"),
;

View File

@ -1,5 +1,6 @@
package cn.axzo.tyr.client.common.enums;
import cn.axzo.tyr.client.model.enums.DictWorkSpaceTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -9,10 +10,10 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public enum TenantScopeEnum {
WORKSPACE(1, "项目租户"),
OU(2, "单位租户"),
OMS(3, "OMS"),
GOVERNMENT(4, "政务监管平台"),
WORKSPACE(DictWorkSpaceTypeEnum.PROJ.getWorkspaceType(), DictWorkSpaceTypeEnum.PROJ.getTenantScopeDesc()),
OU(DictWorkSpaceTypeEnum.ENT.getWorkspaceType(), DictWorkSpaceTypeEnum.ENT.getTenantScopeDesc()),
OMS(DictWorkSpaceTypeEnum.OMS.getWorkspaceType(), DictWorkSpaceTypeEnum.OMS.getTenantScopeDesc()),
GOVERNMENT(DictWorkSpaceTypeEnum.GOVERNMENT.getWorkspaceType(), DictWorkSpaceTypeEnum.GOVERNMENT.getTenantScopeDesc()),
;
private final Integer value;

View File

@ -5,6 +5,7 @@ import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.DataObjectRes;
import cn.axzo.tyr.client.model.res.EnumRes;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
import org.springframework.cloud.openfeign.FeignClient;
@ -52,4 +53,12 @@ public interface DataObjectApi {
*/
@GetMapping("/api/dataObject/enumerate")
ApiResult<List<EnumRes>> getEnumList(@RequestParam Integer type);
/**
* 查询数据对象
* @param dataObjectId
* @return
*/
@GetMapping("/api/dataObject/get")
ApiResult<DataObjectRes> getDataObject(@RequestParam Long dataObjectId);
}

View File

@ -16,9 +16,9 @@ public class AttributeBO {
* 数据对象属性id
*/
private Long dataObjectAttrId;
Integer sort; // 序号
String attrName; //字段名
String attrCode; // 字段code
Integer unmaskSupport; // 是否支持脱敏 1-不支持 2-支持
Integer editSupport; // 是否支持编辑 1-不支持 2-支持
private Integer sort; // 序号
private String attrName; //字段名
private String attrCode; // 字段code
private Integer unmaskSupport; // 是否支持脱敏 1-不支持 2-支持
private Integer editSupport; // 是否支持编辑 1-不支持 2-支持
}

View File

@ -12,10 +12,10 @@ import lombok.experimental.Accessors;
@NoArgsConstructor
@Accessors(chain = true)
public class AttributePermissionBO {
Integer sort; // 序号
String attrName; //字段名
String attrCode; // 字段code
Integer visibilityScope; // 字段值查看范围 1:仅本人数据 2:本人及下属数据 3:仅本部门数据 4:本部门及以下数据 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目部数据 10:同行级数据权限
Integer isUnmaskable; // 是否可脱敏 1-不可操作脱敏 2-可操作脱敏
Integer isEditable; // 是否可编辑 1-不可编辑 2-可编辑
private Integer sort; // 序号
private String attrName; //字段名
private String attrCode; // 字段code
private Integer visibilityScope; // 字段值查看范围 1:仅本人数据 2:本人及下属数据 3:仅本部门数据 4:本部门及以下数据 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目部数据 10:同行级数据权限
private Integer isUnmaskable; // 是否可脱敏 1-不可操作脱敏 2-可操作脱敏
private Integer isEditable; // 是否可编辑 1-不可编辑 2-可编辑
}

View File

@ -14,15 +14,19 @@ import java.util.List;
@NoArgsConstructor
@Accessors(chain = true)
public class DataObjectAttrQueryBO {
/**
* 数据对象id
*/
private Long dataObjectId;
/**
* 数据对象属性id
*/
private Long dataObjectAttrId;
Integer sort; // 序号
String attrName; //字段名
List<String> attrNameList; //字段名List
String attrCode; // 字段code
List<String> attrCodeList; // 字段codeList
Integer unmaskSupport; // 是否支持脱敏 1-不支持 2-支持
Integer editSupport; // 是否支持编辑 1-不支持 2-支持
private Integer sort; // 序号
private String attrName; //字段名
private List<String> attrNameList; //字段名List
private String attrCode; // 字段code
private List<String> attrCodeList; // 字段codeList
private Integer unmaskSupport; // 是否支持脱敏 1-不支持 2-支持
private Integer editSupport; // 是否支持编辑 1-不支持 2-支持
}

View File

@ -21,9 +21,7 @@ public class DataObjectQueryBO extends PageRequest {
* 数据权限名 全局唯一
*/
private String dataObjectName;
/**
* 租户范围单选插入后不可编辑 1项目租户 2单位租户 3:OMS 4:政务监管平台
*/
private Integer tenantScope;
/**
* 排序 从小到大

View File

@ -0,0 +1,18 @@
package cn.axzo.tyr.client.model.data.object;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class RuleAttrQueryBO {
private Long dataObjectId;
}

View File

@ -0,0 +1,16 @@
package cn.axzo.tyr.client.model.data.object;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class RuleScopeQueryBO {
private Long dataObjectId;
}

View File

@ -2,6 +2,7 @@ package cn.axzo.tyr.client.model.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
@ -13,27 +14,30 @@ import java.util.Arrays;
* @modifiedBy
* @version: 1.0
*/
@AllArgsConstructor
public enum DictWorkSpaceTypeEnum {
/**
* 企业工作台
*/
ENT("ent", "企业工作台", 7,1),
ENT("ent", "企业工作台", 7,1, "单位租户"),
/**
* 项目部工作台
*/
PROJ("proj", "项目部工作台",1,2),
PROJ("proj", "项目部工作台",1,2, "项目租户"),
GOVERNMENT("government", "政务监管平台",3,3, "政务监管平台"),
/**
* OMS工作台
*/
OMS("oms", "OMS工作台",6,6),
OMS("oms", "OMS工作台",6,6, "OMS"),
/**
* 班组工作台
*/
TEAM("team","班组工作台",0,0)
TEAM("team","班组工作台",0,0, "")
;
@EnumValue
@ -46,6 +50,8 @@ public enum DictWorkSpaceTypeEnum {
private final Integer superAdminProductType;
@Getter
private final Integer workspaceType;
@Getter
private final String tenantScopeDesc;
public String getValue() {
@ -56,13 +62,6 @@ public enum DictWorkSpaceTypeEnum {
return description;
}
DictWorkSpaceTypeEnum(String value, String description, Integer superAdminProductType, Integer workspaceType) {
this.value = value;
this.description = description;
this.superAdminProductType = superAdminProductType;
this.workspaceType = workspaceType;
}
/**
* 通过value值获取枚举类型
*

View File

@ -34,9 +34,7 @@ public class CreateDataObjectReq {
* 备注
*/
private String memo;
/**
* 租户范围单选插入后不可编辑 1项目租户 2单位租户 3:OMS 4:政务监管平台
*/
@NotNull(message = "请选择租户范围")
private Integer tenantScope;
/**

View File

@ -33,9 +33,7 @@ public class EditDataObjectReq {
* 备注
*/
private String memo;
/**
* 租户范围单选插入后不可编辑 1项目租户 2单位租户 3:OMS 4:政务监管平台
*/
private Integer tenantScope;
/**
* 字段

View File

@ -0,0 +1,50 @@
package cn.axzo.tyr.client.model.res;
import cn.axzo.tyr.client.model.data.object.AttributeBO;
import cn.axzo.tyr.client.model.data.object.DataObjectRuleBO;
import cn.axzo.tyr.client.model.data.object.DefaultDataObjectRuleBO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DataObjectRes {
/**
* 数据对象code
*/
private String dataObjectCode;
/**
* 数据对象名 全局唯一
*/
private String dataObjectName;
/**
* 备注
*/
private String memo;
private Integer tenantScope;
/**
* 字段
*/
private List<AttributeBO> attrs;
/**
* 默认规则
*/
private DefaultDataObjectRuleBO defaultDataObjectRuleBO;
/**
* 自定义规则
*/
private List<DataObjectRuleBO> dataObjectRuleBOList;
/**
* 排序 从小到大
*/
private Integer sort;
}

View File

@ -1,5 +1,6 @@
package cn.axzo.tyr.server.controller.data.object;
import cn.axzo.basics.auth.enums.WorkspaceTypeWithLegacyEnum;
import cn.axzo.core.domain.PageResult;
import cn.axzo.framework.domain.ServiceException;
import cn.axzo.framework.domain.web.result.ApiResult;
@ -8,10 +9,12 @@ import cn.axzo.tyr.client.common.enums.EnumTypeEnum;
import cn.axzo.tyr.client.common.enums.ReturnCodeEnum;
import cn.axzo.tyr.client.common.enums.RowPermissionEnum;
import cn.axzo.tyr.client.common.enums.TenantScopeEnum;
import cn.axzo.tyr.client.common.enums.WorkspaceJoinType;
import cn.axzo.tyr.client.feign.DataObjectApi;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.DataObjectRes;
import cn.axzo.tyr.client.model.res.EnumRes;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
import cn.axzo.tyr.server.service.DataObjectService;
@ -81,4 +84,9 @@ public class DataObjectController implements DataObjectApi {
}
}
@Override
public ApiResult<DataObjectRes> getDataObject(Long dataObjectId) {
return ApiResult.ok(dataObjectService.getDataObject(dataObjectId));
}
}

View File

@ -1,9 +1,11 @@
package cn.axzo.tyr.server.repository.dao;
import cn.axzo.basics.common.constant.enums.DeleteEnum;
import cn.axzo.tyr.client.model.data.object.DataObjectAttrQueryBO;
import cn.axzo.tyr.server.repository.entity.DataObjectAttr;
import cn.axzo.tyr.server.repository.entity.DataObjectRule;
import cn.axzo.tyr.server.repository.mapper.DataObjectAttrMapper;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
@ -21,4 +23,16 @@ public class DataObjectAttrDao extends ServiceImpl<DataObjectAttrMapper, DataObj
.set(DataObjectAttr::getIsDelete, DeleteEnum.DELETE.getValue())
.update();
}
public List<DataObjectAttr> listByBO(DataObjectAttrQueryBO bo) {
// 有插件有设置is_delete
return lambdaQuery()
.eq(Objects.nonNull(bo.getDataObjectAttrId()), DataObjectAttr::getId, bo.getDataObjectAttrId())
.eq(Objects.nonNull(bo.getDataObjectId()), DataObjectAttr::getDataObjectId, bo.getDataObjectId())
.eq(Objects.nonNull(bo.getAttrCode()), DataObjectAttr::getAttrCode, bo.getAttrCode())
.in(CollUtil.isNotEmpty(bo.getAttrCodeList()), DataObjectAttr::getAttrCode, bo.getAttrCodeList())
.eq(Objects.nonNull(bo.getUnmaskSupport()), DataObjectAttr::getUnmaskSupport, bo.getUnmaskSupport())
.eq(Objects.nonNull(bo.getEditSupport()), DataObjectAttr::getEditSupport, bo.getEditSupport())
.list();
}
}

View File

@ -1,6 +1,7 @@
package cn.axzo.tyr.server.repository.dao;
import cn.axzo.basics.common.constant.enums.DeleteEnum;
import cn.axzo.tyr.client.model.data.object.RuleAttrQueryBO;
import cn.axzo.tyr.server.repository.entity.DataObjectAttr;
import cn.axzo.tyr.server.repository.entity.DataObjectRuleAttr;
import cn.axzo.tyr.server.repository.mapper.DataObjectRuleAttrMapper;
@ -20,4 +21,10 @@ public class DataObjectRuleAttrDao extends ServiceImpl<DataObjectRuleAttrMapper,
.set(DataObjectRuleAttr::getIsDelete, DeleteEnum.DELETE.getValue())
.update();
}
public List<DataObjectRuleAttr> listByBO(RuleAttrQueryBO bo) {
return lambdaQuery()
.eq(Objects.nonNull(bo.getDataObjectId()), DataObjectRuleAttr::getDataObjectId, bo.getDataObjectId())
.list();
}
}

View File

@ -1,6 +1,7 @@
package cn.axzo.tyr.server.repository.dao;
import cn.axzo.basics.common.constant.enums.DeleteEnum;
import cn.axzo.tyr.client.model.data.object.RuleScopeQueryBO;
import cn.axzo.tyr.server.repository.entity.DataObjectRuleAttr;
import cn.axzo.tyr.server.repository.entity.DataObjectRuleScope;
import cn.axzo.tyr.server.repository.mapper.DataObjectRuleScopeMapper;
@ -20,4 +21,10 @@ public class DataObjectRuleScopeDao extends ServiceImpl<DataObjectRuleScopeMappe
.set(DataObjectRuleScope::getIsDelete, DeleteEnum.DELETE.getValue())
.update();
}
public List<DataObjectRuleScope> listByBO(RuleScopeQueryBO bo) {
return lambdaQuery()
.eq(Objects.nonNull(bo.getDataObjectId()), DataObjectRuleScope::getDataObjectId, bo.getDataObjectId())
.list();
}
}

View File

@ -28,9 +28,7 @@ public class DataObject extends BaseOperatorEntity<DataObject> implements Serial
* 备注
*/
private String memo;
/**
* 租户范围单选插入后不可编辑 1项目租户 2单位租户 3:OMS 4:政务监管平台
*/
private Integer tenantScope;
/**
* 排序 从小到大

View File

@ -4,6 +4,7 @@ import cn.axzo.core.domain.PageResult;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.DataObjectRes;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
public interface DataObjectService {
@ -14,4 +15,6 @@ public interface DataObjectService {
void deleteDataObject(Long dataObjectId, Long updateBy);
PageResult<SimpleDataObjectRes> pageDataObject(PageDataObjectReq req);
DataObjectRes getDataObject(Long dataObjectId);
}

View File

@ -5,11 +5,18 @@ import cn.axzo.core.domain.PageResult;
import cn.axzo.tyr.client.common.enums.ReturnCodeEnum;
import cn.axzo.tyr.client.common.enums.YesNoEnum;
import cn.axzo.tyr.client.model.data.object.AttributeBO;
import cn.axzo.tyr.client.model.data.object.AttributePermissionBO;
import cn.axzo.tyr.client.model.data.object.DataObjectAttrQueryBO;
import cn.axzo.tyr.client.model.data.object.DataObjectQueryBO;
import cn.axzo.tyr.client.model.data.object.DataObjectRuleBO;
import cn.axzo.tyr.client.model.data.object.DataObjectRuleQueryBO;
import cn.axzo.tyr.client.model.data.object.DefaultDataObjectRuleBO;
import cn.axzo.tyr.client.model.data.object.RuleAttrQueryBO;
import cn.axzo.tyr.client.model.data.object.RuleScopeQueryBO;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.DataObjectRes;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
import cn.axzo.tyr.server.repository.dao.DataObjectAttrDao;
import cn.axzo.tyr.server.repository.dao.DataObjectDao;
@ -35,6 +42,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@ -179,6 +187,99 @@ public class DataObjectServiceImpl implements DataObjectService {
return new PageResult<>(resList, dataObjectIPage.getTotal());
}
@Override
public DataObjectRes getDataObject(Long dataObjectId) {
// 获取数据对象
DataObject dataObject = dataObjectDao.getById(dataObjectId);
if (Objects.isNull(dataObject)){
throw new cn.axzo.framework.domain.ServiceException(ReturnCodeEnum.DATA_NOT_EXIST.getMessage());
}
DataObjectRes res = DataObjectMapper.INSTANCE.dataObject2DataObjectRes(dataObject);
// 获取数据对象字段
DataObjectAttrQueryBO bo1 = DataObjectAttrQueryBO.builder().dataObjectId(dataObjectId).build();
List<DataObjectAttr> objectAttrList = dataObjectAttrDao.listByBO(bo1);
Map<String, String> attrMap;
if (CollUtil.isNotEmpty(objectAttrList)) {
List<AttributeBO> attributeBOS = DataObjectMapper.INSTANCE.dataObjectAttrs2AttributeBOs(objectAttrList);
res.setAttrs(attributeBOS);
attrMap = attributeBOS.stream().collect(Collectors.toMap(AttributeBO::getAttrCode, AttributeBO::getAttrName, (a, b) -> a));
} else {
attrMap = null;
}
// 获取数据对象规则
DataObjectRuleQueryBO bo2 = DataObjectRuleQueryBO.builder().dataObjectId(dataObjectId).build();
List<DataObjectRule> dataObjectRules = dataObjectRuleDao.listByBO(bo2);
if (CollUtil.isNotEmpty(dataObjectRules)) {
res.setDataObjectRuleBOList(new ArrayList<>(dataObjectRules.size()-1));
dataObjectRules.forEach(e -> {
if (YesNoEnum.YES.getValue().equals(e.getIsDefault())) {
DefaultDataObjectRuleBO ruleBO = DataObjectMapper.INSTANCE.rule2DefaultRuleBO(e);
res.setDefaultDataObjectRuleBO(ruleBO);
} else {
DataObjectRuleBO ruleBO = DataObjectMapper.INSTANCE.rule2RuleBO(e);
res.getDataObjectRuleBOList().add(ruleBO);
}
});
}
// 获取数据对象规则字段
RuleAttrQueryBO bo3 = RuleAttrQueryBO.builder().dataObjectId(dataObjectId).build();
List<DataObjectRuleAttr> ruleAttrList = dataObjectRuleAttrDao.listByBO(bo3);
if (CollUtil.isNotEmpty(attrMap) && CollUtil.isNotEmpty(ruleAttrList)) {
Map<Long, List<DataObjectRuleAttr>> ruleAttrMap = ruleAttrList.stream().collect(Collectors.groupingBy(DataObjectRuleAttr::getDataObjectRuleId));
// 默认
List<DataObjectRuleAttr> ruleAttrList1 = ruleAttrMap.get(res.getDefaultDataObjectRuleBO().getDataObjectRuleId());
if (CollUtil.isNotEmpty(ruleAttrList1)) {
List<AttributePermissionBO> permissionBOs = DataObjectMapper.INSTANCE.ruleAttrs2AttrPermissionBOs(ruleAttrList1);
permissionBOs.forEach(e -> e.setAttrName(attrMap.get(e.getAttrCode())));
res.getDefaultDataObjectRuleBO().setAttributePermissionBOList(permissionBOs);
}
//自定义
if (CollUtil.isNotEmpty(res.getDataObjectRuleBOList())) {
res.getDataObjectRuleBOList().forEach(e -> buildRuleAttr(attrMap, ruleAttrMap, e));
}
}
// 获取数据对象规则范围
RuleScopeQueryBO bo4 = RuleScopeQueryBO.builder().dataObjectId(dataObjectId).build();
List<DataObjectRuleScope> scopeList = dataObjectRuleScopeDao.listByBO(bo4);
if (CollUtil.isNotEmpty(scopeList)) {
Map<Long, List<DataObjectRuleScope>> scopeMap = scopeList.stream().collect(Collectors.groupingBy(DataObjectRuleScope::getDataObjectRuleId));
// 默认
List<DataObjectRuleScope> defaultScopeList = scopeMap.get(res.getDefaultDataObjectRuleBO().getDataObjectRuleId());
if (CollUtil.isNotEmpty(defaultScopeList)) {
List<Long> relationIdList = defaultScopeList.stream().map(DataObjectRuleScope::getRelationId).collect(Collectors.toList());
res.getDefaultDataObjectRuleBO().setRelationId(relationIdList);
}
//自定义
if (CollUtil.isNotEmpty(res.getDataObjectRuleBOList())) {
res.getDataObjectRuleBOList().forEach(e -> {
List<DataObjectRuleScope> scopeList1 = scopeMap.get(e.getDataObjectRuleId());
if (CollUtil.isNotEmpty(scopeList1)) {
List<Long> relationIdList = scopeList1.stream().map(DataObjectRuleScope::getRelationId).collect(Collectors.toList());
e.setRelationId(relationIdList);
}
});
}
}
return res;
}
private static void buildRuleAttr(Map<String, String> attrMap, Map<Long, List<DataObjectRuleAttr>> ruleAttrMap, DataObjectRuleBO e) {
List<DataObjectRuleAttr> ruleAttrList2 = ruleAttrMap.get(e.getDataObjectRuleId());
if (CollUtil.isNotEmpty(ruleAttrList2)) {
List<AttributePermissionBO> permissionBOs = DataObjectMapper.INSTANCE.ruleAttrs2AttrPermissionBOs(ruleAttrList2);
permissionBOs.forEach(bo -> bo.setAttrName(attrMap.get(bo.getAttrCode())));
e.setAttributePermissionBOList(permissionBOs);
}
}
private void checkRuleNameUnique(CreateDataObjectReq req) {
if (CollUtil.isNotEmpty(req.getDataObjectRuleBOList())) {
List<String> nameList = req.getDataObjectRuleBOList().stream().map(DataObjectRuleBO::getDataObjectRuleName).distinct().collect(Collectors.toList());

View File

@ -5,6 +5,7 @@ import cn.axzo.tyr.client.model.data.object.AttributePermissionBO;
import cn.axzo.tyr.client.model.data.object.DataObjectRuleBO;
import cn.axzo.tyr.client.model.data.object.DefaultDataObjectRuleBO;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.res.DataObjectRes;
import cn.axzo.tyr.server.repository.entity.DataObject;
import cn.axzo.tyr.server.repository.entity.DataObjectAttr;
import cn.axzo.tyr.server.repository.entity.DataObjectRule;
@ -27,26 +28,48 @@ public interface DataObjectMapper {
DataObject createReq2DataObject(CreateDataObjectReq req);
DataObjectRes dataObject2DataObjectRes(DataObject req);
DataObjectAttr attributeBO2DataObjectAttr(AttributeBO bo);
DataObjectRuleAttr attrBO2Attr(AttributePermissionBO bo);
@Mapping(source = "id", target = "dataObjectAttrId")
AttributeBO dataObjectAttr2AttributeBO(DataObjectAttr bo);
DataObjectRuleAttr attrPermissionBO2RuleAttr(AttributePermissionBO bo);
AttributePermissionBO attr2AttrPermissionBO(DataObjectRuleAttr bo);
@Mapping(source = "dataObjectRuleName", target = "name")
@Mapping(source = "attributePermissionBOList", target = "dataObjectRuleAttrList")
@Mapping(source = "relationId", target = "dataObjectRuleScopeList", qualifiedByName = "mapRelationId2RuleScope")
DataObjectRule defaultRuleBO2Rule(DefaultDataObjectRuleBO bo);
@Mapping(source = "name", target = "dataObjectRuleName")
@Mapping(source = "id", target = "dataObjectRuleId")
DefaultDataObjectRuleBO rule2DefaultRuleBO(DataObjectRule bo);
@Mapping(source = "dataObjectRuleName", target = "name")
@Mapping(source = "attributePermissionBOList", target = "dataObjectRuleAttrList")
@Mapping(source = "relationId", target = "dataObjectRuleScopeList", qualifiedByName = "mapRelationId2RuleScope")
DataObjectRule ruleBO2Rule(DataObjectRuleBO bo);
@Mapping(source = "name", target = "dataObjectRuleName")
@Mapping(source = "id", target = "dataObjectRuleId")
DataObjectRuleBO rule2RuleBO(DataObjectRule bo);
List<DataObjectAttr> attributeBOs2DataObjectAttrs(List<AttributeBO> bo);
List<AttributeBO> dataObjectAttrs2AttributeBOs(List<DataObjectAttr> bo);
List<DataObjectRule> defaultRuleBOs2Rules(List<DefaultDataObjectRuleBO> bo);
List<DefaultDataObjectRuleBO> rules2defaultRuleBOs(List<DataObjectRule> bo);
List<DataObjectRule> ruleBOs2Rules(List<DataObjectRuleBO> bo);
List<DataObjectRuleBO> rules2RuleBOs(List<DataObjectRule> bo);
List<AttributePermissionBO> ruleAttrs2AttrPermissionBOs(List<DataObjectRuleAttr> bo);
@Named("mapRelationId2RuleScope")
default List<DataObjectRuleScope> mapIntegerToBoolean(List<Long> relationId) {