浏览代码

发起和结束咨询的消息由系统发出,发送者ID记录操作人!

8 年之前
父节点
当前提交
515e7f2597
共有 2 个文件被更改,包括 13 次插入4 次删除
  1. 11 2
      src/server/models/sessions/sessions.js
  2. 2 2
      src/server/models/sessions/topics.js

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

@ -27,8 +27,8 @@ const REDIS_KEYS = require('../../include/commons').REDIS_KEYS;
const SESSION_TYPES = require('../../include/commons').SESSION_TYPES;
const STICKY_SESSION_BASE_SCORE = require('../../include/commons').STICKY_SESSION_BASE_SCORE;
const PARTICIPANT_ROLES = require('../../include/commons').PARTICIPANT_ROLES;
const SESSION_STATUS = require('../../include/commons').SESSION_STATUS;
const CONTENT_TYPES = require('../../include/commons').CONTENT_TYPES;
const SESSION_BUSINESS_TYPE = require('../../include/commons').SESSION_BUSINESS_TYPE;
class Sessions extends RedisModel {
@ -587,6 +587,11 @@ class Sessions extends RedisModel {
     * @param pagesize 分页数量
     * @param start_msg_id 消息会话最新的一条消息的ID
     * @param end_msg_id 消息会话刚开始的消息ID
     * @remark
     * start_msg_id end_msg_id 为空取会话倒序的根据分页的消息数据
     * start_msg_id 为空 end_msg_id 不为空根据end_msg_id取旧的消息(offset=1可以排除本身)返回指定分页的数据
     * end_msg_id 为空 start_msg_id 不为空 根据 start_msg_id 取出新消息(offset=1可以排除本身)返回指定分页的数据
     * end_msg_id start_msg_id 都不为空返回指定区间的消息
     */
    getMessages(sessionId, user, start_msg_id, end_msg_id, page, pagesize, isoffset, handler) {
        let self = this;
@ -745,6 +750,8 @@ class Sessions extends RedisModel {
                            handler(null, []);
                            return;
                        }
                        //结束大于开始,正序取数据,返回的数据顺序也是逆序的,反向拉取数据,
                        // 当end>start取出来都是空的,为了给前端获取新数据使用,一般不出现这种情况
                        if(endMsgScore>startMsgScore){
                            redis.zrangebyscoreAsync(messagesTimestampKey, startMsgScore, endMsgScore, "limit", offset, count)
                                .then(function (res) {
@ -792,11 +799,13 @@ class Sessions extends RedisModel {
                                        if(session.type == SESSION_TYPES.P2P){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                //通知对方自己已经读取数据
                                                WechatClient.sendAllRead(users[j],sessionId);
                                            }
                                        }else if(session.type == SESSION_TYPES.MUC){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                //如果是患者拉取数据告诉在线的医生患者已经读取数据
                                                WechatClient.sendMucAllRead(users[j],userId,sessionId);
                                            }
                                        }
@ -849,7 +858,7 @@ class Sessions extends RedisModel {
                }
                count = count + con;
                if (session.type == 2) {
                if (session.type == SESSION_BUSINESS_TYPE.PATIENT) {
                    patientCount = patientCount + con;
                } else {
                    doctorCount = doctorCount + con;

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

@ -210,7 +210,7 @@ class Topics extends RedisModel {
        function sendBeginMsg() {
            let msg = {};
            msg.sender_id = messages.sender_id;
            msg.sender_name = messages.sender_name;
            msg.sender_name = "系统";//messages.sender_name;
            msg.content_type = 10;
            msg.content = messages.sender_name + "发起了咨询";
            msg.timestamp = date;
@ -319,7 +319,7 @@ class Topics extends RedisModel {
        function callEnd(sessionId) {
            let msg = {
                sender_id: endUser,
                sender_name: endUserName,
                sender_name: "系统",//endUserName,
                content_type: 7,
                content: endUserName + "结束了咨询",
                timestamp: new Date()