Skip to content

Commit ba1ea15

Browse files
refactor: Adjust code to update lastListUsed column rather than delete user
1 parent a164a0e commit ba1ea15

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

code/cron/src/com/turning_leaf_technologies/cron/DatabaseCleanup.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -452,16 +452,15 @@ private void removeOldLastListUsed(Connection dbConn, Logger logger, CronProcess
452452
//Remove old last list used
453453
try {
454454
//Get list of libraries that want last used list cleared
455-
PreparedStatement librariesListStmt = dbConn.prepareStatement("SELECT libraryId, deleteOldLastListUsedEntries from library where deleteOldLastListUsedEntries > 0");
456-
PreparedStatement libraryLocationsStmt = dbConn.prepareStatement("SELECT locationId from location where libraryId = ?");
457-
PreparedStatement deleteLastListUsedStmt = dbConn.prepareStatement("DELETE from user where lastListUsed = ?");
455+
PreparedStatement librariesListStmt = dbConn.prepareStatement("SELECT libraryId FROM library WHERE deleteLastListUsedEntries = 1");
456+
PreparedStatement libraryLocationsStmt = dbConn.prepareStatement("SELECT locationId FROM location where libraryId = ?");
457+
PreparedStatement deleteLastListUsedStmt = dbConn.prepareStatement("UPDATE user SET lastListUsed = NULL WHERE lastListUsed = ?");
458458

459459
ResultSet librariesListRS = librariesListStmt.executeQuery();
460460

461461
long numDeletions = 0;
462462
while (librariesListRS.next()) {
463463
long libraryId = librariesListRS.getLong("libraryId");
464-
long daysToPreserve = librariesListRS.getLong("deleteLastUsedListEntries");
465464

466465
libraryLocationsStmt.setLong(1, libraryId);
467466

@@ -476,10 +475,10 @@ private void removeOldLastListUsed(Connection dbConn, Logger logger, CronProcess
476475
}
477476
if (libraryLocations.length() > 0) {
478477
long now = new Date().getTime() /1000;
478+
long daysToPreserve = 14;
479+
long earliestDateToPreserve = now - (daysToPreserve * 24 * 60 * 60);
479480

480-
long earliestDateToPreserve = now - (14 * 24 * 60 * 60);
481-
482-
PreparedStatement lastListUsedEntriesToDeleteStmt = dbConn.prepareStatement("SELECT lastListUsed from user where user.homeLocationId IN (" + libraryLocations + ") and lastListused < ?");
481+
PreparedStatement lastListUsedEntriesToDeleteStmt = dbConn.prepareStatement("SELECT lastListUsed FROM user WHERE user.homeLocationId IN (" + libraryLocations + ") AND lastListused < ?");
483482
lastListUsedEntriesToDeleteStmt.setLong(1, earliestDateToPreserve);
484483

485484
ResultSet lastListUsedEntriesToDeleteRS = lastListUsedEntriesToDeleteStmt.executeQuery();
@@ -495,6 +494,8 @@ private void removeOldLastListUsed(Connection dbConn, Logger logger, CronProcess
495494
}
496495
librariesListRS.close();
497496
librariesListStmt.close();
497+
libraryLocationsStmt.close();
498+
deleteLastListUsedStmt.close();
498499
processLog.addNote("Removed " + numDeletions + " expired last list used entries");
499500
} catch (SQLException e) {
500501
processLog.incErrors("Unable to remove expired last used list entries.", e);

0 commit comments

Comments
 (0)