From 47c1fe4619efa9f3a1ab85b50cf58da1361a75b9 Mon Sep 17 00:00:00 2001 From: Cay Date: Mon, 16 Mar 2026 13:01:08 +0000 Subject: [PATCH] update mine --- routes/mine_route.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/routes/mine_route.js b/routes/mine_route.js index 2fa85a3..f12e2c2 100644 --- a/routes/mine_route.js +++ b/routes/mine_route.js @@ -145,14 +145,18 @@ router.post("/:buildingId/collect", auth, async (req, res) => { }); } - // Ressourcen gutschreiben - for (const row of rows) { - const toAdd = row.amount * cycles; - await db.query( - "INSERT INTO account_currency (account_id, `" + row.resource + "`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `" + row.resource + "` = `" + row.resource + "` + ?", - [userId, toAdd, toAdd] - ); - } + // ── Alle Ressourcen atomar in EINEM Query schreiben ────────────── + // Verhindert inkonsistente Zustände bei Verbindungsabbrüchen + const setClauses = rows + .map((r) => `\`${r.resource}\` = \`${r.resource}\` + ${r.amount * cycles}`) + .join(", "); + + await db.query( + `INSERT INTO account_currency (account_id) + VALUES (?) + ON DUPLICATE KEY UPDATE ${setClauses}`, + [userId] + ); // Timer zuruecksetzen: last_collected um genau die abgeschlossenen // Zyklen vorruecken – Restsekunden bleiben erhalten, kein Verlust