mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-03-07 17:28:03 +08:00
Refactored UserTable#getUsers to a query
This commit is contained in:
parent
3bba52f0a8
commit
a110759719
@ -23,6 +23,7 @@ import com.djrapitops.plan.data.store.objects.Nickname;
|
||||
import com.djrapitops.plan.db.access.Query;
|
||||
import com.djrapitops.plan.db.access.QueryAllStatement;
|
||||
import com.djrapitops.plan.db.access.QueryStatement;
|
||||
import com.djrapitops.plan.db.sql.parsing.Select;
|
||||
import com.djrapitops.plan.db.sql.tables.*;
|
||||
import com.djrapitops.plan.system.info.server.Server;
|
||||
|
||||
@ -462,4 +463,23 @@ public class LargeFetchQueries {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static Query<Map<UUID, UserInfo>> fetchAllCommonUserInformation() {
|
||||
String sql = Select.all(UsersTable.TABLE_NAME).toString();
|
||||
|
||||
return new QueryAllStatement<Map<UUID, UserInfo>>(sql, 20000) {
|
||||
@Override
|
||||
public Map<UUID, UserInfo> processResults(ResultSet set) throws SQLException {
|
||||
Map<UUID, UserInfo> users = new HashMap<>();
|
||||
while (set.next()) {
|
||||
UUID uuid = UUID.fromString(set.getString(UsersTable.Col.UUID.get()));
|
||||
String name = set.getString(UsersTable.Col.USER_NAME.get());
|
||||
long registered = set.getLong(UsersTable.Col.REGISTERED.get());
|
||||
|
||||
users.put(uuid, new UserInfo(uuid, name, registered, false, false));
|
||||
}
|
||||
return users;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
@ -275,25 +275,6 @@ public class UsersTable extends UserUUIDTable {
|
||||
});
|
||||
}
|
||||
|
||||
public Map<UUID, UserInfo> getUsers() {
|
||||
String sql = Select.all(tableName).toString();
|
||||
|
||||
return query(new QueryAllStatement<Map<UUID, UserInfo>>(sql, 20000) {
|
||||
@Override
|
||||
public Map<UUID, UserInfo> processResults(ResultSet set) throws SQLException {
|
||||
Map<UUID, UserInfo> users = new HashMap<>();
|
||||
while (set.next()) {
|
||||
UUID uuid = UUID.fromString(set.getString(Col.UUID.get()));
|
||||
String name = set.getString(Col.USER_NAME.get());
|
||||
long registered = set.getLong(Col.REGISTERED.get());
|
||||
|
||||
users.put(uuid, new UserInfo(uuid, name, registered, false, false));
|
||||
}
|
||||
return users;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts UUIDs, Register dates and Names to the table.
|
||||
* <p>
|
||||
|
@ -16,15 +16,11 @@
|
||||
*/
|
||||
package com.djrapitops.plan.db.sql.tables.move;
|
||||
|
||||
import com.djrapitops.plan.data.container.UserInfo;
|
||||
import com.djrapitops.plan.db.SQLDB;
|
||||
import com.djrapitops.plan.db.sql.queries.batch.LargeFetchQueries;
|
||||
import com.djrapitops.plan.db.sql.tables.Table;
|
||||
import com.djrapitops.plan.db.sql.tables.UsersTable;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* A Fake table used to store a lot of big table operations.
|
||||
* <p>
|
||||
@ -162,8 +158,8 @@ public class BatchOperationTable extends Table {
|
||||
}
|
||||
UsersTable fromTable = db.getUsersTable();
|
||||
UsersTable toTable = toDB.db.getUsersTable();
|
||||
Map<UUID, UserInfo> users = fromTable.getUsers();
|
||||
toTable.insertUsers(users);
|
||||
|
||||
toTable.insertUsers(db.query(LargeFetchQueries.fetchAllCommonUserInformation()));
|
||||
toTable.updateKicked(fromTable.getAllTimesKicked());
|
||||
}
|
||||
|
||||
|
@ -192,7 +192,7 @@ public class SQLFetchOps extends SQLOps implements FetchOperations {
|
||||
public List<PlayerContainer> getAllPlayerContainers() {
|
||||
List<PlayerContainer> containers = new ArrayList<>();
|
||||
|
||||
Map<UUID, UserInfo> users = usersTable.getUsers();
|
||||
Map<UUID, UserInfo> users = db.query(LargeFetchQueries.fetchAllCommonUserInformation());
|
||||
Map<UUID, Integer> timesKicked = usersTable.getAllTimesKicked();
|
||||
Map<UUID, List<GeoInfo>> geoInfo = db.query(LargeFetchQueries.fetchAllGeoInfoData());
|
||||
Map<UUID, List<Ping>> allPings = db.query(LargeFetchQueries.fetchAllPingData());
|
||||
@ -424,7 +424,7 @@ public class SQLFetchOps extends SQLOps implements FetchOperations {
|
||||
|
||||
@Override
|
||||
public Map<UUID, UserInfo> getUsers() {
|
||||
return usersTable.getUsers();
|
||||
return db.query(LargeFetchQueries.fetchAllCommonUserInformation());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,6 +20,7 @@ import com.djrapitops.plan.PlanPlugin;
|
||||
import com.djrapitops.plan.api.exceptions.ParseException;
|
||||
import com.djrapitops.plan.api.exceptions.database.DBOpException;
|
||||
import com.djrapitops.plan.data.container.UserInfo;
|
||||
import com.djrapitops.plan.db.sql.queries.batch.LargeFetchQueries;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.file.PlanFiles;
|
||||
import com.djrapitops.plan.system.info.connection.ConnectionSystem;
|
||||
@ -137,7 +138,8 @@ public class HtmlExport extends SpecificExport {
|
||||
|
||||
public void exportAvailablePlayers() {
|
||||
try {
|
||||
for (Map.Entry<UUID, UserInfo> entry : dbSystem.getDatabase().fetch().getUsers().entrySet()) {
|
||||
Map<UUID, UserInfo> users = dbSystem.getDatabase().query(LargeFetchQueries.fetchAllCommonUserInformation());
|
||||
for (Map.Entry<UUID, UserInfo> entry : users.entrySet()) {
|
||||
exportAvailablePlayerPage(entry.getKey(), entry.getValue().getName());
|
||||
}
|
||||
} catch (IOException | DBOpException e) {
|
||||
|
Loading…
Reference in New Issue
Block a user