Browse Source

代码修改

yeshijie 7 years ago
parent
commit
297850e394
2 changed files with 45 additions and 8 deletions
  1. 21 8
      src/server/models/sessions/sessions.js
  2. 24 0
      src/server/repository/mysql/session.repo.js

+ 21 - 8
src/server/models/sessions/sessions.js

@ -387,15 +387,28 @@ class Sessions extends RedisModel {
        }
        async.waterfall([
            // 获取会话ID列表
            // function (callback) {
            //     redis.zrevrangeAsync(userSessionKey, page, size)
            //         .then(function (sessionIds) {
            //             if (sessionIds.length == 0) {
            //                 ModelUtil.emitOK(self.eventEmitter, []);
            //                 return;
            //             }
            //             callback(null, sessionIds);
            //         })
            // },
            function (callback) {
                redis.zrevrangeAsync(userSessionKey, page, size)
                    .then(function (sessionIds) {
                        if (sessionIds.length == 0) {
                            ModelUtil.emitOK(self.eventEmitter, []);
                            return;
                        }
                        callback(null, sessionIds);
                    })
                SessionRepo.findAllByType(userId,businessType,page,size,function(err,res){
                    if (res.length == 0) {
                        ModelUtil.emitOK(self.eventEmitter, []);
                        return;
                    }
                    var sessionIds=[];
                    for(var j in res){
                        sessionIds.push(res[j].id);
                    }
                    callback(null,sessionIds);
                })
            },
            // 遍历会话
            function (sessionIds) {

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

@ -169,6 +169,30 @@ class SessionRepo {
    }
    static findAllByType(userId, businessType,page,pagesize, handler) {
        if (page > 0) {
            if (page == 1) {
                page = 0;
            }else{
                page = (parseInt(page)-1) * parseInt(pagesize);
            }
        }
        let sessionSQL ="";
        let sql ="";
        sql = "select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ? and participant_role ="+PARTICIPANT_ROLES.HOST+" group by w.session_id";
        sessionSQL =  "select * from "
            + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.business_type = ? limit "+page+","+pagesize;
        ImDb.execQuery({
            "sql": sessionSQL,
            "args": [userId, businessType],
            "handler": handler || function (err, res) {
                if(err) log.error(err);
            }
        });
    }
    /**
     * 按时间跨度查询会话。
     *