From dfb38c7cda142277ff6cc09ed5bde4740666fdb7 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Fri, 5 Nov 2021 22:09:24 +0100 Subject: [PATCH] Safe Historic Data in CheckedNode Signed-off-by: Chaoscaot --- ...CheckedSchematic.java => CheckedNode.java} | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) rename SpigotCore_Main/src/de/steamwar/sql/{CheckedSchematic.java => CheckedNode.java} (60%) diff --git a/SpigotCore_Main/src/de/steamwar/sql/CheckedSchematic.java b/SpigotCore_Main/src/de/steamwar/sql/CheckedNode.java similarity index 60% rename from SpigotCore_Main/src/de/steamwar/sql/CheckedSchematic.java rename to SpigotCore_Main/src/de/steamwar/sql/CheckedNode.java index 652d041..f52137a 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/CheckedSchematic.java +++ b/SpigotCore_Main/src/de/steamwar/sql/CheckedNode.java @@ -19,80 +19,78 @@ package de.steamwar.sql; -import org.bukkit.Bukkit; - -import java.sql.ResultSet; -import java.sql.SQLException; import java.sql.Timestamp; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; import java.util.UUID; -import java.util.logging.Level; -public class CheckedSchematic { +public class CheckedNode { - private static final SQL.Statement checkHistory = new SQL.Statement("SELECT * FROM CheckedSchematic WHERE NodeId IN (SELECT NodeId FROM SchematicNode WHERE NodeOwner = ?) AND DeclineReason != '' AND DeclineReason != 'Prüfvorgang abgebrochen' ORDER BY EndTime DESC"); - private static final SQL.Statement nodeHistory = new SQL.Statement("SELECT * FROM CheckedSchematic WHERE NodeId = ? AND DeclineReason != '' AND DeclineReason != 'Prüfvorgang abgebrochen' ORDER BY EndTime DESC"); + private static final SQL.Statement checkHistory = new SQL.Statement("SELECT * FROM CheckedNode WHERE NodeId IN (SELECT NodeId FROM SchematicNode WHERE NodeOwner = ?) AND DeclineReason != '' AND DeclineReason != 'Prüfvorgang abgebrochen' ORDER BY EndTime DESC"); + private static final SQL.Statement nodeHistory = new SQL.Statement("SELECT * FROM CheckedNode WHERE NodeId = ? AND DeclineReason != '' AND DeclineReason != 'Prüfvorgang abgebrochen' ORDER BY EndTime DESC"); - private final int node; + private final Integer node; private final int validator; private final Timestamp startTime; private final Timestamp endTime; private final String declineReason; - private CheckedSchematic(int node, int validator, Timestamp startTime, Timestamp endTime, String declineReason, boolean insertDB){ + private CheckedNode(int node, int validator, Timestamp startTime, Timestamp endTime, String declineReason, boolean insertDB){ this.node = node; this.validator = validator; this.startTime = startTime; this.endTime = endTime; this.declineReason = declineReason; - if(insertDB) + if(insertDB) { insertDB(); + } } - public CheckedSchematic(int node, int validator, Timestamp startTime, Timestamp endTime, String declineReason){ + public CheckedNode(int node, int validator, Timestamp startTime, Timestamp endTime, String declineReason){ this(node, validator, startTime, endTime, declineReason, true); } - public CheckedSchematic(int node, UUID validator, Timestamp startTime, Timestamp endTime, String declineReason){ + public CheckedNode(int node, UUID validator, Timestamp startTime, Timestamp endTime, String declineReason){ this(node, SteamwarUser.get(validator).getId(), startTime, endTime, declineReason, true); } - private void insertDB(){ + private void insertDB() { + SchematicNode sNode = SchematicNode.getSchematicNode(node); + String nodeName = sNode.getName(); + int nodeOwner = sNode.getOwner(); SQL.update("INSERT INTO CheckedSchematic" + - " (NodeId, Validator, StartTime, EndTime, DeclineReason) VALUES (?, ?, ?, ?, ?)", - node, validator, startTime, endTime, declineReason); + " (NodeId, NodeName, NodeOwner, Validator, StartTime, EndTime, DeclineReason) VALUES (?, ?, ?, ?, ?)", + node, nodeName, nodeOwner, validator, startTime, endTime, declineReason); } - public static List getLastDeclinedOfNode(SchematicNode node){ + public static List getLastDeclinedOfNode(SchematicNode node){ return getLastDeclinedOfNode(node.getId()); } - public static List getLastDeclinedOfNode(int node){ + public static List getLastDeclinedOfNode(int node){ return nodeHistory.select(rs -> { - List lastDeclined = new ArrayList<>(); + List lastDeclined = new ArrayList<>(); while(rs.next()){ int validator = rs.getInt("Validator"); Timestamp startTime = rs.getTimestamp("StartTime"); Timestamp endTime = rs.getTimestamp("EndTime"); String declineReason = rs.getString("DeclineReason"); - lastDeclined.add(new CheckedSchematic(node, validator, startTime, endTime, declineReason, false)); + lastDeclined.add(new CheckedNode(node, validator, startTime, endTime, declineReason, false)); } return lastDeclined; }, node); } - public static List getLastDeclined(UUID uuid){ + public static List getLastDeclined(UUID uuid){ return getLastDelined(SteamwarUser.get(uuid).getId()); } - public static List getLastDelined(int schemOwner){ + public static List getLastDelined(int schemOwner){ return checkHistory.select(rs -> { - List history = new ArrayList<>(); + List history = new ArrayList<>(); while(rs.next()) - history.add(new CheckedSchematic(rs.getInt("NodeId"), rs.getInt("Validator"), rs.getTimestamp("StartTime"), rs.getTimestamp("EndTime"), rs.getString("DeclineReason"), false)); + history.add(new CheckedNode(rs.getInt("NodeId"), rs.getInt("Validator"), rs.getTimestamp("StartTime"), rs.getTimestamp("EndTime"), rs.getString("DeclineReason"), false)); return history; }, schemOwner); }