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