|
@ -110,7 +110,7 @@ class SearchRepo {
|
|
|
* @param handler
|
|
|
*/
|
|
|
static searchUser(sessionIdList,userId, keyword, userTable, page, size, handler) {
|
|
|
let sql = "SELECT DISTINCT U.NAME USER_NAME,S.ID SESSION_ID, S.NAME SESSION_NAME, S.TYPE SESSION_TYPE, S.BUSINESS_TYPE, U.ID USER_ID,U.SEX, U.BIRTHDATE, U.AVATAR,U.IDCARD %S " +
|
|
|
let sql = "SELECT*FROM ( SELECT DISTINCT rownum r,U.NAME USER_NAME,S.ID SESSION_ID, S.NAME SESSION_NAME, S.TYPE SESSION_TYPE, S.BUSINESS_TYPE, U.ID USER_ID,U.SEX, U.BIRTHDATE, U.AVATAR,U.IDCARD %S " +
|
|
|
" FROM PARTICIPANTS P, " + userTable +
|
|
|
" U,SESSIONS S WHERE S.ID IN (?) AND S.ID = P.SESSION_ID AND P.PARTICIPANT_ID = U.ID AND P.PARTICIPANT_ID<>? AND (U.NAME LIKE ? OR U.IDCARD LIKE ?) ";
|
|
|
|
|
@ -119,13 +119,16 @@ class SearchRepo {
|
|
|
}else{
|
|
|
sql += " AND S.TYPE IN (1,2,8) AND S.BUSINESS_TYPE = 2 ";
|
|
|
}
|
|
|
sql += " LIMIT ?, ? ";
|
|
|
|
|
|
|
|
|
sql += " AND rownum<=?) WHERE r>=?";
|
|
|
|
|
|
sql = vsprintf(sql, [userTable == DB_TABLES.Doctors ? ', HOSPITAL_NAME' : '']);
|
|
|
|
|
|
keyword = '%' + keyword + '%';
|
|
|
ImDb.execQuery({
|
|
|
sql: sql,
|
|
|
args: [sessionIdList,userId, keyword,keyword, page * size, size],
|
|
|
args: [sessionIdList,userId, keyword,keyword, size,page * size],
|
|
|
handler: handler
|
|
|
});
|
|
|
}
|
|
@ -138,16 +141,18 @@ class SearchRepo {
|
|
|
return handler(null, []);
|
|
|
}
|
|
|
|
|
|
let sql = "SELECT * FROM(" +
|
|
|
let sqlTemp = "SELECT rownum r,* FROM(" +
|
|
|
"SELECT S.ID, S.NAME, S.TYPE, S.CREATE_DATE, S.BUSINESS_TYPE,GROUP_CONCAT(U. NAME) AS PARTICIPANT_NAME " +
|
|
|
"FROM SESSIONS S, DOCTORS U ,PARTICIPANTS P " +
|
|
|
"WHERE S.ID IN (?) AND S.TYPE IN (3,4) AND S.ID = P.SESSION_ID AND P.PARTICIPANT_ID = U.ID AND P.PARTICIPANT_ID<>? AND (U.NAME LIKE ? OR S.NAME LIKE ?) GROUP BY S.ID " +
|
|
|
") X LIMIT ?, ?";
|
|
|
") X ";
|
|
|
|
|
|
let sql = "SELECT*FROM ( "+sqlTemp+" AND rownum<=?) WHERE r>=?"
|
|
|
|
|
|
keyword = '%' + keyword + '%';
|
|
|
ImDb.execQuery({
|
|
|
sql: sql,
|
|
|
args: [sessionIdList,userId, keyword,keyword, page * size, size],
|
|
|
args: [sessionIdList,userId, keyword,keyword, size,page * size],
|
|
|
handler: handler
|
|
|
});
|
|
|
}
|
|
@ -156,7 +161,7 @@ class SearchRepo {
|
|
|
* 消息搜索
|
|
|
*/
|
|
|
static searchMessages(sessionIdList,userId, keyword, page, size, handler) {
|
|
|
let sql = "SELECT * FROM(" +
|
|
|
let sqlTemp = "SELECT rownum r, * FROM(" +
|
|
|
"SELECT S.ID SESSION_ID, S.NAME SESSION_NAME, S.TYPE SESSION_TYPE, S.BUSINESS_TYPE SESSION_BUSINESS_TYPE, M.ID MESSAGE_ID, M.SENDER_ID, M.SENDER_NAME, M.TIMESTAMP, M.CONTENT " +
|
|
|
"FROM SESSIONS S, MUC_MESSAGES M " +
|
|
|
"WHERE S.ID IN (?) AND S.ID = M.SESSION_ID AND S.`TYPE` = 1 AND M.CONTENT_TYPE = 1 AND M.CONTENT LIKE ? " +
|
|
@ -168,12 +173,14 @@ class SearchRepo {
|
|
|
"SELECT S.ID SESSION_ID, S.NAME SESSION_NAME, S.TYPE SESSION_TYPE, S.BUSINESS_TYPE SESSION_BUSINESS_TYPE, M.ID MESSAGE_ID, M.SENDER_ID, M.SENDER_NAME, M.TIMESTAMP, M.CONTENT " +
|
|
|
"FROM SESSIONS S, GROUP_MESSAGES M " +
|
|
|
"WHERE S.ID IN (?) AND S.ID = M.SESSION_ID AND S.`TYPE` IN (3,5) AND M.CONTENT_TYPE = 1 AND M.CONTENT LIKE ? ) X " +
|
|
|
"ORDER BY X.SESSION_ID, X.MESSAGE_ID LIMIT ?, ?";
|
|
|
"ORDER BY X.SESSION_ID, X.MESSAGE_ID ";
|
|
|
|
|
|
keyword = '%' + keyword + '%';
|
|
|
|
|
|
let sql = "SELECT*FROM ( "+sqlTemp+" AND rownum<=?) WHERE r>=?"
|
|
|
ImDb.execQuery({
|
|
|
sql: sql,
|
|
|
args: [sessionIdList, keyword, sessionIdList, keyword, sessionIdList, keyword, page * size, size],
|
|
|
args: [sessionIdList, keyword, sessionIdList, keyword, sessionIdList, keyword, size,page * size],
|
|
|
handler: handler
|
|
|
});
|
|
|
}
|