From a7d7cf19e99f50b5af79cacd6ff4f193c0d44761 Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Tue, 27 Dec 2016 11:33:12 +0800 Subject: [PATCH] 修复insertedId错误 --- method.js | 122 +++++++++++++++++++++++++++++----------- 1 files changed, 87 insertions(+), 35 deletions(-) diff --git a/method.js b/method.js index c53e226..2eb056f 100644 --- a/method.js +++ b/method.js @@ -4,6 +4,7 @@ var moment = require('moment'); var config = require('./config'); +var queue = require('./queue'); module.exports.toDec = function(hex) { if(typeof hex === 'number') { @@ -93,7 +94,7 @@ this.updateDeviceLastUpdated(db, mac, function(data) {}); db.collection("devices").find({ mac: mac }).limit(1).next(function(err, doc){ - if (err) return; + if (err || doc == null) return; callback(doc); }); }; @@ -166,7 +167,41 @@ var ddv = this.toDec(fields[62]) * 256 + this.toDec(fields[63]); var mcu = this.toDec(fields[64]) + this.toDec(fields[65]) / 100; + var _config = global.configs[mac]; + if(_config == null) { + _config = { + mac: mac, + address: "���������������������������������", + location: {��� + lat:31.430616, + lng:120.988327��� + }, + notice: { + tel: "15950198162",��� + email: "it01@moral.org.cn",��� + open_id: "o-RTuwvMHWotyirPHLmdSB_dKoQU" + } + }; + configs[mac] = _config; + } + var current = moment(); + + var sensor_data = { + mac: mac, + location: _config.location, + data: { + x0: ferval, + x1: x1, //PM2.5 - (������:ppm) + x2: x3, //PM2.5 - 0.1���0.3um��� + x3: x9, //������ + x4: x11, //������ + x5: x10, //������ + x6: x14 //������������ + }, + time: current.valueOf() + }; + queue.pushToMQ('ex_data_screen', sensor_data); var rank = 0; if(s > 0) { @@ -215,9 +250,24 @@ mcu: mcu, day: current.format('YYYYMMDD'), created: current.valueOf() - }, function(err, result) { + }, function(err, doc) { if (err) return; - callback(result, rank); + + if(x1 > 250) { + var level = 1; + if(x1 > 750) { + level = 3; + } else if(x1 > 500) { + level = 2; + } + sensor_data._id = doc.insertedId; + sensor_data.level = level; + sensor_data.notice = _config.notice; + sensor_data.address = _config.address; + queue.pushToMQ('ex_data_alarm', sensor_data); + } + + callback(doc, rank); }); }; @@ -291,37 +341,39 @@ } }; -///////////////////////////////////////////////// -module.exports.insertDocument2 = function(db, data, rank, callback) { - var fields = data.match(/.{2}/g); - var mac = fields[6] + fields[7] + fields[8] + fields[9] + fields[10] + fields[11]; //Mac - - var x01 = this.toDec(fields[20]) * 256 + this.toDec(fields[21]); //PM2.5������ - var x02 = this.toDec(fields[24]) * 256 + this.toDec(fields[25]); //PM2.5������ - var x09 = this.toDec(fields[32]) * 256 + this.toDec(fields[33]); //������ - var x10 = this.toDec(fields[34]) * 256 + this.toDec(fields[35]); //������ - var x11 = this.toDec(fields[36]) * 256 + this.toDec(fields[37]); //������ - var x14 = this.toDec(fields[42]) * 256 + this.toDec(fields[43]); //������������ - - var fei = this.toDec(fields[58]); - var ferval = this.toDec(fields[59]); - var aqi = this.toDec(fields[60]) * 256 + this.toDec(fields[61]); - var ddv = this.toDec(fields[62]) * 256 + this.toDec(fields[63]); - var mcu = this.toDec(fields[64]) + this.toDec(fields[65]) / 100; - - db.collection("devices").find({ mac: mac }).limit(1).next(function(err, doc){ - if (err) return; - - var app = 0; - var app_status = doc.app_status; - var app_last_updated = doc.app_last_updated; - if(app_status == 1 && app_last_updated != null && Date.now() - app_last_updated <= 30000) { - app = 1; - } - db.collection(config.COLLECTION).insertOne({ mac: mac.toLowerCase(), data: data + ' - PM2.5:' + x01 + ', ������:' + x09 + ', ������:' + x10 + ', ������:' + x11 + ', ������:' + x02 + ', FEI:' + ferval + ', ������:' + fei + ', ������:' + x14 + ', AQI:' + aqi + ', ������������:' + ddv + ', MCU������:' + mcu + ', APP:' + app, date: Date.now() }, function(err, doc) { - if (err) return; - callback(doc); +module.exports.initConfigs = function(db) { + db.collection("devices").find().toArray(function(err, docs) { + docs.forEach(function(doc) { + var mac = doc.mac; + if(mac != null) { + var address = doc.address || ""; + var location = doc.location || {}; + var notice = doc.notice; + if(notice == null || notice == {}) { + var userID = doc.userID; + db.collection("users").find({"_id": userID}).limit(1).next(function(err, user){ + if(user) { + global.configs[mac] = { + mac: mac, + address: address, + location: location, + notice: { + tel: user.username, + email: user.email, + open_id: user.open_id + } + } + } + }); + } else { + global.configs[mac] = { + mac: mac, + address: address, + location: location, + notice: notice + } + } + } }); }); -}; - +}; \ No newline at end of file -- Gitblit v1.8.0