|
|
@ -236,9 +236,16 @@ async function makeResourceCache(sequelize) { |
|
|
|
// @ RBP - Object - 描述:字典缓存池
|
|
|
|
// @ RBP - Object - 描述:字典缓存池
|
|
|
|
const RBP = resourceCache.baseDictPool; |
|
|
|
const RBP = resourceCache.baseDictPool; |
|
|
|
// ! 获取资源类信息 =============================================================================
|
|
|
|
// ! 获取资源类信息 =============================================================================
|
|
|
|
|
|
|
|
console.time('获取资源类信息'); |
|
|
|
// region 获取资源类信息
|
|
|
|
// region 获取资源类信息
|
|
|
|
const classList = |
|
|
|
const classList = await sequelize.models.ResourceClassBase.findAll({ |
|
|
|
await sequelize.models.ResourceClassBase.findAll(sequelizeFindAllType); |
|
|
|
...sequelizeFindAllType, |
|
|
|
|
|
|
|
where: { |
|
|
|
|
|
|
|
isDelete: { |
|
|
|
|
|
|
|
[Op.is]: null, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}); |
|
|
|
// @ classIdList - Array[number] - 描述:资源类ID列表
|
|
|
|
// @ classIdList - Array[number] - 描述:资源类ID列表
|
|
|
|
const classIdList = []; |
|
|
|
const classIdList = []; |
|
|
|
// @ classObject - Object[resourceClassBase] - 描述:资源类对象
|
|
|
|
// @ classObject - Object[resourceClassBase] - 描述:资源类对象
|
|
|
@ -268,7 +275,9 @@ async function makeResourceCache(sequelize) { |
|
|
|
// console.log(classIdList)
|
|
|
|
// console.log(classIdList)
|
|
|
|
// console.log(classObject)
|
|
|
|
// console.log(classObject)
|
|
|
|
// endregion
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
console.timeEnd('获取资源类信息'); |
|
|
|
// ! 获取拓展字段信息 ===========================================================================
|
|
|
|
// ! 获取拓展字段信息 ===========================================================================
|
|
|
|
|
|
|
|
console.time('获取拓展字段信息'); |
|
|
|
// region 获取拓展字段信息
|
|
|
|
// region 获取拓展字段信息
|
|
|
|
const classExpandList = |
|
|
|
const classExpandList = |
|
|
|
await sequelize.models.ResourceClassExpandField.findAll( |
|
|
|
await sequelize.models.ResourceClassExpandField.findAll( |
|
|
@ -278,8 +287,8 @@ async function makeResourceCache(sequelize) { |
|
|
|
const classExpandIdList = []; |
|
|
|
const classExpandIdList = []; |
|
|
|
// @ classExpandObject - Object[resourceClassExpandField] - 描述:资源类拓展字段对象
|
|
|
|
// @ classExpandObject - Object[resourceClassExpandField] - 描述:资源类拓展字段对象
|
|
|
|
const classExpandObject = {}; |
|
|
|
const classExpandObject = {}; |
|
|
|
// @ classExpandForClassIdObject - Object - 描述:基于资源类ID的资源拓展字段对象集合
|
|
|
|
// @ classExpandForClassBaseObject - Object - 描述:基于资源类ID的资源拓展字段对象集合
|
|
|
|
const classExpandForClassIdObject = {}; |
|
|
|
const classExpandForClassBaseObject = {}; |
|
|
|
for (let i = 0; i < classExpandList.length; i++) { |
|
|
|
for (let i = 0; i < classExpandList.length; i++) { |
|
|
|
const expandField = classExpandList[i]; |
|
|
|
const expandField = classExpandList[i]; |
|
|
|
if (expandField.isDelete) { |
|
|
|
if (expandField.isDelete) { |
|
|
@ -306,19 +315,21 @@ async function makeResourceCache(sequelize) { |
|
|
|
classExpandObject[expandFieldId] = expandField; |
|
|
|
classExpandObject[expandFieldId] = expandField; |
|
|
|
// 拓展字段中的资源类ID
|
|
|
|
// 拓展字段中的资源类ID
|
|
|
|
const classId = expandField.resourceClassBase; |
|
|
|
const classId = expandField.resourceClassBase; |
|
|
|
if (classExpandForClassIdObject[classId] === undefined) { |
|
|
|
if (classExpandForClassBaseObject[classId] === undefined) { |
|
|
|
classExpandForClassIdObject[classId] = { |
|
|
|
classExpandForClassBaseObject[classId] = { |
|
|
|
[expandField.resourceClassExpandFieldIdentify]: expandField, |
|
|
|
[expandField.resourceClassExpandFieldIdentify]: expandField, |
|
|
|
}; |
|
|
|
}; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
classExpandForClassIdObject[classId][ |
|
|
|
classExpandForClassBaseObject[classId][ |
|
|
|
expandField.resourceClassExpandFieldIdentify |
|
|
|
expandField.resourceClassExpandFieldIdentify |
|
|
|
] = expandField; |
|
|
|
] = expandField; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// console.log(classExpandForClassIdObject)
|
|
|
|
// console.log(classExpandForClassBaseObject)
|
|
|
|
// endregion
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
console.timeEnd('获取拓展字段信息'); |
|
|
|
// ! 获取实体结构表 =============================================================================
|
|
|
|
// ! 获取实体结构表 =============================================================================
|
|
|
|
|
|
|
|
console.time('获取实体结构表'); |
|
|
|
// region 获取实体结构表
|
|
|
|
// region 获取实体结构表
|
|
|
|
const entityStructList = |
|
|
|
const entityStructList = |
|
|
|
await sequelize.models.ResourceEntityStruct.findAll( |
|
|
|
await sequelize.models.ResourceEntityStruct.findAll( |
|
|
@ -356,7 +367,9 @@ async function makeResourceCache(sequelize) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// endregion
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
console.timeEnd('获取实体结构表'); |
|
|
|
// ! 获取资源类关系表 ===========================================================================
|
|
|
|
// ! 获取资源类关系表 ===========================================================================
|
|
|
|
|
|
|
|
console.time('获取资源类关系表'); |
|
|
|
// region 获取资源类关系表
|
|
|
|
// region 获取资源类关系表
|
|
|
|
const classRelationList = |
|
|
|
const classRelationList = |
|
|
|
await sequelize.models.ResourceClassRelation.findAll( |
|
|
|
await sequelize.models.ResourceClassRelation.findAll( |
|
|
@ -381,67 +394,54 @@ async function makeResourceCache(sequelize) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// endregion
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
console.timeEnd('获取资源类关系表'); |
|
|
|
|
|
|
|
|
|
|
|
// | 这里生成基础数据模型 =============================================================================================
|
|
|
|
// | 这里生成基础数据模型 =============================================================================================
|
|
|
|
|
|
|
|
console.time('==生成资源类基础数据模型=='); |
|
|
|
// region 这里生成基础数据模型
|
|
|
|
// region 这里生成基础数据模型
|
|
|
|
class makeClass { |
|
|
|
// ! 资源类
|
|
|
|
// 基础数据
|
|
|
|
class ClassModel { |
|
|
|
classId; |
|
|
|
|
|
|
|
classIdentify; |
|
|
|
|
|
|
|
atomModel; |
|
|
|
|
|
|
|
className; |
|
|
|
|
|
|
|
classBase; |
|
|
|
|
|
|
|
classExpand; |
|
|
|
|
|
|
|
entityStruct; |
|
|
|
|
|
|
|
sequelizeModel; |
|
|
|
|
|
|
|
constructor(classItem) { |
|
|
|
constructor(classItem) { |
|
|
|
// 设置基础信息值
|
|
|
|
// 设置基础信息值
|
|
|
|
const classId = classItem.resourceClassBaseId; |
|
|
|
this.resourceClass = classItem; |
|
|
|
this.classId = classId; |
|
|
|
|
|
|
|
const classIdentify = classItem.resourceClassBaseIdentify; |
|
|
|
|
|
|
|
this.classIdentify = classIdentify; |
|
|
|
|
|
|
|
const atomModel = classItem.atomModel; |
|
|
|
|
|
|
|
this.atomModel = atomModel; |
|
|
|
|
|
|
|
const className = classItem.resourceClassBaseName; |
|
|
|
|
|
|
|
this.className = className; |
|
|
|
|
|
|
|
this.classBase = classItem; |
|
|
|
|
|
|
|
this.classExpand = classExpandForClassIdObject[classId]; |
|
|
|
|
|
|
|
if (this.classExpand === undefined) { |
|
|
|
|
|
|
|
this.classExpand = {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.entityStruct = entityStructForClassBaseObject[classId]; |
|
|
|
|
|
|
|
if (this.entityStruct === undefined) { |
|
|
|
|
|
|
|
this.entityStruct = {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.classRelationList = classRelationObjectForTargetClass[classId]; |
|
|
|
|
|
|
|
if (this.classRelationList == undefined) { |
|
|
|
|
|
|
|
this.classRelationList = []; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.#createCLassRelationIdentify(); |
|
|
|
|
|
|
|
this.#createSequelizeModel(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
get classId() { |
|
|
|
get classId() { |
|
|
|
return this.classId; |
|
|
|
return this.resourceClass.resourceClassBaseId; |
|
|
|
} |
|
|
|
} |
|
|
|
get classIdentify() { |
|
|
|
get classIdentify() { |
|
|
|
return this.classIdentify; |
|
|
|
return this.resourceClass.resourceClassBaseIdentify; |
|
|
|
} |
|
|
|
} |
|
|
|
get atomModel() { |
|
|
|
get atomModel() { |
|
|
|
return this.atomModel; |
|
|
|
return this.resourceClass.atomModel; |
|
|
|
} |
|
|
|
} |
|
|
|
get className() { |
|
|
|
get className() { |
|
|
|
return this.className; |
|
|
|
return this.resourceClass.resourceClassBaseName; |
|
|
|
} |
|
|
|
|
|
|
|
get classBase() { |
|
|
|
|
|
|
|
return this.classBase; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
get classExpand() { |
|
|
|
get classExpand() { |
|
|
|
return this.classExpand; |
|
|
|
let classExpand = classExpandForClassBaseObject[this.classId]; |
|
|
|
|
|
|
|
if (classExpand === undefined) { |
|
|
|
|
|
|
|
classExpand = {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return classExpand; |
|
|
|
} |
|
|
|
} |
|
|
|
get entityStruct() { |
|
|
|
get entityStruct() { |
|
|
|
return this.entityStruct; |
|
|
|
let entityStruct = entityStructForClassBaseObject[this.classId]; |
|
|
|
|
|
|
|
if (entityStruct === undefined) { |
|
|
|
|
|
|
|
entityStruct = {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return entityStruct; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get classRelationList() { |
|
|
|
|
|
|
|
if (classRelationObjectForTargetClass[this.classId] === undefined) { |
|
|
|
|
|
|
|
return []; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return classRelationObjectForTargetClass[this.classId]; |
|
|
|
} |
|
|
|
} |
|
|
|
#createSequelizeModel() { |
|
|
|
} |
|
|
|
|
|
|
|
get classRelationIdList() { |
|
|
|
|
|
|
|
return this.classRelationList.map((i) => i.resourceClassRelationId); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
async createSequelizeModel() { |
|
|
|
class resourceEntity extends Model {} |
|
|
|
class resourceEntity extends Model {} |
|
|
|
// 定义资源实体名称字段
|
|
|
|
// 定义资源实体名称字段
|
|
|
|
const entityName = { |
|
|
|
const entityName = { |
|
|
@ -449,12 +449,13 @@ async function makeResourceCache(sequelize) { |
|
|
|
allowNull: false, |
|
|
|
allowNull: false, |
|
|
|
comment: '资源实体名称', |
|
|
|
comment: '资源实体名称', |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
const entityStruct = this.entityStruct; |
|
|
|
// 定义资源实体名称字段在数据库的备注
|
|
|
|
// 定义资源实体名称字段在数据库的备注
|
|
|
|
if (this.entityStruct.entityName !== undefined) { |
|
|
|
if (entityStruct.entityName !== undefined) { |
|
|
|
entityName.comment = |
|
|
|
entityName.comment = |
|
|
|
this.entityStruct.entityName.resourceEntityStructName + |
|
|
|
entityStruct.entityName.resourceEntityStructName + |
|
|
|
'-' + |
|
|
|
'-' + |
|
|
|
this.entityStruct.entityName.resourceEntityStructDescribe; |
|
|
|
entityStruct.entityName.resourceEntityStructDescribe; |
|
|
|
} |
|
|
|
} |
|
|
|
// 定义字段
|
|
|
|
// 定义字段
|
|
|
|
const defineField = { |
|
|
|
const defineField = { |
|
|
@ -543,18 +544,21 @@ async function makeResourceCache(sequelize) { |
|
|
|
} |
|
|
|
} |
|
|
|
resourceEntity.init(defineField, defineTable); |
|
|
|
resourceEntity.init(defineField, defineTable); |
|
|
|
// 同步数据库
|
|
|
|
// 同步数据库
|
|
|
|
resourceEntity.sync(); // {alter: true}是修改,现在是如果存在就不更改表,后面修改表明,字段名,字段长度会在更新操作时添加
|
|
|
|
await resourceEntity.sync(); // {alter: true}是修改,现在是如果存在就不更改表,后面修改表明,字段名,字段长度会在更新操作时添加
|
|
|
|
this.sequelizeModel = resourceEntity; |
|
|
|
this.sequelizeModel = resourceEntity; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
get zeroInfo(){ |
|
|
|
#createCLassRelationIdentify() { |
|
|
|
return { |
|
|
|
this.relationIdList = []; |
|
|
|
resourceClassBaseId: this.resourceClass.resourceClassBaseId, |
|
|
|
if (this.classRelationList.length != 0) { |
|
|
|
resourceClassBaseName: this.resourceClass.resourceClassBaseName, |
|
|
|
for (let classRelationItem of this.classRelationList) { |
|
|
|
} |
|
|
|
this.relationIdList.push( |
|
|
|
|
|
|
|
classRelationItem.resourceClassRelationId, |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
get info(){ |
|
|
|
|
|
|
|
return{ |
|
|
|
|
|
|
|
...this.resourceClass, |
|
|
|
|
|
|
|
resourceClassExpandField: this.classExpand, |
|
|
|
|
|
|
|
resourceEntityStruct: this.entityStruct, |
|
|
|
|
|
|
|
resourceClassRelation: this.classRelationList |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -565,9 +569,11 @@ async function makeResourceCache(sequelize) { |
|
|
|
// 排除删除的
|
|
|
|
// 排除删除的
|
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
classModelObject[classId] = new makeClass(classObject[classId]); |
|
|
|
classModelObject[classId] = new ClassModel(classObject[classId]); |
|
|
|
|
|
|
|
console.time(' 初始化资源实体表'+ classModelObject[classId].classIdentify) |
|
|
|
|
|
|
|
await classModelObject[classId].createSequelizeModel(); |
|
|
|
|
|
|
|
console.timeEnd(' 初始化资源实体表'+ classModelObject[classId].classIdentify) |
|
|
|
} |
|
|
|
} |
|
|
|
// console.log(classModelObject)
|
|
|
|
|
|
|
|
// console.log((await sequelize.models.omencust.create({
|
|
|
|
// console.log((await sequelize.models.omencust.create({
|
|
|
|
// entityId: 'omencust' + crypto.randomUUID(),
|
|
|
|
// entityId: 'omencust' + crypto.randomUUID(),
|
|
|
|
// originNode: '0-0-1',
|
|
|
|
// originNode: '0-0-1',
|
|
|
@ -577,64 +583,135 @@ async function makeResourceCache(sequelize) { |
|
|
|
// project: '1'
|
|
|
|
// project: '1'
|
|
|
|
// })).dataValues)
|
|
|
|
// })).dataValues)
|
|
|
|
// endregion
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
console.timeEnd('==生成资源类基础数据模型=='); |
|
|
|
|
|
|
|
|
|
|
|
// | 这里生成关系节点数据模型 ==========================================================================================
|
|
|
|
// | 这里生成关系节点数据模型 ==========================================================================================
|
|
|
|
|
|
|
|
console.time('==生成类关系节点数据模型=='); |
|
|
|
|
|
|
|
// region 这里生成关系节点数据模型
|
|
|
|
// 给每个类生成关联列表
|
|
|
|
// 给每个类生成关联列表
|
|
|
|
|
|
|
|
// @ classNodeObject - Object - 描述:类关系节点数据模型集合
|
|
|
|
const classNodeObject = { |
|
|
|
const classNodeObject = { |
|
|
|
0: { |
|
|
|
0: { |
|
|
|
classModel:{}, |
|
|
|
classModel: {}, |
|
|
|
nodeId:0, |
|
|
|
nodeId: 0, |
|
|
|
children:[], |
|
|
|
children: [], |
|
|
|
father: null |
|
|
|
father: null, |
|
|
|
} |
|
|
|
}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
class makeClassNode { |
|
|
|
// ! 资源类节点
|
|
|
|
|
|
|
|
class ClassNodeModel { |
|
|
|
constructor(classModel, classRelationId) { |
|
|
|
constructor(classModel, classRelationId) { |
|
|
|
this.classModel = classModel; |
|
|
|
this.nodeId = classRelationId; |
|
|
|
this.children = [] |
|
|
|
this.fatherId = |
|
|
|
this.nodeId =classRelationId; |
|
|
|
classRelationObject[ |
|
|
|
this.father = classRelationObject[classRelationId].resourceClassRelationFather |
|
|
|
classRelationId |
|
|
|
|
|
|
|
].resourceClassRelationFather; |
|
|
|
|
|
|
|
this.children = []; |
|
|
|
|
|
|
|
this.classData = classModel; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get classId() { |
|
|
|
|
|
|
|
return this.classData.classId; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get classIdentify() { |
|
|
|
|
|
|
|
return this.classData.classIdentify; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get atomModel() { |
|
|
|
|
|
|
|
return this.classData.atomModel; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get className() { |
|
|
|
|
|
|
|
return this.classData.className; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get classExpand() { |
|
|
|
|
|
|
|
return this.classData.classExpand; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get entityStruct() { |
|
|
|
|
|
|
|
return this.classData.entityStruct; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get classRelationList() { |
|
|
|
|
|
|
|
return this.classData.classRelationList; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get classRelationIdList() { |
|
|
|
|
|
|
|
return this.classData.classRelationIdList; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
get nodeZeroInfo(){ |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
...this.classData.zeroInfo, |
|
|
|
|
|
|
|
nodeId: this.nodeId, |
|
|
|
|
|
|
|
fatherId: this.fatherId, |
|
|
|
|
|
|
|
children: this.children.map(i => i.nodeZeroInfo) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// @ 生成类关系节点
|
|
|
|
// @ 生成类关系节点
|
|
|
|
for (let classId of Object.keys(classModelObject)) { |
|
|
|
for (let classId of Object.keys(classModelObject)) { |
|
|
|
const classModel = classModelObject[classId]; |
|
|
|
const nowClassModel = classModelObject[classId]; |
|
|
|
const relationIdList = classModel.relationIdList |
|
|
|
const nowRelationIdList = nowClassModel.classRelationIdList; |
|
|
|
if(relationIdList.length == 0){ |
|
|
|
if (nowRelationIdList.length == 0) { |
|
|
|
// @ 在数据库添加这条关系
|
|
|
|
// @ 在数据库添加这条关系
|
|
|
|
const newClassRelation = await sequelize.models.ResourceClassRelation.create({ |
|
|
|
const newClassRelation = |
|
|
|
|
|
|
|
await sequelize.models.ResourceClassRelation.create({ |
|
|
|
resourceClassRelationFather: 0, |
|
|
|
resourceClassRelationFather: 0, |
|
|
|
resourceClassRelationTarget: classId |
|
|
|
resourceClassRelationTarget: classId, |
|
|
|
}) |
|
|
|
}); |
|
|
|
const newClassRelationData = newClassRelation.dataValues; |
|
|
|
const newClassRelationData = newClassRelation.dataValues; |
|
|
|
const newClassRelationDataId = newClassRelationData.resourceClassRelationId |
|
|
|
const newClassRelationDataId = |
|
|
|
classRelationIdList.push(newClassRelationData) |
|
|
|
newClassRelationData.resourceClassRelationId; |
|
|
|
classRelationObject[newClassRelationDataId] = newClassRelationData |
|
|
|
classRelationIdList.push(newClassRelationData); |
|
|
|
classRelationObjectForTargetClass[classId] = newClassRelationData |
|
|
|
classRelationObject[newClassRelationDataId] = newClassRelationData; |
|
|
|
relationIdList.push(newClassRelationDataId) |
|
|
|
classRelationObjectForTargetClass[classId] = [newClassRelationData]; |
|
|
|
classNodeObject[newClassRelationDataId] = new makeClassNode( |
|
|
|
classNodeObject[newClassRelationDataId] = new ClassNodeModel( |
|
|
|
classModel, |
|
|
|
nowClassModel, |
|
|
|
newClassRelationDataId, |
|
|
|
newClassRelationDataId, |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
for(let i = 0; i< relationIdList.length; i++){ |
|
|
|
for (let i = 0; i < nowRelationIdList.length; i++) { |
|
|
|
const classRelationId = relationIdList[i]; |
|
|
|
const classRelationId = nowRelationIdList[i]; |
|
|
|
classNodeObject[classRelationId] = new makeClassNode( |
|
|
|
classNodeObject[classRelationId] = new ClassNodeModel( |
|
|
|
classModel, |
|
|
|
nowClassModel, |
|
|
|
classRelationId, |
|
|
|
classRelationId, |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
// @ 构建类关系
|
|
|
|
// @ 构建类关系
|
|
|
|
for(let i = 0; i < classRelationIdList.length; i++){ |
|
|
|
for (let i = 0; i < classRelationIdList.length; i++) { |
|
|
|
const nodeId = classRelationIdList[i].resourceClassRelationId; |
|
|
|
const nodeId = classRelationIdList[i].resourceClassRelationId; |
|
|
|
const classNode = classNodeObject[nodeId] |
|
|
|
const classNode = classNodeObject[nodeId]; |
|
|
|
const fatherId = classNodeObject[nodeId].father |
|
|
|
const fatherId = classNodeObject[nodeId].fatherId; |
|
|
|
classNodeObject[fatherId].children.push(classNode) |
|
|
|
classNodeObject[fatherId].children.push(classNode); |
|
|
|
} |
|
|
|
} |
|
|
|
console.log(classNodeObject) |
|
|
|
// console.log(classNodeObject)
|
|
|
|
|
|
|
|
// @ 根据关联元/模型分类资源类节点
|
|
|
|
|
|
|
|
// @ classNodeObjectForAtomModel - String - 描述:关联元/模型下的根节点
|
|
|
|
|
|
|
|
const classNodeObjectForAtomModel = {}; |
|
|
|
|
|
|
|
// 根据元分类/模型创建根节点的空数组
|
|
|
|
|
|
|
|
for (let i = 0; i < RAP.normalData.length; i++) { |
|
|
|
|
|
|
|
classNodeObjectForAtomModel[RAP.normalData[i].atomModelId] = []; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 将根节点放入 分类/模型创建根节点的空数组 中
|
|
|
|
|
|
|
|
for (let i = 0; i < classNodeObject[0].children.length; i++) { |
|
|
|
|
|
|
|
const nodeModel = classNodeObject[0].children[i]; |
|
|
|
|
|
|
|
const atomModelId = nodeModel.atomModel; |
|
|
|
|
|
|
|
if (classNodeObjectForAtomModel[atomModelId] === undefined) { |
|
|
|
|
|
|
|
logger.warn('存在未找到元分类/模型的资源类:' + nodeModel.classId); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
classNodeObjectForAtomModel[atomModelId].push(nodeModel); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// console.time('GET TREE')
|
|
|
|
|
|
|
|
// global.test = classNodeObjectForAtomModel[1][0].nodeZeroInfo
|
|
|
|
|
|
|
|
// console.timeEnd('GET TREE')
|
|
|
|
|
|
|
|
// console.time('GET TREE JSON')
|
|
|
|
|
|
|
|
// global.test2 = JSON.stringify(global.test, null, 3)
|
|
|
|
|
|
|
|
// console.timeEnd('GET TREE JSON')
|
|
|
|
|
|
|
|
// console.time('GET TREE JSON CONSOLE')
|
|
|
|
|
|
|
|
// console.log(global.test)
|
|
|
|
|
|
|
|
// console.timeEnd('GET TREE JSON CONSOLE')
|
|
|
|
|
|
|
|
console.timeEnd('==生成类关系节点数据模型=='); |
|
|
|
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ! 获取资源实体 ===============================================================================
|
|
|
|
// ! 获取资源实体 ===============================================================================
|
|
|
|
|
|
|
|
console.time('获取资源实体'); |
|
|
|
// region 获取资源实体
|
|
|
|
// region 获取资源实体
|
|
|
|
// @ entityListForClassId - Object[Array[Object[entity]]] - 描述:实体列表根据资源类ID区分的对象
|
|
|
|
// @ entityListForClassId - Object[Array[Object[entity]]] - 描述:实体列表根据资源类ID区分的对象
|
|
|
|
const entityListForClassId = {}; |
|
|
|
const entityListForClassId = {}; |
|
|
@ -644,6 +721,7 @@ async function makeResourceCache(sequelize) { |
|
|
|
const classModel = classModelObject[i]; |
|
|
|
const classModel = classModelObject[i]; |
|
|
|
const classId = classModel.classId; |
|
|
|
const classId = classModel.classId; |
|
|
|
const classIdentify = classModel.classIdentify; |
|
|
|
const classIdentify = classModel.classIdentify; |
|
|
|
|
|
|
|
console.time(' 获取资源实体表信息' + classModel.classIdentify); |
|
|
|
const entityList = await classModel.sequelizeModel.findAll({ |
|
|
|
const entityList = await classModel.sequelizeModel.findAll({ |
|
|
|
...sequelizeFindAllType, |
|
|
|
...sequelizeFindAllType, |
|
|
|
where: { |
|
|
|
where: { |
|
|
@ -652,9 +730,37 @@ async function makeResourceCache(sequelize) { |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
console.timeEnd(' 获取资源实体表信息' + classModel.classIdentify); |
|
|
|
entityListForClassId[classId] = entityList; |
|
|
|
entityListForClassId[classId] = entityList; |
|
|
|
entityListForClassIdentify[classIdentify] = entityList; |
|
|
|
entityListForClassIdentify[classIdentify] = entityList; |
|
|
|
} |
|
|
|
} |
|
|
|
// endregion
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
console.timeEnd('获取资源实体'); |
|
|
|
// ! 获取资源实体关系
|
|
|
|
// ! 获取资源实体关系
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
createtime: new Date().getTime(), |
|
|
|
|
|
|
|
updatetime: new Date().getTime(), |
|
|
|
|
|
|
|
// 资源类
|
|
|
|
|
|
|
|
classList, |
|
|
|
|
|
|
|
classIdList, |
|
|
|
|
|
|
|
classObject, |
|
|
|
|
|
|
|
// 资源类拓展字段
|
|
|
|
|
|
|
|
classExpandList, |
|
|
|
|
|
|
|
classExpandIdList, |
|
|
|
|
|
|
|
classExpandObject, |
|
|
|
|
|
|
|
classExpandForClassBaseObject, |
|
|
|
|
|
|
|
// 资源实体结构
|
|
|
|
|
|
|
|
entityStructList, |
|
|
|
|
|
|
|
entityStructIdList, |
|
|
|
|
|
|
|
entityStructObject, |
|
|
|
|
|
|
|
entityStructForClassBaseObject, |
|
|
|
|
|
|
|
// 资源类模型
|
|
|
|
|
|
|
|
ClassModel, |
|
|
|
|
|
|
|
classModelObject, |
|
|
|
|
|
|
|
// 资源类节点模型
|
|
|
|
|
|
|
|
classNodeObject, |
|
|
|
|
|
|
|
ClassNodeModel, |
|
|
|
|
|
|
|
classNodeObjectForAtomModel, |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|