diff --git a/addon/bluemap/pom.xml b/addon/bluemap/pom.xml
index c0daefab32..283bf68b22 100644
--- a/addon/bluemap/pom.xml
+++ b/addon/bluemap/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/discordsrv/pom.xml b/addon/discordsrv/pom.xml
index 2e0521a820..416eb49958 100644
--- a/addon/discordsrv/pom.xml
+++ b/addon/discordsrv/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/discount/pom.xml b/addon/discount/pom.xml
index 38693f7e92..a3cb7e03f4 100644
--- a/addon/discount/pom.xml
+++ b/addon/discount/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/displaycontrol/pom.xml b/addon/displaycontrol/pom.xml
index cf004ca0ef..b9fcea5478 100644
--- a/addon/displaycontrol/pom.xml
+++ b/addon/displaycontrol/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/dynmap/pom.xml b/addon/dynmap/pom.xml
index ec6b01d66b..d65c53bb77 100644
--- a/addon/dynmap/pom.xml
+++ b/addon/dynmap/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/limited/pom.xml b/addon/limited/pom.xml
index 528b8be7d6..914593f672 100644
--- a/addon/limited/pom.xml
+++ b/addon/limited/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/list/pom.xml b/addon/list/pom.xml
index 197e397077..729acc1acf 100644
--- a/addon/list/pom.xml
+++ b/addon/list/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/plan/pom.xml b/addon/plan/pom.xml
index 52ab7e6817..67d1ea1ab5 100644
--- a/addon/plan/pom.xml
+++ b/addon/plan/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/reremake-migrator/pom.xml b/addon/reremake-migrator/pom.xml
index 13825c443f..e5d9272413 100644
--- a/addon/reremake-migrator/pom.xml
+++ b/addon/reremake-migrator/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/addon/shopitemonly/pom.xml b/addon/shopitemonly/pom.xml
index da68b8ce2a..a4668c3ea6 100644
--- a/addon/shopitemonly/pom.xml
+++ b/addon/shopitemonly/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.addon
diff --git a/compatibility/advancedregionmarket/pom.xml b/compatibility/advancedregionmarket/pom.xml
index 9079408c70..35b21fb7be 100644
--- a/compatibility/advancedregionmarket/pom.xml
+++ b/compatibility/advancedregionmarket/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/angelchest/pom.xml b/compatibility/angelchest/pom.xml
index 403fbef27a..962e96d80f 100644
--- a/compatibility/angelchest/pom.xml
+++ b/compatibility/angelchest/pom.xml
@@ -6,7 +6,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/bentobox/pom.xml b/compatibility/bentobox/pom.xml
index d4449ffc1f..df317785c0 100644
--- a/compatibility/bentobox/pom.xml
+++ b/compatibility/bentobox/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/bungeecord-geyser/pom.xml b/compatibility/bungeecord-geyser/pom.xml
index e152658c87..5a2e7d56f2 100644
--- a/compatibility/bungeecord-geyser/pom.xml
+++ b/compatibility/bungeecord-geyser/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/bungeecord/pom.xml b/compatibility/bungeecord/pom.xml
index 104945ad7d..c0399e288d 100644
--- a/compatibility/bungeecord/pom.xml
+++ b/compatibility/bungeecord/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/chestprotect/pom.xml b/compatibility/chestprotect/pom.xml
index 54f23e2de4..84a66e7138 100644
--- a/compatibility/chestprotect/pom.xml
+++ b/compatibility/chestprotect/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/clearlag/pom.xml b/compatibility/clearlag/pom.xml
index d97eb9ae64..09ee26082e 100644
--- a/compatibility/clearlag/pom.xml
+++ b/compatibility/clearlag/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/common/pom.xml b/compatibility/common/pom.xml
index 2e7171d045..1724f996a2 100644
--- a/compatibility/common/pom.xml
+++ b/compatibility/common/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/ecoenchants/pom.xml b/compatibility/ecoenchants/pom.xml
index 936b1e0d3b..677b9da225 100644
--- a/compatibility/ecoenchants/pom.xml
+++ b/compatibility/ecoenchants/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/elitemobs/pom.xml b/compatibility/elitemobs/pom.xml
index d55e3143c9..575329061b 100644
--- a/compatibility/elitemobs/pom.xml
+++ b/compatibility/elitemobs/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/griefprevention/pom.xml b/compatibility/griefprevention/pom.xml
index cea28c6c8b..dc5a299b2e 100644
--- a/compatibility/griefprevention/pom.xml
+++ b/compatibility/griefprevention/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/itemsadder/pom.xml b/compatibility/itemsadder/pom.xml
index d0c8696d69..b277b6f63d 100644
--- a/compatibility/itemsadder/pom.xml
+++ b/compatibility/itemsadder/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/lands/pom.xml b/compatibility/lands/pom.xml
index 4192e44596..9fb65519a3 100644
--- a/compatibility/lands/pom.xml
+++ b/compatibility/lands/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/openinv/pom.xml b/compatibility/openinv/pom.xml
index ee889003fa..947d91c174 100644
--- a/compatibility/openinv/pom.xml
+++ b/compatibility/openinv/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/plotsquared/pom.xml b/compatibility/plotsquared/pom.xml
index bcfa15814d..ad79c86f35 100644
--- a/compatibility/plotsquared/pom.xml
+++ b/compatibility/plotsquared/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/reforges/pom.xml b/compatibility/reforges/pom.xml
index 08b960ebfc..5609848196 100644
--- a/compatibility/reforges/pom.xml
+++ b/compatibility/reforges/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/residence/pom.xml b/compatibility/residence/pom.xml
index 08d7bf5fcd..7b998cb23b 100644
--- a/compatibility/residence/pom.xml
+++ b/compatibility/residence/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/slimefun/pom.xml b/compatibility/slimefun/pom.xml
index c7eb041d4b..d014c0e8c2 100644
--- a/compatibility/slimefun/pom.xml
+++ b/compatibility/slimefun/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/superiorskyblock/pom.xml b/compatibility/superiorskyblock/pom.xml
index 8acd3ebd69..2d7db182aa 100644
--- a/compatibility/superiorskyblock/pom.xml
+++ b/compatibility/superiorskyblock/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/towny/pom.xml b/compatibility/towny/pom.xml
index a1e86307da..63c0f74dba 100644
--- a/compatibility/towny/pom.xml
+++ b/compatibility/towny/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/velocity/pom.xml b/compatibility/velocity/pom.xml
index c6eeb3d8e7..c945f66f8b 100644
--- a/compatibility/velocity/pom.xml
+++ b/compatibility/velocity/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/worldedit/pom.xml b/compatibility/worldedit/pom.xml
index b69d0c8e2b..cd1394154c 100644
--- a/compatibility/worldedit/pom.xml
+++ b/compatibility/worldedit/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/compatibility/worldguard/pom.xml b/compatibility/worldguard/pom.xml
index 4393aa5998..a48a8af0b1 100644
--- a/compatibility/worldguard/pom.xml
+++ b/compatibility/worldguard/pom.xml
@@ -7,7 +7,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
com.ghostchu.quickshop.compatibility
diff --git a/crowdin/lang/zh-CN/messages.yml b/crowdin/lang/zh-CN/messages.yml
index fd744847ab..f7a944357a 100644
--- a/crowdin/lang/zh-CN/messages.yml
+++ b/crowdin/lang/zh-CN/messages.yml
@@ -1541,5 +1541,5 @@ about:
- "捐赠密钥 >> {6}"
- "由社区提供支持 用 ❤"
valid-donation-key: "绑定到 {0}"
- invalid-donation-key: "Invalid donation key"
+ invalid-donation-key: "无效的捐赠密钥"
kofi-thanks: "特别感谢那些在 Ko-Fi 上支持 QuickShop 的人 :)"
diff --git a/platform/quickshop-platform-interface/pom.xml b/platform/quickshop-platform-interface/pom.xml
index 9af8a7aa71..04cdbd7535 100644
--- a/platform/quickshop-platform-interface/pom.xml
+++ b/platform/quickshop-platform-interface/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-paper/pom.xml b/platform/quickshop-platform-paper/pom.xml
index 4835ef5c51..c94fd87b3f 100644
--- a/platform/quickshop-platform-paper/pom.xml
+++ b/platform/quickshop-platform-paper/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-abstract/pom.xml b/platform/quickshop-platform-spigot-abstract/pom.xml
index 6fd4790d30..b51985199c 100644
--- a/platform/quickshop-platform-spigot-abstract/pom.xml
+++ b/platform/quickshop-platform-spigot-abstract/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_18_R1/pom.xml b/platform/quickshop-platform-spigot-v1_18_R1/pom.xml
index b6f4d895eb..c81082498f 100644
--- a/platform/quickshop-platform-spigot-v1_18_R1/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_18_R1/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_18_R2/pom.xml b/platform/quickshop-platform-spigot-v1_18_R2/pom.xml
index 28210cd9e2..84b72be89b 100644
--- a/platform/quickshop-platform-spigot-v1_18_R2/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_18_R2/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_19_R1/pom.xml b/platform/quickshop-platform-spigot-v1_19_R1/pom.xml
index 5ce1c1bf04..9bd963798d 100644
--- a/platform/quickshop-platform-spigot-v1_19_R1/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_19_R1/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_19_R2/pom.xml b/platform/quickshop-platform-spigot-v1_19_R2/pom.xml
index 74d179ea9b..56649c6059 100644
--- a/platform/quickshop-platform-spigot-v1_19_R2/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_19_R2/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_19_R3/pom.xml b/platform/quickshop-platform-spigot-v1_19_R3/pom.xml
index 68a63b0eca..1fcdddf44b 100644
--- a/platform/quickshop-platform-spigot-v1_19_R3/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_19_R3/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_20_R1/pom.xml b/platform/quickshop-platform-spigot-v1_20_R1/pom.xml
index be65cff0aa..bc04ab48f5 100644
--- a/platform/quickshop-platform-spigot-v1_20_R1/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_20_R1/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_20_R2/pom.xml b/platform/quickshop-platform-spigot-v1_20_R2/pom.xml
index b60bad0df1..18df639080 100644
--- a/platform/quickshop-platform-spigot-v1_20_R2/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_20_R2/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/platform/quickshop-platform-spigot-v1_20_R3/pom.xml b/platform/quickshop-platform-spigot-v1_20_R3/pom.xml
index 99c2d6185c..6cb6102434 100644
--- a/platform/quickshop-platform-spigot-v1_20_R3/pom.xml
+++ b/platform/quickshop-platform-spigot-v1_20_R3/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
../../pom.xml
diff --git a/pom.xml b/pom.xml
index 08702b90dc..e8258e653e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
pom
quickshop-hikari
Another QuickShop fork
diff --git a/quickshop-api/pom.xml b/quickshop-api/pom.xml
index 518cb886ec..8673ae36bd 100644
--- a/quickshop-api/pom.xml
+++ b/quickshop-api/pom.xml
@@ -5,7 +5,7 @@
quickshop-hikari
com.ghostchu
- 6.0.0.5
+ 6.0.0.6
4.0.0
diff --git a/quickshop-bukkit/pom.xml b/quickshop-bukkit/pom.xml
index 45ab136382..83a89d5804 100644
--- a/quickshop-bukkit/pom.xml
+++ b/quickshop-bukkit/pom.xml
@@ -8,7 +8,7 @@
com.ghostchu
quickshop-hikari
- 6.0.0.5
+ 6.0.0.6
quickshop-bukkit
diff --git a/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/command/subcommand/SubCommand_History.java b/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/command/subcommand/SubCommand_History.java
index bcb5a57503..4cfbb993ba 100644
--- a/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/command/subcommand/SubCommand_History.java
+++ b/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/command/subcommand/SubCommand_History.java
@@ -20,7 +20,7 @@ public SubCommand_History(QuickShop plugin) {
@Override
public void onCommand(@NotNull Player sender, @NotNull String commandLabel, @NotNull CommandParser parser) {
- final Shop shop = getLookingShop(sender);
+ Shop shop = getLookingShop(sender);
if (shop == null) {
plugin.text().of(sender, "not-looking-at-shop").send();
return;
diff --git a/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/ContainerShop.java b/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/ContainerShop.java
index abbaeb8341..7743b6212f 100644
--- a/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/ContainerShop.java
+++ b/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/ContainerShop.java
@@ -226,8 +226,9 @@ private void updateShopData() {
this.currency = section.getString("currency");
section.set("currency", null);
Log.debug("Shop " + this + " currency data upgrade successful.");
+ setDirty();
}
- setDirty();
+
}
/**
diff --git a/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/history/ShopHistory.java b/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/history/ShopHistory.java
index edfe36d64d..8857d8fb27 100644
--- a/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/history/ShopHistory.java
+++ b/quickshop-bukkit/src/main/java/com/ghostchu/quickshop/shop/history/ShopHistory.java
@@ -83,6 +83,47 @@ private CompletableFuture summaryUniquePurchasers(Instant from, Instant to
}, QuickExecutor.getShopHistoryQueryExecutor());
}
+ private CompletableFuture> summaryTopNValuableCustomers(int n) {
+ return CompletableFuture.supplyAsync(() -> {
+ LinkedHashMap orderedMap = new LinkedHashMap<>();
+ String SQL = "SELECT `buyer`, COUNT(`buyer`) AS `count` FROM %s " +
+ "WHERE `shop`= ? GROUP BY `buyer` ORDER BY `count` DESC LIMIT " + n;
+ SQL = String.format(SQL, DataTables.LOG_PURCHASE.getName());
+ try (PerfMonitor perfMonitor = new PerfMonitor("summaryTopNValuableCustomers");
+ SQLQuery query = plugin.getSqlManager().createQuery().withPreparedSQL(SQL).setParams(shopId, n).execute()) {
+ perfMonitor.setContext("shopId="+shopId+", n="+n);
+ ResultSet set = query.getResultSet();
+ while (set.next()) {
+ orderedMap.put(UUID.fromString(set.getString("buyer")), set.getLong("count"));
+ }
+ return orderedMap;
+ } catch (SQLException exception) {
+ plugin.logger().warn("Failed to summary valuable customers", exception);
+ return orderedMap;
+ }
+ }, QuickExecutor.getShopHistoryQueryExecutor());
+ }
+
+ private CompletableFuture summaryUniquePurchasers() {
+ return CompletableFuture.supplyAsync(() -> {
+ String SQL = "SELECT COUNT(DISTINCT `buyer`) FROM %s " +
+ "WHERE `shop`= ?";
+ SQL = String.format(SQL, DataTables.LOG_PURCHASE.getName());
+ try (PerfMonitor perfMonitor = new PerfMonitor("summaryUniquePurchasers");
+ SQLQuery query = plugin.getSqlManager().createQuery().withPreparedSQL(SQL).setParams(shopId).execute()) {
+ perfMonitor.setContext("shopId="+shopId);
+ ResultSet set = query.getResultSet();
+ if (set.next()) {
+ return set.getLong(1);
+ }
+ return 0L;
+ } catch (SQLException exception) {
+ plugin.logger().warn("Failed to summary unique purchasers", exception);
+ return 0L;
+ }
+ }, QuickExecutor.getShopHistoryQueryExecutor());
+ }
+
private CompletableFuture summaryPurchasesBalance(Instant from, Instant to) {
return CompletableFuture.supplyAsync(() -> {
String SQL = "SELECT SUM(`money`) FROM %s " +
@@ -103,7 +144,29 @@ private CompletableFuture summaryPurchasesBalance(Instant from, Instant
}, QuickExecutor.getShopHistoryQueryExecutor());
}
+ private CompletableFuture summaryPurchasesBalance() {
+ return CompletableFuture.supplyAsync(() -> {
+ String SQL = "SELECT SUM(`money`) FROM %s " +
+ "WHERE `shop`= ?";
+ SQL = String.format(SQL, DataTables.LOG_PURCHASE.getName());
+ try (PerfMonitor perfMonitor = new PerfMonitor("summaryPurchasesBalance");
+ SQLQuery query = plugin.getSqlManager().createQuery().withPreparedSQL(SQL).setParams(shopId).execute()) {
+ perfMonitor.setContext("shopId="+shopId);
+ ResultSet set = query.getResultSet();
+ if (set.next()) {
+ return set.getDouble(1);
+ }
+ return 0.0d;
+ } catch (SQLException exception) {
+ plugin.logger().warn("Failed to summary unique purchasers", exception);
+ return 0d;
+ }
+ }, QuickExecutor.getShopHistoryQueryExecutor());
+ }
+
private CompletableFuture summaryPurchasesCount(Instant from, Instant to) {
+ if((from==null) != (to==null))
+ throw new IllegalStateException("from to must null or not null in same time");
return CompletableFuture.supplyAsync(() -> {
String SQL = "SELECT COUNT(*) FROM %s " +
"WHERE `shop`= ? AND `time` >= ? AND `time` <= ?";
@@ -123,22 +186,40 @@ private CompletableFuture summaryPurchasesCount(Instant from, Instant to)
}, QuickExecutor.getShopHistoryQueryExecutor());
}
+ private CompletableFuture summaryPurchasesCount() {
+ return CompletableFuture.supplyAsync(() -> {
+ String SQL = "SELECT COUNT(*) FROM %s " +
+ "WHERE `shop`= ?";
+ SQL = String.format(SQL, DataTables.LOG_PURCHASE.getName());
+ try (PerfMonitor perfMonitor = new PerfMonitor("summaryPurchasesCount");
+ SQLQuery query = plugin.getSqlManager().createQuery().withPreparedSQL(SQL).setParams(shopId).execute()) {
+ perfMonitor.setContext("shopId="+shopId);
+ ResultSet set = query.getResultSet();
+ if (set.next()) {
+ return set.getLong(1);
+ }
+ return 0L;
+ } catch (SQLException exception) {
+ plugin.logger().warn("Failed to summary unique purchasers", exception);
+ return 0L;
+ }
+ }, QuickExecutor.getShopHistoryQueryExecutor());
+ }
+
public CompletableFuture generateSummary() throws SQLException {
long recentPurchases24h = summaryPurchasesCount(Instant.now().minus(24, ChronoUnit.HOURS), Instant.now()).join();
long recentPurchases3d = summaryPurchasesCount(Instant.now().minus(3, ChronoUnit.DAYS), Instant.now()).join();
long recentPurchases7d = summaryPurchasesCount(Instant.now().minus(7, ChronoUnit.DAYS), Instant.now()).join();
long recentPurchases30d = summaryPurchasesCount(Instant.now().minus(30, ChronoUnit.DAYS), Instant.now()).join();
- long totalPurchases = summaryPurchasesCount(Instant.MIN, Instant.now()).join();
-
+ long totalPurchases = summaryPurchasesCount().join();
double recentPurchasesBalance24h = summaryPurchasesBalance(Instant.now().minus(24, ChronoUnit.HOURS), Instant.now()).join();
double recentPurchasesBalance3d = summaryPurchasesBalance(Instant.now().minus(3, ChronoUnit.DAYS), Instant.now()).join();
double recentPurchasesBalance7d = summaryPurchasesBalance(Instant.now().minus(7, ChronoUnit.DAYS), Instant.now()).join();
double recentPurchasesBalance30d = summaryPurchasesBalance(Instant.now().minus(30, ChronoUnit.DAYS), Instant.now()).join();
- double totalPurchasesBalance = summaryPurchasesBalance(Instant.MIN, Instant.now()).join();
-
- long totalUniquePurchases = summaryUniquePurchasers(Instant.MIN, Instant.now()).join();
- LinkedHashMap valuableCustomers = summaryTopNValuableCustomers(5, Instant.MIN, Instant.now()).join();
-
+ double totalPurchasesBalance = summaryPurchasesBalance().join();
+ long totalUniquePurchases = summaryUniquePurchasers().join();
+ LinkedHashMap valuableCustomers = summaryTopNValuableCustomers(5).join();
+
return CompletableFuture.supplyAsync(() -> new ShopSummary(
recentPurchases24h,
recentPurchases3d,
diff --git a/quickshop-common/pom.xml b/quickshop-common/pom.xml
index 43da16dee4..cac857aefc 100644
--- a/quickshop-common/pom.xml
+++ b/quickshop-common/pom.xml
@@ -5,7 +5,7 @@
quickshop-hikari
com.ghostchu
- 6.0.0.5
+ 6.0.0.6
4.0.0
diff --git a/quickshop-common/src/main/java/com/ghostchu/quickshop/common/util/QuickExecutor.java b/quickshop-common/src/main/java/com/ghostchu/quickshop/common/util/QuickExecutor.java
index 0f8f024a19..93509d1091 100644
--- a/quickshop-common/src/main/java/com/ghostchu/quickshop/common/util/QuickExecutor.java
+++ b/quickshop-common/src/main/java/com/ghostchu/quickshop/common/util/QuickExecutor.java
@@ -20,7 +20,7 @@ private QuickExecutor() {
}
public static ExecutorService provideShopHistoryQueryExecutor() {
- return new ThreadPoolExecutor(1, 1, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
+ return new ThreadPoolExecutor(1, 2, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
}
public static ExecutorService provideHikariCPExecutor() {