沈斌
2017-08-11 cd83ef88f783205bc17d06b249fa62f9425957c6
method.js
@@ -173,27 +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: [1000, 2000, 3000],
                2: [1000, 2000, 3000],
                3: [1000, 2000, 3000],
                4: [1000, 2000, 3000],
                5: [1000, 2000, 3000]
            }
        };
        configs[mac] = _config;
        _config = config.ALARM_DEFAULTS;
        _config.mac = mac;
        global.configs[mac] = _config;
    }
    var current = moment();
@@ -208,7 +190,9 @@
            x3: x9,  //甲醛
            x4: x11, //温度
            x5: x10, //湿度
            x6: x14  //光线强度
            x6: x14,  //光线强度
            mcu: mcu
        },
        options: _config.options,
        time: current.valueOf()
@@ -217,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,
@@ -233,6 +217,7 @@
        }, function(err, result) { });
    }
    var _this = this;
    db.collection("data").insertOne({
        mac: mac,
        x1: x1,
@@ -265,17 +250,20 @@
    }, function(err, doc) {
        if (err) return;
        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]);
        sensor_data._id = doc.insertedId;
        sensor_data.level = Math.max(level1, level2, level3, level4, level5);
        sensor_data.notice = _config.notice;
        sensor_data.address = _config.address;
        sensor_data.data = { 1: [x1, level1], 2: [x9, level2], 3: [x11, level3], 4: [x10, level4], 5: [x14, level5] };
        queue.pushToMQ('ex_data_alarm', sensor_data);
        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);
    });
@@ -283,6 +271,7 @@
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]) {
@@ -365,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,
@@ -383,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