| 
															
																@ -6,11 +6,13 @@ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 */ 
															 | 
															
															 | 
															
																 */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																"use strict"; 
															 | 
															
															 | 
															
																"use strict"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																const RedisKeys = require('../../include/commons').REDIS_KEYS; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																const REDIS_KEYS = require('../../include/commons').REDIS_KEYS; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																const PLATFORMS = require('../../include/commons').PLATFORM; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																let RedisModel = require('../redis.model'); 
															 | 
															
															 | 
															
																let RedisModel = require('../redis.model'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																let Doctor = require('./doctor'); 
															 | 
															
															 | 
															
																let Doctor = require('./doctor'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																let Patient = require('./patient'); 
															 | 
															
															 | 
															
																let Patient = require('./patient'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																let Sessions = require('../sessions/sessions'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																let ImDb = require('../../repository/mysql/db/im.db'); 
															 | 
															
															 | 
															
																let ImDb = require('../../repository/mysql/db/im.db'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																let DoctorRepo = require('../../repository/mysql/doctor.repo'); 
															 | 
															
															 | 
															
																let DoctorRepo = require('../../repository/mysql/doctor.repo'); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -26,7 +28,7 @@ class Users extends RedisModel { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    constructor() { 
															 | 
															
															 | 
															
																    constructor() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        super(); 
															 | 
															
															 | 
															
																        super(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        this._key = RedisKeys.Users; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        this._key = REDIS_KEYS.Users; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    } 
															 | 
															
															 | 
															
																    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    /** 
															 | 
															
															 | 
															
																    /** 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -73,7 +75,7 @@ class Users extends RedisModel { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        async.waterfall([ 
															 | 
															
															 | 
															
																        async.waterfall([ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            // get from redis 
															 | 
															
															 | 
															
																            // get from redis 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            function (callback) { 
															 | 
															
															 | 
															
																            function (callback) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                let userStatusKey = self.makeRedisKey(RedisKeys.UserStatus, userId); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                let userStatusKey = self.makeRedisKey(REDIS_KEYS.UserStatus, userId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                redisConn.hgetallAsync(userStatusKey).then(function (res) { 
															 | 
															
															 | 
															
																                redisConn.hgetallAsync(userStatusKey).then(function (res) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                   if(res === null){ 
															 | 
															
															 | 
															
																                   if(res === null){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                       callback(null);  // get from mysql 
															 | 
															
															 | 
															
																                       callback(null);  // get from mysql 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -137,15 +139,29 @@ class Users extends RedisModel { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * 用户登录时会加载与之相关的会话列表,会话消息,用户自身信息:App状态与微信状态。 
															 | 
															
															 | 
															
																     * 用户登录时会加载与之相关的会话列表,会话消息,用户自身信息:App状态与微信状态。 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * 
															 | 
															
															 | 
															
																     * 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * @param userId 
															 | 
															
															 | 
															
																     * @param userId 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @param platform 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @param token 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																     * @param clientId 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * @param outCallback 
															 | 
															
															 | 
															
																     * @param outCallback 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * 
															 | 
															
															 | 
															
																     * 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     * @return 用户token 
															 | 
															
															 | 
															
																     * @return 用户token 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     */ 
															 | 
															
															 | 
															
																     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																    login(userId, platform, token, clientId, outCallback){ 
															 | 
															
															 | 
															
																    login(userId, platform, token, clientId, outCallback){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        let self = this; 
															 | 
															
															 | 
															
																        let self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        let usersKey = REDIS_KEYS.Users; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        let userKey = self.makeRedisKey(REDIS_KEYS.User, userId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        let userStatusKey = platform === PLATFORMS.Wechat ? REDIS_KEYS.UserWechatStatus : REDIS_KEYS.UserWechatStatus; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        userStatusKey = self.makeRedisKey(userStatusKey, userId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        async.waterfall([ 
															 | 
															
															 | 
															
																        async.waterfall([ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            // save user info and app status 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            function (callback) { 
															 | 
															
															 | 
															
																            function (callback) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                let 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            // load sessions 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            function (callback) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                let sessions = new Sessions(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                sessions.getUserSessionsFromMysql(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        ]); 
															 | 
															
															 | 
															
																        ]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        DoctorRepo.deleteToken(token, function (err, result) { 
															 | 
															
															 | 
															
																        DoctorRepo.deleteToken(token, function (err, result) { 
															 |