[Ils-source] r1282 - trunk/src/com/resolutions/ils/data

scribe at crosswire.org scribe at crosswire.org
Thu Dec 11 14:54:37 MST 2014


Author: scribe
Date: 2014-12-11 14:54:36 -0700 (Thu, 11 Dec 2014)
New Revision: 1282

Modified:
   trunk/src/com/resolutions/ils/data/UserProfile.java
Log:
optimized for workgroup and role preload for user profile searching


Modified: trunk/src/com/resolutions/ils/data/UserProfile.java
===================================================================
--- trunk/src/com/resolutions/ils/data/UserProfile.java	2014-12-11 21:17:12 UTC (rev 1281)
+++ trunk/src/com/resolutions/ils/data/UserProfile.java	2014-12-11 21:54:36 UTC (rev 1282)
@@ -357,19 +357,20 @@
 			sql = "SELECT UP2.USERPRID FROM " + tables + " WHERE " + where;
 			sql = USERCOURSESUMMARY + " WHERE UP2.USERPRID IN ("+sql+") GROUP BY UP2.USERPRID, UP2.USERPRLNAME, UP2.USERPRFNAME, UP2.USERPRNUM, UP2.USERPRADDR2, UP2.USERPRHIREDATE OPTION (RECOMPILE)";
         }
-        else sql = "SELECT UP2.USERPRID, UP2.USERPRLNAME, UP2.USERPRFNAME, UP2.USERPRNUM, UP2.USERPRADDR2, UP2.USERPRHIREDATE FROM " + tables + " WHERE " + where;
+        else sql = "SELECT UP2.USERPRID, UP2.USERPRLNAME, UP2.USERPRFNAME, UP2.USERPRNUM, UP2.USERPRADDR2, UP2.USERPRHIREDATE, " +
+                        " (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.ILSGROUPID=IG.ILSGROUPID AND UG.USERPRID=UP2.USERPRID AND GROUPTYPEID=2) WORKGROUP," + 
+                        " (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.ILSGROUPID=IG.ILSGROUPID AND UG.USERPRID=UP2.USERPRID AND GROUPTYPEID=1) ROLE " +
+                        " FROM " + tables + " WHERE " + where;
 		Vector<UserProfile> results = retVal.getDataSet(sql);
         
     	logger.debug("getSearchUserProfiles after getDataSet["+results.size()+"] ("+(System.currentTimeMillis() - timer)+")"); timer = System.currentTimeMillis();
     	
-    	if (preloadCourseData) {
-			// we've precached all our delay loads, so let's set our bits high to say so.
-			for (UserProfile up: results) {
-				up.isCourseSummaryDataLoaded = true;
-				up.isRoleLoaded = true;
-				up.isWorkgroupLoaded = true;
-			}
-    	}
+        // we've precached all our delay loads, so let's set our bits high to say so.
+        for (UserProfile up: results) {
+                up.isCourseSummaryDataLoaded = (preloadCourseData);
+                up.isRoleLoaded = true;
+                up.isWorkgroupLoaded = true;
+        }
     	logger.debug("getSearchUserProfiles end ("+(System.currentTimeMillis() - timer)+")"); timer = System.currentTimeMillis();
         return results;
     }




More information about the Ils-source mailing list