Browse Source

mirror api 60%

release_1.3.0
巴林闲侠 3 years ago
parent
commit
21e12d47ef
  1. 84
      code/VideoAccess-VCMP/api/app/lib/controllers/mirror/index.js

84
code/VideoAccess-VCMP/api/app/lib/controllers/mirror/index.js

@ -444,7 +444,7 @@ async function copy (ctx) {
template: mirrorRes.template, template: mirrorRes.template,
createUser: userId, createUser: userId,
createTime: timeNow.format(), createTime: timeNow.format(),
title: data.title, title: mirrorRes.title + '-副本',
showHeader: mirrorRes.showHeader, showHeader: mirrorRes.showHeader,
publish: mirrorRes.publish, publish: mirrorRes.publish,
mid: timeNow.format(`ssmmHHDDMMYYYY`) mid: timeNow.format(`ssmmHHDDMMYYYY`)
@ -454,35 +454,79 @@ async function copy (ctx) {
const newMirrorId = newMirrorRes.id const newMirrorId = newMirrorRes.id
let cameraStorage = {} let cameraStorage = {}
let treeLevelOne = mirrorTrees.filter(mt => mt.level == 1)
const storageTree = (node) => { // 重新存一遍树节点
const storageTree = async (node, lastNodeStorageId) => {
for (let n of node) { for (let n of node) {
// 创建新节点
const newTreeNodeStorageRes = await models.MirrorTree.create({
name: n.name,
level: n.level,
dependence: lastNodeStorageId,
mirrorId: newMirrorId
}, {
transaction
})
// 筛选老节点所下辖的摄像头
let corCamera = mirrorCameras.filter((mc) => mc.treeIds.includes(n.id))
for (let c of corCamera) {
// 为摄像头存新的节点id
if (cameraStorage[c.cameraId]) {
cameraStorage[c.cameraId].treeIds.push(newTreeNodeStorageRes.id)
} else {
cameraStorage[c.cameraId] = {
treeIds: [newTreeNodeStorageRes.id],
filterIds: []
}
}
}
const nextNode = mirrorTrees.filter(mt => mt.dependence == n.id)
if (nextNode.length) {
await storageTree(nextNode)
}
} }
} }
storageTree(treeLevelOne) let treeLevelOne = mirrorTrees.filter(mt => mt.level == 1)
await storageTree(treeLevelOne, null)
for (let { dataValues: mt } of mirrorTrees) { // 重新存一遍筛选分组、筛选项
const newTreeNodeStorageRes = await models.MirrorTree.create({ for (let { dataValues: g } of mirrorFilterGroups) {
name: c.label, const newGroupStorageRes = await models.MirrorFilterGroup.create({
level: curLevel, name: g.name,
dependence: lastNodeStorageId, forbidden: g.forbidden,
mirrorId: mirrorId_ mirrorId: newMirrorId
}, {
transaction
}) })
let corCamera = mirrorCameras.filter((mc) => { mc.treeIds.includes(mt.id) }) for (let { dataValues: f } of g.mirrorFilters) {
for (let c of corCamera) { const newFilterStorageRes = await models.MirrorFilter.create({
if (cameraStorage[c.cameraId]) { name: f.name,
cameraStorage[c.cameraId].treeIds.push(lastNodeStorageId) groupId: newGroupStorageRes.id
} else { }, {
cameraStorage[c.cameraId] = { transaction
treeIds: [lastNodeStorageId], })
filterIds: [] let corCamera = mirrorCameras.filter((mc) => mc.filterIds.includes(f.id))
for (let c of corCamera) {
// 为摄像头存新的节点id
if (cameraStorage[c.cameraId]) {
cameraStorage[c.cameraId].filterIds.push(newFilterStorageRes.id)
} }
} }
} }
} }
let bulkCreateCameraD = []
for (let cid in cameraStorage) {
bulkCreateCameraD.push({
cameraId: cid,
...cameraStorage[cid],
mirrorId: newMirrorId
})
}
if (bulkCreateCameraD.length) {
await models.MirrorCamera.bulkCreate(bulkCreateCameraD, {
transaction
})
}
} }
await transaction.commit(); await transaction.commit();

Loading…
Cancel
Save