Browse Source

会话相关修改

8 years ago
parent
commit
4948be62c4

+ 1 - 0
src/server/include/commons.js

@ -82,6 +82,7 @@ exports.DEFAULT_PAGE_SIZE = 100;
 * Redis Key列表与占位符。
 */
const REDIS_KEY_REPLACER = "{id}";
exports.REDIS_KEY_REPLACER = REDIS_KEY_REPLACER;
exports.REDIS_KEYS = {

+ 47 - 2
src/server/models/messages/messages.js

@ -11,6 +11,8 @@ let modelUtil = require('../../util/modelUtil');
var imDb = require('../../repository/mysql/db/im.db');
let log = require('../../util/log.js');
let Sessions = require('../sessions/sessions');
let configFile = require('../../include/commons').CONFIG_FILE;
let config = require('../../resources/config/' + configFile);
const RedisKey = require('../../include/commons').REDIS_KEYS;
const IMTABLE = require('../../include/commons').IM_DB;
@ -62,7 +64,7 @@ class Messages extends RedisModel {
                }else{
                    db = IMTABLE.GROUPMSG;
                }
                let sql = "select * from "+db+" w where w.session_id = ? limit 0,1000";
                let sql = "select * from "+db+" w where w.session_id = ? limit 0,"+config.sessionConfig.maxMessageCount;
                imDb.execQuery({
                    "sql": sessionsql,
                    "args": [sessionId],
@ -80,7 +82,50 @@ class Messages extends RedisModel {
    }
    /**
     * 分页获取消息MySQL
     * @param sessionId
     * @param page
     * @param pagesize
     */
    getMessageByPage(sessionId,page,pagesize){
        if(page>0){
            page =page*pagesize;
        }
        let session = new  Sessions();
        session.getSessions(sessionId,function(err,res){
            if(err){
                return;
            }else{
                if(res.length==0){
                    log.warn("session is not found!");
                    return;
                }
                let type = res[0].type;
                let db ="";
                if(type==1){
                    db = IMTABLE.MUCMSG;
                }else if(type==2){
                    db = IMTABLE.P2PMSG;
                }else{
                    db = IMTABLE.GROUPMSG;
                }
                let sql = "select * from "+db+" w where w.session_id = ? limit ?,?";
                imDb.execQuery({
                    "sql": sessionsql,
                    "args": [sessionId,page,pagesize],
                    "handler": function (err, res) {
                        if(err) {
                            log.error("sql:"+sql+"data:sessionId:"+sessionId);
                        }else{
                            log.info("getMessagesBySession success by sessionId :"+sessionId);
                        }
                        handler(err,res);
                    }
                })
            }
        })
    }

+ 6 - 0
src/server/resources/config/config.dev.js

@ -66,6 +66,12 @@ let wechatConfig = {
    }
};
let sessionConfig = {
    maxMessageCount: 1000,
    maxMessageTimespan: 7 * 24 * 3600
};
exports.app = 'IM.Server';
exports.version = '1.2.7';
exports.debug = true;