|
|
@ -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 { |
|
|
|