REQ-2299 【开发】 查看详情
This commit is contained in:
parent
493fe5a7d6
commit
75c84441cc
@ -42,6 +42,8 @@ public enum ReturnCodeEnum{
|
||||
DATA_OBJECT_RULE_DUPLICATE(908, "规则名有重复,请检查"),
|
||||
|
||||
TYPE_UNKNOWN(909, "未知类型"),
|
||||
|
||||
DATA_NOT_EXIST(910, "数据不存在"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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-支持
|
||||
}
|
||||
|
||||
@ -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-可编辑
|
||||
}
|
||||
|
||||
@ -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-支持
|
||||
}
|
||||
|
||||
@ -21,9 +21,7 @@ public class DataObjectQueryBO extends PageRequest {
|
||||
* 数据权限名 全局唯一
|
||||
*/
|
||||
private String dataObjectName;
|
||||
/**
|
||||
* 租户范围(单选,插入后不可编辑) 1:项目租户 2:单位租户 3:OMS 4:政务监管平台
|
||||
*/
|
||||
|
||||
private Integer tenantScope;
|
||||
/**
|
||||
* 排序 (从小到大)
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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值获取枚举类型
|
||||
*
|
||||
|
||||
@ -34,9 +34,7 @@ public class CreateDataObjectReq {
|
||||
* 备注
|
||||
*/
|
||||
private String memo;
|
||||
/**
|
||||
* 租户范围(单选,插入后不可编辑) 1:项目租户 2:单位租户 3:OMS 4:政务监管平台
|
||||
*/
|
||||
|
||||
@NotNull(message = "请选择租户范围")
|
||||
private Integer tenantScope;
|
||||
/**
|
||||
|
||||
@ -33,9 +33,7 @@ public class EditDataObjectReq {
|
||||
* 备注
|
||||
*/
|
||||
private String memo;
|
||||
/**
|
||||
* 租户范围(单选,插入后不可编辑) 1:项目租户 2:单位租户 3:OMS 4:政务监管平台
|
||||
*/
|
||||
|
||||
private Integer tenantScope;
|
||||
/**
|
||||
* 字段
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,9 +28,7 @@ public class DataObject extends BaseOperatorEntity<DataObject> implements Serial
|
||||
* 备注
|
||||
*/
|
||||
private String memo;
|
||||
/**
|
||||
* 租户范围(单选,插入后不可编辑) 1:项目租户 2:单位租户 3:OMS 4:政务监管平台
|
||||
*/
|
||||
|
||||
private Integer tenantScope;
|
||||
/**
|
||||
* 排序 (从小到大)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user