From 729dc5189cc8f40fa98b16fb8f14fe62fa2e4eef Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Mon, 07 Aug 2017 17:22:59 +0800 Subject: [PATCH] 家庭排名 --- method.js | 68 ++++++++++++++++++--------------- 1 files changed, 37 insertions(+), 31 deletions(-) diff --git a/method.js b/method.js index 4ef0589..07aa228 100644 --- a/method.js +++ b/method.js @@ -173,23 +173,9 @@ 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" - }, - options: { - 1: [500, 700, 900] - } - }; - configs[mac] = _config; + _config = config.ALARM_DEFAULTS; + _config.mac = mac; + global.configs[mac] = _config; } var current = moment(); @@ -204,7 +190,9 @@ x3: x9, //������ x4: x11, //������ x5: x10, //������ - x6: x14 //������������ + x6: x14, //������������ + + mcu: mcu }, options: _config.options, time: current.valueOf() @@ -213,7 +201,7 @@ var rank = 0; if(s > 0) { - rank = this.random(1000, 99999);//this.random(1000, 99999999); + rank = this.random(100200, 102000);//this.random(1000, 99999999); db.collection("device_ranks").insertOne({ mac: mac, rank: rank, @@ -229,6 +217,7 @@ }, function(err, result) { }); } + var _this = this; db.collection("data").insertOne({ mac: mac, x1: x1, @@ -261,23 +250,37 @@ }, function(err, doc) { if (err) return; - var opt1 = _config['options'][1]; - if(x1 > opt1[0]) { - var level = 1; - if(x1 > opt1[2]) { - level = 3; - } else if(x1 > opt1[1]) { - level = 2; - } + var level1 = _this.getLevel(x1, _config['options'][1]); + var level2 = _this.getLevel(x9, _config['options'][2]); + var level3 = _this.getLevel(x11, _config['options'][3]); + var level4 = _this.getLevel(x10, _config['options'][4]); + var level5 = _this.getLevel(x14, _config['options'][5]); + var level = Math.max(level1, level2, level3, level4, level5); + if(level > 0) { sensor_data._id = doc.insertedId; sensor_data.level = level; sensor_data.notice = _config.notice; sensor_data.address = _config.address; + sensor_data.data.levels = [level1, level2, level3, level4, level5]; queue.pushToMQ('ex_data_alarm', sensor_data); } callback(doc, rank); }); +}; + +module.exports.getLevel = function(val, option) { + var level = 0; + if(option == null || option.length < 3) return level; + if(val > option[0]) { + var level = 1; + if(val > option[2]) { + level = 3; + } else if(val > option[1]) { + level = 2; + } + } + return level; }; module.exports.updateDeviceSleep = function(db, data, callback) { @@ -351,13 +354,16 @@ }; module.exports.initConfigs = function(db) { + var _address = config.ALARM_DEFAULTS.address; + var _location = config.ALARM_DEFAULTS.location; + var _options = config.ALARM_DEFAULTS.options; db.collection("devices").find().toArray(function(err, docs) { docs.forEach(function(doc) { var mac = doc.mac; - var address = doc.address || ""; - var location = doc.location || {}; + var address = doc.address || _address; + var location = doc.location || _location; + var options = doc.options || _options; var notice = doc.notice; - var options = doc.options; var config = { mac: mac, address: address, @@ -369,7 +375,7 @@ var userID = doc.userID; db.collection("users").find({"_id": userID}).limit(1).next(function(err, user){ if(user) { - config[notice] = { + config["notice"] = { tel: user.username, email: user.email, open_id: user.open_id -- Gitblit v1.8.0