You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
5.5 KiB
116 lines
5.5 KiB
const schedule = require('node-schedule');
|
|
const moment = require('moment')
|
|
|
|
module.exports = function (app, opts) {
|
|
const freshYingshiState = schedule.scheduleJob(
|
|
// '* * 4 * * *',
|
|
'*/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
|
|
// }
|
|
// })
|
|
|
|
// 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)
|
|
// // }
|
|
// // }
|
|
// // }
|
|
// // }
|
|
|
|
// // 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 {
|
|
freshYingshiState
|
|
}
|
|
}
|