Browse Source

增加获取图片的方法

8 years ago
parent
commit
2f719e9e14

+ 12 - 3
src/server/endpoints/v2/session.endpoint.js

@ -14,6 +14,7 @@ let log = require('../../util/log.js');
let ObjectUtil = require("../../util/object.util.js");
let ControllerUtil = require('../../util/controller.util');
let Sessions = require('../../models/sessions/sessions');
let Messages = require('../../models/messages/messages');
let Participants = require('../../models/sessions/participants');
const SESSION_TYPES = require('../../include/commons').SESSION_TYPES;
@ -203,6 +204,7 @@ router.get(APIv2.Sessions.Messages, function (req, res) {
    let page = req.query.page;
    let user = req.query.user;
    let sessionId = req.query.session_id;
    let content_type = req.query.content_type;
    if (!user) {
        throw {httpStatus: 406, message: 'Missing user.'};
    }
@ -215,10 +217,17 @@ router.get(APIv2.Sessions.Messages, function (req, res) {
    if(!page){
        page = 1;
    }
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    if(content_type){
        let messages = new Messages();
        ControllerUtil.regModelEventHandler(messages, res);
        messages.getMessageByType(sessionId,page,pagesize,content_type)
    }else{
        let sessions = new Sessions();
        ControllerUtil.regModelEventHandler(sessions, res);
        sessions.getMessages(sessionId, user, startMsgId,endMsgId,page,pagesize);
    }
    sessions.getMessages(sessionId, user, startMsgId,endMsgId,page,pagesize);
});
router.get(APIv2.Sessions.SessionUnreadMessages, function (req, res) {

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

@ -44,8 +44,25 @@ class Messages extends RedisModel {
     * @param pagesize
     * @param handler
     */
    getMessageFromMySQL(sessionId, page, pagesize, handler) {
        MessageRepo.findBySessionId(sessionId, page, pagesize, handler);
    getMessageFromMySQL(sessionId, page, pagesize,messageType, handler) {
        MessageRepo.findBySessionId(sessionId, page, pagesize,messageType, handler);
    }
    /**
     * 获取消息MySQL
     * @param sessionId
     * @param page
     * @param pagesize
     * @param handler
     */
    getMessageByType(sessionId, page, pagesize,messageType) {
        MessageRepo.findBySessionId(sessionId, page, pagesize,messageType,function(err,res){
                if(err){
                    ModelUtil.emitError(self.eventEmitter, {message: "Error get message by session and type : " + err});
                }else{
                    ModelUtil.emitOK(self.eventEmitter, {data:res});
                }
        });
    }
    /**

+ 1 - 1
src/server/models/user/users.js

@ -260,7 +260,7 @@ class Users extends RedisModel {
                                            // cache messages
                                            let messagesKey = RedisModel.makeRedisKey(REDIS_KEYS.Messages, sessionId);
                                            let messagesByTimestampKey = RedisModel.makeRedisKey(REDIS_KEYS.MessagesByTimestamp, sessionId);
                                            MessageRepo.findBySessionId(sessionId, 0, config.sessionConfig.maxMessageCount, function (err, messages) {
                                            MessageRepo.findBySessionId(sessionId, 0, config.sessionConfig.maxMessageCount,null, function (err, messages) {
                                                if (err) {
                                                    ModelUtil.emitError(self.eventEmitter, err.message);
                                                    return;

+ 12 - 5
src/server/repository/mysql/message.repo.js

@ -23,7 +23,7 @@ class MessageRepo {
     * @param size
     * @param handler
     */
    static findBySessionId(sessionId, page, size, handler) {
    static findBySessionId(sessionId, page, size,messageType, handler) {
        if (page < 0) {
            page = 0;
        }
@ -34,7 +34,7 @@ class MessageRepo {
                    handler(null, null);
                    return;
                }
                var params =[];
                let type = res[0].type;
                let MessageTable = "";
                if (type == 1) {
@ -44,12 +44,19 @@ class MessageRepo {
                } else {
                    MessageTable = DB_TABLES.GroupMessages;
                }
                let where = " w.session_id = ? ";
                params.push(sessionId);
                if(messageType){
                    where += " and content_type=? ";
                    params.push(messageType);
                }
                let sql = "select id, session_id, sender_id, sender_name, content_type, content, timestamp from " +
                    MessageTable + " w where w.session_id = ? order by w.id limit ?, ?";
                    MessageTable + " w where "+where+" order by w.id limit ?, ?";
                params.push(page);
                params.push(size);
                ImDb.execQuery({
                    "sql": sql,
                    "args": [sessionId, page, size],
                    "args": params,
                    "handler": handler
                });
            }