|
|
@ -4,6 +4,7 @@ const moment = require('moment') |
|
|
|
|
|
|
|
async function createYingshi (ctx) { |
|
|
|
let errMsg = '添加萤石摄像头失败' |
|
|
|
const transaction = await ctx.fs.dc.orm.transaction(); |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc |
|
|
|
const { userId, token } = ctx.fs.api |
|
|
@ -13,6 +14,7 @@ async function createYingshi (ctx) { |
|
|
|
id, name, cloudControl, highDefinition, memoryCard, |
|
|
|
voice, kindId, abilityId, rtmp, serialNo, longitude, latitude, |
|
|
|
} = ctx.request.body; |
|
|
|
let handleCameraId = id |
|
|
|
|
|
|
|
const serialNo_ = String(serialNo).toUpperCase() |
|
|
|
const secretRes = await models.SecretYingshi.findAll() |
|
|
@ -39,25 +41,52 @@ async function createYingshi (ctx) { |
|
|
|
|
|
|
|
let storageData = { |
|
|
|
type: 'yingshi', name, cloudControl, highDefinition, memoryCard, |
|
|
|
voice, longitude, latitude, kindId, abilityId, rtmp, |
|
|
|
voice, longitude, latitude, kindId, rtmp, |
|
|
|
serialNo: serialNo_, |
|
|
|
yingshiSecretId: cameraBeloneSecretId |
|
|
|
} |
|
|
|
|
|
|
|
if (id) { |
|
|
|
if (handleCameraId) { |
|
|
|
await models.Camera.update(storageData, { |
|
|
|
where: { |
|
|
|
id, |
|
|
|
} |
|
|
|
id: handleCameraId, |
|
|
|
}, |
|
|
|
transaction |
|
|
|
}) |
|
|
|
} else { |
|
|
|
storageData.createTime = moment().format() |
|
|
|
storageData.createUserId = userId |
|
|
|
storageData.forbidden = false |
|
|
|
await models.Camera.create(storageData) |
|
|
|
const createRes = await models.Camera.create(storageData, { |
|
|
|
transaction |
|
|
|
}) |
|
|
|
handleCameraId = createRes.id |
|
|
|
} |
|
|
|
|
|
|
|
await models.CameraAbilityBind.destroy({ |
|
|
|
where: { |
|
|
|
cameraId: handleCameraId |
|
|
|
}, |
|
|
|
transaction |
|
|
|
}) |
|
|
|
if (abilityId && handleCameraId) { |
|
|
|
let storageData = abilityId.map(aid => { |
|
|
|
return { |
|
|
|
cameraId: handleCameraId, |
|
|
|
abilityId: aid |
|
|
|
} |
|
|
|
}) |
|
|
|
if (storageData.length) { |
|
|
|
await models.CameraAbilityBind.bulkCreate(storageData, { |
|
|
|
transaction |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
await transaction.commit(); |
|
|
|
ctx.status = 204; |
|
|
|
} catch (error) { |
|
|
|
await transaction.rollback(); |
|
|
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
|
|
ctx.status = 400; |
|
|
|
ctx.body = { |
|
|
@ -172,36 +201,65 @@ async function createNvrCamera (ctx) { |
|
|
|
} |
|
|
|
|
|
|
|
async function createIpcCamera (ctx) { |
|
|
|
const transaction = await ctx.fs.dc.orm.transaction(); |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc |
|
|
|
const { userId, token } = ctx.fs.api |
|
|
|
|
|
|
|
const { |
|
|
|
id, name, cloudControl, memoryCard, |
|
|
|
voice, longitude, latitude, rtmp, |
|
|
|
voice, longitude, latitude, venderId, rtmp, |
|
|
|
serialNo, kindId, abilityId, |
|
|
|
} = ctx.request.body; |
|
|
|
let handleCameraId = id |
|
|
|
|
|
|
|
let storageData = { |
|
|
|
type: 'ipc', name, cloudControl, memoryCard, |
|
|
|
voice, longitude, latitude, rtmp, |
|
|
|
serialNo, kindId, abilityId, |
|
|
|
voice, longitude, latitude, rtmp, venderId, |
|
|
|
serialNo, kindId, |
|
|
|
} |
|
|
|
|
|
|
|
if (id) { |
|
|
|
if (handleCameraId) { |
|
|
|
await models.Camera.update(storageData, { |
|
|
|
where: { |
|
|
|
id, |
|
|
|
} |
|
|
|
id: handleCameraId, |
|
|
|
}, |
|
|
|
transaction |
|
|
|
}) |
|
|
|
} else { |
|
|
|
storageData.createTime = moment().format() |
|
|
|
storageData.createUserId = userId |
|
|
|
storageData.forbidden = false |
|
|
|
await models.Camera.create(storageData) |
|
|
|
const createRes = await models.Camera.create(storageData, { |
|
|
|
transaction |
|
|
|
}) |
|
|
|
handleCameraId = createRes.id |
|
|
|
} |
|
|
|
|
|
|
|
await models.CameraAbilityBind.destroy({ |
|
|
|
where: { |
|
|
|
cameraId: handleCameraId |
|
|
|
}, |
|
|
|
transaction |
|
|
|
}) |
|
|
|
if (abilityId && handleCameraId) { |
|
|
|
let storageData = abilityId.map(aid => { |
|
|
|
return { |
|
|
|
cameraId: handleCameraId, |
|
|
|
abilityId: aid |
|
|
|
} |
|
|
|
}) |
|
|
|
if (storageData.length) { |
|
|
|
await models.CameraAbilityBind.bulkCreate(storageData, { |
|
|
|
transaction |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
await transaction.commit(); |
|
|
|
ctx.status = 204; |
|
|
|
} catch (error) { |
|
|
|
await transaction.rollback(); |
|
|
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
|
|
ctx.status = 400; |
|
|
|
ctx.body = {} |
|
|
|