Browse Source

萤石状态推送

release_0.0.2
巴林闲侠 2 years ago
parent
commit
4a3946d4cc
  1. 196
      code/VideoAccess-VCMP/api/app/lib/schedule/freshYingshiState.js

196
code/VideoAccess-VCMP/api/app/lib/schedule/freshYingshiState.js

@ -7,107 +7,107 @@ module.exports = function (app, opts) {
'*/1 * * * *',
async () => {
// try {
// const startTime = moment()
// const { models } = app.fs.dc
// const { token4yingshi } = app.fs.utils
// const secretRes = await models.SecretYingshi.findAll()
// let deviceList = []
// for (let s of secretRes) {
// const tokenYingshi = await token4yingshi(s.dataValues)
// // 查询所有设备
// let pageStart = 0
// while (pageStart >= 0) {
// const deviceRes = await app.fs.yingshiRequest.post('lapp/device/list', {
// query: {
// accessToken: tokenYingshi,
// pageStart,
// pageSize: 50
// }
// })
// if (deviceRes.code == 200) {
// if (deviceRes.data.length) {
// deviceList = deviceList.concat.apply(deviceList, deviceRes.data)
// for (let d of deviceRes.data) {
// const existD = await models.GbCamera.findOne({
// where: {
// streamid: d.deviceSerial
// }
// })
try {
const startTime = moment()
const { models } = app.fs.dc
const { token4yingshi } = app.fs.utils
const secretRes = await models.SecretYingshi.findAll()
let deviceList = []
for (let s of secretRes) {
const tokenYingshi = await token4yingshi(s.dataValues)
// 查询所有设备
let pageStart = 0
while (pageStart >= 0) {
const deviceRes = await app.fs.yingshiRequest.post('lapp/device/list', {
query: {
accessToken: tokenYingshi,
pageStart,
pageSize: 50
}
})
if (deviceRes.code == 200) {
if (deviceRes.data.length) {
deviceList = deviceList.concat.apply(deviceList, deviceRes.data)
for (let d of deviceRes.data) {
const existD = await models.GbCamera.findOne({
where: {
streamid: d.deviceSerial
}
})
// let storageD = {
// level: 0,
// ipctype: 'yingshi',
// streamid: d.deviceSerial,
// online: d.status ? 'ON' : 'OFF',
// name: d.deviceName,
// }
// if (existD) {
// if (existD.online != storageD.online) {
// // 状态更新
// await models.GbCamera.update(storageD, {
// where: {
// id: existD.id
// }
// })
let storageD = {
level: 0,
ipctype: 'yingshi',
streamid: d.deviceSerial,
online: d.status ? 'ON' : 'OFF',
name: d.deviceName,
}
if (existD) {
if (existD.online != storageD.online) {
// 状态更新
await models.GbCamera.update(storageD, {
where: {
id: existD.id
}
})
// // 状态推送
// // const { connected } = app.socket.sockets
// // const roomId = 'ROOM_' + Math.random() + '_' + d.deviceSerial
// // let cameraName = ''
// // if (connected) {
// // for (let c in connected) {
// // const { client: { conn: { request: { _query } } } } = connected[c]
// // if (_query && _query.token) {
// // let userInfo = await app.redis.hget(_query.token, 'userInfo');
// // if (userInfo) {
// // userInfo = JSON.parse(userInfo)
// // const corCameraRes = await models.Camera.findOne({
// // where: {
// // gbId: existD.id,
// // createUserId: userInfo.id
// // }
// // })
// // // TODO 管理员判断
// // if (corCameraRes) {
// // cameraName = corCameraRes.name
// // connected[c].join(roomId)
// // }
// // }
// // }
// // }
// 状态推送
const { connected } = app.socket.sockets
const roomId = 'ROOM_' + Math.random() + '_' + d.deviceSerial
let cameraName = ''
if (connected) {
for (let c in connected) {
const { client: { conn: { request: { _query } } } } = connected[c]
if (_query && _query.token) {
let userInfo = await app.redis.hget(_query.token, 'userInfo');
if (userInfo) {
userInfo = JSON.parse(userInfo)
const corCameraRes = await models.Camera.findOne({
where: {
gbId: existD.id,
createUserId: userInfo.id
}
})
// TODO 管理员判断
if (corCameraRes) {
cameraName = corCameraRes.name
connected[c].join(roomId)
}
}
}
}
// // app.socket.to(roomId).emit('CAMERA_ONLINE', {
// // ipctype: 'yingshi',
// // online: storageD.online,
// // gbId: existD.id,
// // name: cameraName
// // })
// // }
// }
// } else {
// const yingshiRes = await models.GbCamera.create(storageD)
// await models.Camera.update({
// gbId: yingshiRes.id
// }, {
// where: {
// serialNo: d.deviceSerial
// }
// })
// }
// }
// pageStart++
// } else {
// pageStart = -1
// }
// }
// }
// }
// // console.log(deviceList);
// console.info(`萤石状态查询用时 ${moment().diff(startTime, 'seconds')} s`)
// } catch (error) {
// app.fs.logger.error(`sechedule: freshYingshiState, error: ${error}`);
// }
app.socket.to(roomId).emit('CAMERA_ONLINE', {
ipctype: 'yingshi',
online: storageD.online,
gbId: existD.id,
name: cameraName
})
}
}
} else {
const yingshiRes = await models.GbCamera.create(storageD)
await models.Camera.update({
gbId: yingshiRes.id
}, {
where: {
serialNo: d.deviceSerial
}
})
}
}
pageStart++
} else {
pageStart = -1
}
}
}
}
// console.log(deviceList);
console.info(`萤石状态查询用时 ${moment().diff(startTime, 'seconds')} s`)
} catch (error) {
app.fs.logger.error(`sechedule: freshYingshiState, error: ${error}`);
}
});
return {

Loading…
Cancel
Save