|
@ -40,6 +40,14 @@ class ObjectSearcher extends RedisModel {
|
|
|
}
|
|
|
},
|
|
|
function (sessionIdList, keyword, targetRole, entityType, callback) {
|
|
|
var sessionList=[];
|
|
|
for(var j in sessionIdList){
|
|
|
sessionList.push(sessionIdList[j].id);
|
|
|
}
|
|
|
if(sessionList.length==0){
|
|
|
callback(null, "");
|
|
|
return;
|
|
|
}
|
|
|
if (targetRole !== 'doctor' && targetRole !== 'patient') {
|
|
|
ModelUtil.emitError(self.eventEmitter, "Unknown target role: " + targetRole);
|
|
|
}
|
|
@ -48,25 +56,25 @@ class ObjectSearcher extends RedisModel {
|
|
|
|
|
|
// 综合搜索与分类搜索
|
|
|
if (entityType === 'all') {
|
|
|
SearchRepo.searchAll(sessionIdList, keyword, userTable, function (err, res) {
|
|
|
SearchRepo.searchAll(sessionList, keyword, userTable, function (err, res) {
|
|
|
if (err) return callback(err, null);
|
|
|
|
|
|
callback(null, res);
|
|
|
});
|
|
|
} else if (entityType === 'user') {
|
|
|
SearchRepo.searchUser(sessionIdList, keyword, userTable, page, size, function (err, res) {
|
|
|
SearchRepo.searchUser(sessionList, keyword, userTable, page, size, function (err, res) {
|
|
|
if (err) return callback(err, null);
|
|
|
|
|
|
callback(null, {users: SearchRepo.userForge(res)});
|
|
|
});
|
|
|
} else if (entityType === 'session') {
|
|
|
SearchRepo.searchSessions(sessionIdList, keyword, page, size, function (err, res) {
|
|
|
SearchRepo.searchSessions(sessionList, keyword, page, size, function (err, res) {
|
|
|
if (err) return callback(err, null);
|
|
|
|
|
|
callback(null, {sessions: SearchRepo.sessionForge(res, keyword)});
|
|
|
});
|
|
|
} else if (entityType === 'message') {
|
|
|
SearchRepo.searchMessages(sessionIdList, keyword, page, size, function (err, res) {
|
|
|
SearchRepo.searchMessages(sessionList, keyword, page, size, function (err, res) {
|
|
|
if (err) return callback(err, null);
|
|
|
|
|
|
callback(null, {messages: SearchRepo.messageForge(res)});
|