| 
					
				 | 
			
			
				@ -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,14 @@ 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 +139,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 +159,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 +171,13 @@ 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 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        let sql = "SELECT*FROM ( "+sqlTemp+" AND rownum<=?) WHERE r>=?" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        keyword = '%' + keyword + '%'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 |