瀏覽代碼

查询接口修改

8 年之前
父節點
當前提交
023fb44b46

+ 21 - 0
src/server/endpoints/v2/session.endpoint.js

@ -126,6 +126,27 @@ router.post(APIv2.Sessions.SessionSticky, function (req, res) {
    sessions.stickSession(sessionId, user);
});
/**
 * 某个聊天记录置顶操作
 *
 * 请求URL /status?status=1&sessionId=testsessionmsg1
 */
router.post(APIv2.Sessions.SessionStatus, function (req, res) {
    let sessionId = req.query.sessionId;
    let status = req.query.status;
    if (!sessionId) {
        throw {httpStatus: 406, message: 'Missing sessionId.'};
    }
    if (!status) {
        throw {httpStatus: 406, message: 'Missing status.'};
    }
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    sessions.updateSessionStatus(sessionId, status);
});
/**
 * 取消置顶
 * 请求URL /cancelStick?user=3121&sessionId=testsessionmsg1

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

@ -27,7 +27,7 @@ const APIv2 = {
        Session: '/:session_id',
        SessionSticky: '/:session_id/sticky',                           // 会话置顶,置顶使用PUT,取消置顶使用DELETE
        SessionStatus: '/:session_id/status',//更新状态
        RecentSessions: '/recent',                                      // 最近会话,使用类型过滤出'患者'或'医生'会话
        Topics: '/:topic_id/topics',

+ 24 - 11
src/server/models/sessions/sessions.js

@ -123,9 +123,13 @@ class Sessions extends RedisModel {
        }
        function callBusinessType(sessionId) {
            ParticipantRepo.getBusinessType(participantIdArray, function (err, businessType) {
                callCreate(sessionId, businessType);
            });
            if(type == SESSION_TYPES.MUC){
                callCreate(sessionId, SESSION_BUSINESS_TYPE.PATIENT);
            }else {
                ParticipantRepo.getBusinessType(participantIdArray, function (err, businessType) {
                    callCreate(sessionId, businessType);
                });
            }
        }
        function callCreate(sessionId, businessType) {
@ -186,13 +190,17 @@ class Sessions extends RedisModel {
        //流程2-判断session的业务类型;
        function callBusinessType() {
            ParticipantRepo.getBusinessType(participantIdArray, function (err, businessType) {
                if (err) {
                    handler(err, null);
                    return;
                }
                callCreateSession(businessType);
            });
            if(type==SESSION_TYPES.MUC){
                callCreateSession(SESSION_BUSINESS_TYPE.PATIENT);
            }else{
                ParticipantRepo.getBusinessType(participantIdArray, function (err, businessType) {
                    if (err) {
                        handler(err, null);
                        return;
                    }
                    callCreateSession(businessType);
                });
            }
        }
        //流程3-发起session创建 返回session实例
@ -1313,15 +1321,20 @@ class Sessions extends RedisModel {
     * 针对MUC模式更新会话的当前状态
     * @param sessionId
     */
    updateSessionStatus(sessionId,status){
    updateSessionStatus(sessionId,status,handler){
        let self = this;
        let sessionKey  =  RedisModel.makeRedisKey(REDIS_KEYS.Session,sessionId);
        redis.hsetAsync(sessionKey,"status",status).then(function(res){
                SessionRepo.updateSessionStatus(sessionId,status,function(err,sqlResult){
                    if(handler){
                        handler(err,sqlResult);
                        return;
                    }
                    if(err){
                        logger.error("set session status to mysql is error !");
                    }else{
                        logger.info("set session status is success");
                        ModelUtil.emitOK(self.eventEmitter, []);
                    }
                });
        });

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

@ -206,7 +206,9 @@ class Topics extends RedisModel {
                }
                //返回给前端
                ModelUtil.emitOK(self.eventEmitter, {status: 200, message: "议题创建成功!", start_msg_id: startMsgId});
                sessions.updateSessionStatus(sessionId,0);
                sessions.updateSessionStatus(sessionId,SESSION_STATUS.PROCEEDINGS,function(err,res){
                });
                //执行数据库操作
                self.saveTopicToMySQL(topicName, topicId, sessionId, startMsgId, date, messages.description, TOPIC_STATUS.NEW, function (err, res) {
                    if (err) {
@ -366,7 +368,9 @@ class Topics extends RedisModel {
                } else {
                    ModelUtil.emitOK(self.eventEmitter, {status: 200, "id": msgId, "message": "结束成功!"});
                    TopicsRepo.endTopic(topicId, endUser, msg.timestamp, msgId, TOPIC_STATUS.ENDED);
                    sessions.updateSessionStatus(sessionId,SESSION_STATUS.ENDED);
                    sessions.updateSessionStatus(sessionId,SESSION_STATUS.ENDED,function(err,res){
                        log.info("update session end is success!");
                    });
                }
            })
        }