Browse Source

代码修改

8 years ago
parent
commit
ceb6f21697

+ 9 - 4
src/server/endpoints/chats.endpoint.js

@ -109,15 +109,20 @@ router.get(APIv1.Chats.TEST,function(req,res){
        message.senderName="test1";
        sessions.saveMessageBySession(message,sessionId);
    }
    //http://192.168.131.107:3008/api/v1/chats/test?test=5&page=0&pagesize=10&user=3121&sessionId=testsessionmsg1
    //http://192.168.131.107:3008/api/v1/chats/test?test=5&user=3121&sessionId=testsessionmsg1
    if(test==5){
        let sessions = new Sessions();
        ControllerUtil.regModelEventHandler(sessions, res);
        let sessionId = req.query.sessionId;
        let user = req.query.user;
        let page = req.query.page;
        let pagesize = req.query.pagesize;
        sessions.getSessionMessages(sessionId,user,page,pagesize);
        let type = req.query.type;
        if(type==1){
            //置顶
            sessions.stickSession(sessionId,user);
        }else{
            //取消置顶
            sessions.cancelStickSession(sessionId,user);
        }
    }
})

+ 3 - 2
src/server/include/commons.js

@ -103,7 +103,7 @@ exports.REDIS_KEYS = {
    Topic: "topics:" + REDIS_KEY_REPLACER
};
exports.STICK_NUM = 90000000000000;
exports.STICK_NUM = 9000000000000;
exports.IM_DB = {
    "P2PMSG": "p2p_messages",
@ -111,5 +111,6 @@ exports.IM_DB = {
    "GROUPMSG": "group_messages",
    "PARTICIPANTS": "participants",
    "SESSIONS": "sessions",
    "TOPICS": "topics"
    "TOPICS": "topics",
    "STICKY_SESSION":"sticky_sessions"
};

+ 7 - 1
src/server/models/sessions/sessions.js

@ -303,13 +303,17 @@ class Sessions extends RedisModel {
                   redis.zaddAsync(user_session_key, Commons.STICK_NUM,sessionId).then(function(res){
                       log.info("stickSession:"+sessionId+",res:"+res);
                       modelUtil.emitData(self.eventEmitter,{"status":200,"msg":"置顶成功!"});
                   }).then(function(){
                       SessionRepo.stickSession(sessionId,user,Commons.STICK_NUM);
                   })
                }else{
                    //已有置顶的数据,取出来加1保存回去
                    scoreres =  scoreres+1;
                    scoreres =  Number(scoreres)+1;
                    redis.zaddAsync(user_session_key, scoreres,sessionId).then(function(){
                        log.info("stickSession:"+sessionId+",res:"+res);
                        modelUtil.emitData(self.eventEmitter,{"status":200,"msg":"置顶成功!"});
                    }).then(function(){
                        SessionRepo.stickSession(sessionId,user,scoreres);
                    })
                }
            })
@ -330,6 +334,8 @@ class Sessions extends RedisModel {
            redis.zaddAsync(user_session_key, res,sessionId).then(function(res){
                log.info("cancelStickSession:"+sessionId);
                modelUtil.emitData(self.eventEmitter,{"status":200,"msg":"取消置顶成功!"});
            }).then(function(){
                SessionRepo.unstickSession(sessionId,user);
            });
        })
    }

+ 29 - 0
src/server/repository/mysql/session.repo.js

@ -75,6 +75,35 @@ class SessionRepo {
        });
    }
    static stickSession(sessionId,user,score){
        let sql ="insert into "+IMTABLE.STICKY_SESSION+" (user_id,session_id,score) VALUES (?,?,?) ";
        ImDb.execQuery({
            "sql": sql,
            "args": [user,sessionId,score],
            "handler": function (err, res) {
                if(err) {
                    log.error("sql:"+sql+"data:sessionId:"+sessionId+",user:"+user+",score:"+score);
                }else{
                    log.info("save stickSession to mysql is success by session :"+sessionId);
                }
            }
        });
    }
    static unstickSession(sessionId,user){
        let sql ="delete from "+IMTABLE.STICKY_SESSION+" where user_id=? and session_id=? ";
        ImDb.execQuery({
            "sql": sql,
            "args": [user,sessionId],
            "handler": function (err, res) {
                if(err) {
                    log.error("sql:"+sql+"data:sessionId:"+sessionId+",user:"+user);
                }else{
                    log.info("delete unstickSession to mysql is success by session :"+sessionId);
                }
            }
        });
    }
}
module.exports = SessionRepo;