var express = require('express'); var router = express.Router(); var user = require("../models/user"); var msg_system = require("../models/msg_system"); var push = require("../models/push_notify"); var http = require('http'); var qs = require('querystring'); var getui = require('getui'); /** * 推送消息:system/sendmsg.im?to_uid=x&type=xx&title=xxx&content=xxxx&data=xxxxx * 参数: * to_uid:消息接收者ID * type:消息类型 * title:消息标题 * content:推送消息提示内容 * data:推送消息内容 */ router.get('/sendmsg.im', function (req, res, next) { if (req.query.to_uid == null || req.query.title == null || req.query.type == null || req.query.content == null || req.query.data == null) { res.send({errno: -1, errmsg: 'parameter error'}); return; } user.getUserbyID(req.query.to_uid, function (err, result) { if (err) { res.send({errno: 1, errmsg: 'get user by id from db failed'}); return; } var bMustPush = 0; var data; if (result.length > 0) { data = result[0]; if (data.is_online) { bMustPush = 1; } } var push_data = JSON.stringify({ type:req.query.type, data:req.query.data }); // 保存该条推送信息 msg_system.saveSystemMsg(req.query.to_uid, req.query.type, req.query.title, req.query.content, req.query.data, function (err, result) { if (err) { // 保存失败 res.send({errno: 2, errmsg: 'save msg to db failed'}); } else { // 保存通知到数据库中 push.savePushNotify(req.query.to_uid, req.query.type, req.query.title, req.query.content, push_data, bMustPush, function (err, result) { if (err) { // 保存失败 res.send({errno: 3, errmsg: 'save msg to db failed'}); } else { res.send({errno: 0, errmsg: 'save msg to db success'}); if (bMustPush == true) { if (data.platform == 0) {// iOS getui.pushAPN(req.query.to_uid, data.token, req.query.type, req.query.title, req.query.content, push_data, function (err, result) { if (err != null) { console.log(err); } else { console.log(result); } }); } else {// Android getui.pushAndroid(data.client_id, req.query.type, req.query.title, req.query.content, push_data, data.status, function (err, result) { if (err != null) { console.log(err); } else { console.log(result); } }); } } } }); } }); }); }); module.exports = router;