Browse Source

计算会话数量增加状态筛选

huangwenjie 6 năm trước cách đây
mục cha
commit
9ccb6e56ae

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

@ -140,6 +140,7 @@ router.get(APIv2.Sessions.SessionListByType, function (req, res) {
router.get(APIv2.Sessions.SessionCountByType, function (req, res) {
    let userId = req.query.user_id;
    let type = req.query.type;
    let status = req.query.status;
    if (!type) {
        throw {httpStatus: 406, message: 'Missing type.'};
    }
@ -149,7 +150,7 @@ router.get(APIv2.Sessions.SessionCountByType, function (req, res) {
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    sessions.getSessionCountByType(userId,type);
    sessions.getSessionCountByType(userId,type,status);
});

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

@ -676,11 +676,12 @@ class Sessions extends RedisModel {
     * 查找会话数
     * @param userId
     * @param type
     * @param status
     * @param handler
     */
    getSessionCountByType(userId,type,handler){
    getSessionCountByType(userId,type,status,handler){
        let self = this;
        SessionRepo.findSessionCountByType(userId,type,function (err,res) {
        SessionRepo.findSessionCountByType(userId,type,status,function (err,res) {
            if(res){
                ModelUtil.emitOK(self.eventEmitter,{status:200,count:res[0].count});
                return;

+ 4 - 1
src/server/repository/mysql/session.repo.js

@ -119,9 +119,12 @@ class SessionRepo {
     * @param type
     * @param handler
     */
    static findSessionCountByType(userId,type,handler){
    static findSessionCountByType(userId,type,status,handler){
        let sql = "select session_id count from " + DB_TABLES.Participants + " w where w.participant_id = ? group by w.session_id";
        let sessionSQL = "select count(id) count from " + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=?";
        if(status != null){
            sessionSQL = sessionSQL + " s.status="+status;
        }
        ImDb.execQuery({
            "sql": sessionSQL,
            "args": [userId, type],