123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- "use strict";
- var log = require('../util/log');
- var mysql_wlyy = require("../db/mysql_wlyy");
- var mysql_im = require("../db/mysql_im");
- var config = require("../config");
- var http = require('http');
- var qs = require('querystring');
- var async = require('async');
- function updateGroupChatInfo(user_id, group_id, from_uid, at_me, type, content, msg_count_plus_one, handler) {
- var uuid = user_id + '_' + group_id;
- if (msg_count_plus_one) {
- mysql_im.execQuery({
- "sql": "INSERT INTO msg_statistic (uid,uuid,from_uid,from_gid,at_me,msg_type,last_content_type,last_content,new_msg_count) VALUES (?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE from_uid=?,at_me=?,last_content_type=?,last_content=?,new_msg_count=new_msg_count+1",
- "args": [user_id, uuid, from_uid, group_id, at_me, 2, type, content, 1, from_uid, at_me, type, content],
- "handler": handler
- });
- } else {
- mysql_im.execQuery({
- "sql": "INSERT INTO msg_statistic (uid,uuid,from_uid,from_gid,at_me,msg_type,last_content_type,last_content,new_msg_count) VALUES (?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE from_uid=?,at_me=?,last_content_type=?,last_content=?",
- "args": [user_id, uuid, from_uid, group_id, at_me, 2, type, content, 0, from_uid, at_me, type, content],
- "handler": handler
- });
- }
- }
- function updateP2PChatInfo(user_id, peer_uid, from_uid, type, content, handler) {
- var uuid = user_id + '_' + peer_uid;
- if (user_id == from_uid) {
- // 更新自身的统计信息
- mysql_im.execQuery({
- "sql": "INSERT INTO msg_statistic (uid,uuid,from_uid,peer_uid,msg_type,last_content_type,last_content,new_msg_count) VALUES (?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE peer_uid=?,last_content_type=?,last_content=?",
- "args": [user_id, uuid, from_uid, peer_uid, 1, type, content, 0, peer_uid, type, content],
- "handler": handler
- });
- } else {
- // 更新对端的统计信息
- mysql_im.execQuery({
- "sql": "INSERT INTO msg_statistic (uid,uuid,from_uid,peer_uid,msg_type,last_content_type,last_content,new_msg_count) VALUES (?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE peer_uid=?,last_content_type=?,last_content=?,new_msg_count=new_msg_count+1",
- "args": [user_id, uuid, from_uid, peer_uid, 1, type, content, 1, peer_uid, type, content],
- "handler": handler
- });
- }
- }
- function clearGroupChatInfo(user_id, group_id, handler) {
- var uuid = user_id + '_' + group_id;
- mysql_im.execQuery({
- "sql": "UPDATE msg_statistic SET new_msg_count='0' WHERE uuid=?",
- "args": [uuid],
- "handler": handler
- });
- }
- function clearP2PChatInfo(user_id, peer_uid, handler) {
- var uuid = user_id + '_' + peer_uid;
- mysql_im.execQuery({
- "sql": "UPDATE msg_statistic SET new_msg_count='0' WHERE uuid=?",
- "args": [uuid],
- "handler": handler
- });
- }
- function getGroupChatInfo(user_id, group_id, handler) {
- var uuid = user_id + '_' + group_id;
- mysql_im.execQuery({
- "sql": "SELECT uid,from_uid,from_gid,at_me,last_content_type,last_content,new_msg_count,timestamp from msg_statistic WHERE uuid = ?",
- "args": [uuid],
- "handler": handler
- });
- }
- function getP2PChatInfo(user_id, peer_uid, handler) {
- var uuid = user_id + '_' + peer_uid;
- mysql_im.execQuery({
- "sql": "SELECT uid,from_uid,last_content_type,last_content,new_msg_count,timestamp from msg_statistic WHERE uuid = ?",
- "args": [uuid],
- "handler": handler
- });
- }
- function getChatList(user_id, handler) {
- mysql_im.execQuery({
- "sql": "SELECT uid,from_uid,from_gid,peer_uid,at_me,msg_type,last_content_type,last_content,new_msg_count,timestamp from msg_statistic WHERE uid = ?",
- "args": [user_id],
- "handler": handler
- });
- }
- function getGroupChatAllUnRead(user_id, handler) {
- mysql_im.execQuery({
- "sql": "SELECT new_msg_count from msg_statistic WHERE uid=? AND msg_type=2 AND new_msg_count>0",
- "args": [user_id],
- "handler": handler
- });
- }
- function getP2PChatAllUnRead(user_id, handler) {
- mysql_im.execQuery({
- "sql": "SELECT new_msg_count from msg_statistic WHERE uid=? AND msg_type=1 AND new_msg_count>0",
- "args": [user_id],
- "handler": handler
- });
- }
- function getChatAllUnRead(user_id, handler) {
- mysql_im.execQuery({
- "sql": "SELECT new_msg_count from msg_statistic WHERE uid=? AND new_msg_count>0",
- "args": [user_id],
- "handler": handler
- });
- }
- function getAppMsgAmount(user_id, handler) {
- mysql_wlyy.execQuery({
- "sql": "SELECT imei,token from wlyy_token WHERE user=?",
- "args": [user_id],
- "handler": function(err, result) {
- if (err) {
- handler(null, 0);
- return;
- }
- if (result.length == 0) {
- handler(null, 0);
- return;
- }
- var options = {
- hostname: config.app_serer_cfg.hostname,
- port: config.app_serer_cfg.port,
- path: config.app_serer_cfg.path,
- method: config.app_serer_cfg.method,
- headers: {
- 'userAgent': '{"token":"'+ result[0].token +'","uid":"'+ user_id +'","imei":"'+ result[0].imei +'"}'
- }
- };
- var req = http.request(options, function (res) {
- res.setEncoding('utf8');
- res.on('data', function (chunk) {
- console.log('BODY: ' + chunk);
- var data = JSON.parse(chunk);
- handler(null, data);
- });
- });
- req.on('error', function (e) {
- console.log('problem with request: ' + e.message);
- handler(e, null);
- });
- req.end();
- }
- });
- }
- function getBadgeNumber(user_id, handler) {
- async.parallel([
- function(callback) {
- // 此版本app界面未显示im的未读条数
- callback(null, 0);
- /*
- getChatAllUnRead(user_id, function(err, result) {
- if (err) {
- callback(null, 0);
- return;
- }
- if (result.length == 0) {
- callback(null, 0);
- return;
- }
- var count = 0;
- var index = 0;
- var length = result.length;
- for (; index < length; index++) {
- count += result[index].new_msg_count;
- }
- callback(null, count);
- });
- */
- },
- function(callback) {
- getAppMsgAmount(user_id, function(err, result) {
- if (err) {
- callback(null, 0);
- } else {
- var count = 0;
- try {
- count += result.data.healthIndex;
- count += result.data.sign;
- count += result.data.consultTeam;
- callback(null, count);
- } catch (e) {
- callback(null, 0);
- }
- }
- });
- }],
- function(err, results) {
- var badge = 0;
- for (var index = 0; index < results.length; index++) {
- badge += results[index];
- }
- handler(null, badge);
- });
- }
- exports.updateGroupChatInfo = updateGroupChatInfo;
- exports.updateP2PChatInfo = updateP2PChatInfo;
- exports.clearGroupChatInfo = clearGroupChatInfo;
- exports.clearP2PChatInfo = clearP2PChatInfo;
- exports.getGroupChatInfo = getGroupChatInfo;
- exports.getP2PChatInfo = getP2PChatInfo;
- exports.getChatList = getChatList;
- exports.getGroupChatAllUnRead = getGroupChatAllUnRead;
- exports.getP2PChatAllUnRead = getP2PChatAllUnRead;
- exports.getChatAllUnRead = getChatAllUnRead;
- exports.getAppMsgAmount = getAppMsgAmount;
- exports.getBadgeNumber = getBadgeNumber;
|