Browse Source

代码修改

bing 4 years ago
parent
commit
ac4f610c03

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

@ -115,6 +115,7 @@ router.get(APIv2.Sessions.SessionListByType, function (req, res) {
    let userId = req.query.user_id;
    let type = req.query.type;
    let status = req.query.status;
    let name = req.query.name;
    if (!page) {
        throw {httpStatus: 406, message: 'Missing page.'};
    }
@ -130,7 +131,7 @@ router.get(APIv2.Sessions.SessionListByType, function (req, res) {
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    sessions.getUserSessionsByType(userId,type,page,size,status);
    sessions.getUserSessionsByType(userId,type,page,size,status,name);
});
/**
@ -497,7 +498,7 @@ router.get(APIv2.Sessions.SessionsUnreadMessageCount, function (req, res) {
/**
 * 按会话类型获取未读消息数量  status不传为获取所有状态
 * 请求URL:/sessions/unread_message_count?user_id=xyz&type=18&status=0
 * 请求URL:/sessions/unread_message_count_type?user_id=xyz&type=18&status=0
 */
router.get(APIv2.Sessions.SessionsUnreadMessageCountByType, function (req, res) {
    let userId = req.query.user_id;

+ 2 - 2
src/server/models/sessions/sessions.js

@ -699,13 +699,13 @@ class Sessions extends RedisModel {
     * @param size
     * @param businessType
     */
    getUserSessionsByType(userId,type,page, size,status) {
    getUserSessionsByType(userId,type,page, size,status,name) {
        let userSessionKey = RedisModel.makeRedisKey(REDIS_KEYS.UserSessions, userId);
        let self = this;
        async.waterfall([
            // 获取会话ID列表
            function (callback) {
                SessionRepo.findListByType(userId,type,page,size,status,function(err,res){
                SessionRepo.findListByType(userId,type,page,size,status,name,function(err,res){
                    if (res.length == 0) {
                        ModelUtil.emitOK(self.eventEmitter, []);
                        return;

+ 7 - 3
src/server/repository/mysql/session.repo.js

@ -158,7 +158,7 @@ class SessionRepo {
     * @param type
     * @param handler
     */
    static findListByType(userId, type,page,pagesize,status, handler) {
    static findListByType(userId, type,page,pagesize,status,name, handler) {
        if (page > 0) {
            if (page == 1) {
                page = 0;
@ -171,12 +171,16 @@ class SessionRepo {
        let sessionSQL;
        if (!status){
            sessionSQL = "select id, name, type, create_date, last_sender_id, last_sender_name, last_content_type, last_content, last_message_time from "
                + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=? order by s.last_message_time desc limit "+page+","+pagesize;
                + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=? ";
        }
        else {
            sessionSQL = "select id, name, type, create_date, last_sender_id, last_sender_name, last_content_type, last_content, last_message_time from "
                + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=? and s.status="+status+" order by s.last_message_time desc limit "+page+","+pagesize;
                + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=? and s.status="+status;
        }
        if (name){
            sessionSQL +=" and name LIKE '%"+name+"%' ";
        }
        sessionSQL +=" order by s.last_message_time desc limit "+page+","+pagesize;
        ImDb.execQuery({
            "sql": sessionSQL,
            "args": [userId, type],