|
@ -7,7 +7,7 @@ let RedisModel = require('./../redis.model.js');
|
|
|
let ModelUtil = require('../../util/model.util');
|
|
|
let RedisClient = require('../../repository/redis/redis.client.js');
|
|
|
let ParticipantRepo = require('../../repository/mysql/participant.repo');
|
|
|
|
|
|
let SessionRepo = require('../../repository/mysql/session.repo');
|
|
|
let log = require('../../util/log.js');
|
|
|
let redis = RedisClient.redisClient().connection;
|
|
|
|
|
@ -126,6 +126,7 @@ class Participants extends RedisModel {
|
|
|
handler(true);
|
|
|
})
|
|
|
.catch(function (ex) {
|
|
|
handler(false);
|
|
|
log.error("Save participants to redis failed: ", ex);
|
|
|
});
|
|
|
}
|
|
@ -147,7 +148,7 @@ class Participants extends RedisModel {
|
|
|
* @param sessionId
|
|
|
* @param userId
|
|
|
*/
|
|
|
removeUser(sessionId, userId) {
|
|
|
removeUser(sessionId, userId,handler) {
|
|
|
let self = this;
|
|
|
let participants_key = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipants, sessionId);
|
|
|
let user_session_key = RedisModel.makeRedisKey(REDIS_KEYS.UsersSessions, userId);
|
|
@ -159,9 +160,15 @@ class Participants extends RedisModel {
|
|
|
.execAsync()
|
|
|
.then(function (res) {
|
|
|
self.deleteUserFromMysql(sessionId, userId);
|
|
|
if(handler){
|
|
|
handler(null,true);return;
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:200,message:"成员删除成功!"});
|
|
|
})
|
|
|
.catch(function (err) {
|
|
|
if(handler){
|
|
|
handler(err,false);return;
|
|
|
}
|
|
|
log.error("成员删除失败: ", err);
|
|
|
ModelUtil.emitError(self.eventEmitter, {status:-1,message: "成员删除失败: " + err});
|
|
|
});
|
|
@ -187,19 +194,28 @@ class Participants extends RedisModel {
|
|
|
* @param sessionId
|
|
|
* @param user
|
|
|
*/
|
|
|
addUser(sessionId, user) {
|
|
|
addUser(sessionId, user,role,handler) {
|
|
|
let self = this;
|
|
|
let users = [user+":"+0];
|
|
|
let users = [user+":"+role||0];
|
|
|
Participants.saveParticipantsToRedis(sessionId, users, new Date(), function (res) {
|
|
|
if (res) {
|
|
|
Participants.saveParticipantsToMysql(sessionId, users,function(err,res){
|
|
|
if(err){
|
|
|
if(handler){
|
|
|
handler(err,false);return;
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:-1,message: "成员添加失败"});
|
|
|
}else{
|
|
|
if(handler){
|
|
|
handler(null,true);return;
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:200,message: "成员添加成功!"});
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
if(handler){
|
|
|
handler(null,true);return;
|
|
|
}
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:-1,message: "成员添加失败"});
|
|
|
}
|
|
|
})
|
|
@ -213,6 +229,39 @@ class Participants extends RedisModel {
|
|
|
deleteUserFromMysql(sessionId, user) {
|
|
|
ParticipantRepo.deleteUserFromMysql(sessionId, user);
|
|
|
}
|
|
|
|
|
|
updateSessionUser(userId,oldUserId,sessionId){
|
|
|
let self = this;
|
|
|
let participantsRoleKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipantsRole, sessionId);
|
|
|
SessionRepo.findOne(sessionId,function(err,res){
|
|
|
if(err){
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:-1,message: "会话查询失败!"});
|
|
|
return;
|
|
|
}
|
|
|
if(res.length!=1){
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:200,message: "用户未创建咨询!"});
|
|
|
return;
|
|
|
}else{
|
|
|
let session = res[0];
|
|
|
redis.hgetAsync(oldUserId).then(function(role){
|
|
|
self.addUser(sessionId.userId,role,function(err,addResult){
|
|
|
if(err){
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:-1,message: "会话成员添加失败!"});
|
|
|
return;
|
|
|
}
|
|
|
self.removeUser(sessionId,oldUserId,function(err,res){
|
|
|
if(err){
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:-1,message: "会话成员移除失败!"});
|
|
|
return;
|
|
|
}else{
|
|
|
ModelUtil.emitOK(self.eventEmitter, {status:200,message: "成员变更成功!"});
|
|
|
}
|
|
|
})
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Expose class
|