浏览代码

续方咨询修改

yeshijie 7 年之前
父节点
当前提交
eee677256b

+ 8 - 9
src/server/endpoints/v2/session.endpoint.js

@ -104,21 +104,20 @@ router.get(APIv2.Sessions.Session,function(req,res){
})
/**
 * 最近会话列表。
 * 判断会话是否存在。
 *
 * URL:
 *  /sessions/recent?user_id=abc&date_span=7
 *  /sessions/isExist?session_id=abc
 */
router.get(APIv2.Sessions.RecentSessions, function (req, res) {
    ControllerUtil.checkRequestQueryParams(req, ['user_id', 'date_span']);
    let userId = req.query.user_id;
    let dateSpan = req.query.date_span;
router.get(APIv2.Sessions.IsExist, function (req, res) {
    let sessionId = req.query.session_id;
    if (!sessionId) {
        throw {httpStatus: 406, message: 'Missing sessionId.'}
    }
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    sessions.getRecentSessions(userId, dateSpan);
    sessions.isExist(sessionId);
});
/**

+ 1 - 0
src/server/include/endpoints.js

@ -30,6 +30,7 @@ const APIv2 = {
        SessionSticky: '/:session_id/sticky',                           // 会话置顶,置顶使用PUT,取消置顶使用DELETE
        SessionStatus: '/:session_id/status',//更新状态
        RecentSessions: '/recent',                                      // 最近会话,使用类型过滤出'患者'或'医生'会话
        IsExist: '/isExist',                                      // 判断会话是否存在(i健康发送muc的im消息会话前会先调用创建会话的方法,这个方法会更新redis中每个成员的最后获取时间,导致未读消息不准)
        Topics: '/:topic_id/topics',
        Topic: '/topics/:topic_id',                          // 议题,指定ID的议题将返回其信息

+ 17 - 0
src/server/models/sessions/sessions.js

@ -320,6 +320,23 @@ class Sessions extends RedisModel {
        SessionRepo.findOne(sessionId, handler);
    }
    /**
     * 判断会话是否存在
     * @param sessionId
     * @param handler
     */
    isExist(sessionId) {
        let self = this;
        SessionRepo.findOne(sessionId, function (err, res) {
            if(err){
                log.error(err);
                ModelUtil.emitError(self.eventEmitter, {message: err, status: -1}, null);
            } else if(res){
                ModelUtil.emitOK(self.eventEmitter, {sessionId: res[0].id, status: 200});
            }
        });
    }
    getSession(sessionId,userId,handler){
        let self = this;
        let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId);