Browse Source

互联网医院代码提交

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

+ 4 - 0
readme.md

@ -186,6 +186,7 @@ REST API遵循REST最佳实践,规范命名URL中的每个部分。注意POST
            24、诊断结果
            25、病情描述
            26、专家建议
            27、咨询评价消息
            2102、上门服务-修改工单卡片信息
            2103、上门服务-变更工单医生信息
            2104、上门服务-变更工单服务项信息
@ -231,6 +232,9 @@ REST API遵循REST最佳实践,规范命名URL中的每个部分。注意POST
            k、type =12 候诊室群聊
            sessionId: 诊室code+"_"+咨询code+"_"+咨询类型
            
            l、type =13 专家咨询
            sessionId: 居民code+"_"+医生code+"_"+咨询类型

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

@ -114,6 +114,7 @@ router.get(APIv2.Sessions.SessionListByType, function (req, res) {
    let size = req.query.size;
    let userId = req.query.user_id;
    let type = req.query.type;
    let status = req.query.status;
    if (!page) {
        throw {httpStatus: 406, message: 'Missing page.'};
    }
@ -129,7 +130,7 @@ router.get(APIv2.Sessions.SessionListByType, function (req, res) {
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    sessions.getUserSessionsByType(userId,type,page,size);
    sessions.getUserSessionsByType(userId,type,page,size,status);
});
/**

+ 2 - 0
src/server/handlers/socket.handler.js

@ -83,6 +83,7 @@ class SocketHandler {
                }
            });
            //视频聊天
            // 返回userid的socketid
            socket.on('getSid',function(data){
                var clientJson = null;
@ -102,6 +103,7 @@ class SocketHandler {
                socket.emit('getSid',result);
            });
            //视频聊天
            // 设置userid的socketid
            socket.on('setSid',function(data){
                var clientJson = null;

+ 14 - 2
src/server/models/client/wechat.client.js

@ -142,6 +142,7 @@ class WechatClient extends RedisModel {
    static sendAllRead(doctorId,sessionId){
        let doctorClient = clientCache.findByIdAndType(doctorId,SOCKET_TYPES.DOCTOR);
        let pc_doctorClient = clientCache.findByIdAndType("pc_"+doctorId,SOCKET_TYPES.PC_DOCTOR);
        if(doctorClient){
            if(doctorClient.sessionId==sessionId){
                doctorClient.socket.emit('message',{ read:"all"});
@ -149,7 +150,12 @@ class WechatClient extends RedisModel {
                log.warn(" doctor not in the same session ");
            }
        }else{
            log.warn(doctorId+" target doctor is not online!");
            if(pc_doctorClient && pc_doctorClient.sessionId == sessionId){
                pc_doctorClient.socket.emit('message',{ read:"all"});
            }else{
                log.warn(doctorId+" target doctor is not online!");
            }
        }
    }
@ -162,6 +168,7 @@ class WechatClient extends RedisModel {
            return;
        }
        let doctorClient = clientCache.findByIdAndType(doctorId,SOCKET_TYPES.DOCTOR);
        let pc_doctorClient = clientCache.findByIdAndType("pc_"+doctorId,SOCKET_TYPES.PC_DOCTOR);
        if(doctorClient){
            if(doctorClient.sessionId==sessionId){
                doctorClient.socket.emit('message',{ read:"all"});
@ -169,7 +176,12 @@ class WechatClient extends RedisModel {
                log.warn(" doctor not in the same session ");
            }
        }else{
            log.warn(doctorId+" target doctor is not online!");
            if(pc_doctorClient && pc_doctorClient.sessionId == sessionId){
                pc_doctorClient.socket.emit('message',{ read:"all"});
            }else{
                log.warn(doctorId+" target doctor is not online!");
            }
        }
    }

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

@ -697,14 +697,15 @@ class Sessions extends RedisModel {
     * @param page
     * @param size
     * @param businessType
     * @param status 0:进行中的会话1:结束的会话
     */
    getUserSessionsByType(userId,type,page, size) {
    getUserSessionsByType(userId,type,page, size,status) {
        let userSessionKey = RedisModel.makeRedisKey(REDIS_KEYS.UserSessions, userId);
        let self = this;
        async.waterfall([
            // 获取会话ID列表
            function (callback) {
                SessionRepo.findListByType(userId,type,page,size,function(err,res){
                SessionRepo.findListByType(userId,type,page,size,status,function(err,res){
                    if (res.length == 0) {
                        ModelUtil.emitOK(self.eventEmitter, []);
                        return;

+ 8 - 2
src/server/repository/mysql/session.repo.js

@ -137,7 +137,7 @@ class SessionRepo {
     * @param type
     * @param handler
     */
    static findListByType(userId, type,page,pagesize, handler) {
    static findListByType(userId, type,page,pagesize, status,handler) {
        if (page > 0) {
            if (page == 1) {
                page = 0;
@ -148,7 +148,13 @@ class SessionRepo {
        let sql = "select session_id from " + DB_TABLES.Participants + " w where w.participant_id = ? group by w.session_id";
        let sessionSQL = "select id, name, type, create_date, last_sender_id, last_sender_name, last_content_type, last_content, last_message_time from "
            + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=? order by s.last_message_time desc limit "+page+","+pagesize;
            + DB_TABLES.Sessions + " s where s.id in(" + sql + ") and s.type=? ";
        if(status != null && status != ""){
            sessionSQL += " s.id="+status
        }
        sessionSQL +=  " order by s.last_message_time desc limit "+page+","+pagesize;
        ImDb.execQuery({
            "sql": sessionSQL,
            "args": [userId, type],

+ 1 - 1
src/server/resources/config/config.test.js

@ -4,7 +4,7 @@ let imDbConfig = {
    host: '172.26.0.104',
    user: 'ssgg',
    password: 'ssgg@jkzl2019',
    database: 'im_new',
    database: 'im_internt_hospital',
    connectionLimit: '50',
    charset: 'utf8mb4'
};