|  | @ -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) {
 |