|
@ -9,21 +9,23 @@
|
|
|
const RedisKeys = require('../../include/commons').REDIS_KEYS;
|
|
|
|
|
|
let RedisModel = require('../redis.model');
|
|
|
let DoctorRepo = require('../../repository/mysql/doctor.repo');
|
|
|
let PatientRepo = require('../../repository/mysql/patient.repo');
|
|
|
let UserStatusRepo = require('../../repository/mysql/user.status.repo');
|
|
|
let Doctor = require('./doctor');
|
|
|
let Patient = require('./patient');
|
|
|
|
|
|
let DoctorRepo = require('../../repository/mysql/doctor.repo');
|
|
|
let PatientRepo = require('../../repository/mysql/patient.repo');
|
|
|
let AppStatusRepo = require('../../repository/mysql/app.status.repo');
|
|
|
|
|
|
let RedisClient = require('../../repository/redis/redis.client');
|
|
|
|
|
|
let redisConn = RedisClient.redisClient().connection;
|
|
|
let async = require('async');
|
|
|
let bearcat = require('bearcat');
|
|
|
let log = require('../../util/log');
|
|
|
let objectUtil = require('../../util/objectUtil');
|
|
|
var imDb = require('../../repository/mysql/db/im.db');
|
|
|
|
|
|
let users = null;
|
|
|
|
|
|
class Users extends RedisModel {
|
|
|
constructor() {
|
|
|
super();
|
|
@ -32,7 +34,7 @@ class Users extends RedisModel {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户。
|
|
|
* 获取用户,直接从MYSQL获取,缓存是否有在不能确定。
|
|
|
*
|
|
|
* @param userId
|
|
|
* @param outCallback
|
|
@ -65,12 +67,12 @@ class Users extends RedisModel {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户状态。
|
|
|
* 获取客户端App状态。
|
|
|
*
|
|
|
* @param userId
|
|
|
* @param outCallback
|
|
|
*/
|
|
|
getUserStatus(userId, outCallback){
|
|
|
getAppStatus(userId, outCallback){
|
|
|
let self = this;
|
|
|
async.waterfall([
|
|
|
// get from redis
|
|
@ -78,7 +80,7 @@ class Users extends RedisModel {
|
|
|
let userStatusKey = self.makeRedisKey(RedisKeys.UserStatus, userId);
|
|
|
redisConn.hgetallAsync(userStatusKey).then(function (res) {
|
|
|
if(res === null){
|
|
|
callback(null);
|
|
|
callback(null); // get from mysql
|
|
|
} else {
|
|
|
outCallback(null, res);
|
|
|
}
|
|
@ -86,7 +88,7 @@ class Users extends RedisModel {
|
|
|
},
|
|
|
// get from MySQL
|
|
|
function () {
|
|
|
UserStatusRepo.getUserStatus(userId, function (err, res) {
|
|
|
AppStatusRepo.findOne(userId, function (err, res) {
|
|
|
let userStatus = null;
|
|
|
if(res.length > 0){
|
|
|
userStatus = {};
|
|
@ -103,6 +105,64 @@ class Users extends RedisModel {
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新客户端App状态。
|
|
|
*
|
|
|
* @param userId
|
|
|
* @param appInBg
|
|
|
* @param outCallback
|
|
|
*/
|
|
|
updateAppStatus(userId, appInBg, outCallback){
|
|
|
let self = this;
|
|
|
DoctorRepo.updateStatus(userId, status,
|
|
|
function (err, result) {
|
|
|
if (err) {
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Update user status failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
ModelUtil.emitData(self.eventEmitter, {});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 用户登录。
|
|
|
*
|
|
|
* @param userId
|
|
|
* @param outCallback
|
|
|
*/
|
|
|
login(userId, outCallback){
|
|
|
let self = this;
|
|
|
DoctorRepo.deleteToken(token, function (err, result) {
|
|
|
if (err) {
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);
|
|
|
} else {
|
|
|
doctorRepo.login(userId, token, clientId, platform,
|
|
|
function (err, result) {
|
|
|
if (err) {
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);
|
|
|
}
|
|
|
|
|
|
let token = new Token(userId, clientId, platform);
|
|
|
ModelUtil.emitData(self.eventEmitter, {token: token.value});
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
logout(userId, outCallback){
|
|
|
let self = this;
|
|
|
doctorRepo.logout(userId,
|
|
|
function (err, result) {
|
|
|
if (err) {
|
|
|
ModelUtil.emitDbError(self.eventEmitter, 'Logout failed', err);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
ModelUtil.emitData(self.eventEmitter, {});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 用户ID是否属于患者。
|
|
|
*
|
|
@ -140,6 +200,14 @@ class Users extends RedisModel {
|
|
|
callback(null, res !== 0);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
static instance(){
|
|
|
if(users === null){
|
|
|
users = new Users();
|
|
|
}
|
|
|
|
|
|
return users;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
let Promises = require('bluebird');
|