토너먼트 NPC 개방 베팅을 복구하고 장수 DB 저장을 일괄 처리

This commit is contained in:
2026-09-12 08:04:48 +00:00
parent 3ad230beb3
commit 4dac08b916
9 changed files with 581 additions and 62 deletions
+21 -26
View File
@@ -1,3 +1,4 @@
import { persistGeneralAccessScores, persistGeneralUpdates } from './generalBatchPersistence.js';
import { areSeasonRecordsFinalized } from './seasonRecords.js';
import {
acquireGameSchemaAdvisoryXactLock,
@@ -1791,32 +1792,26 @@ export const createDatabaseTurnHooks = async (
}
await Promise.all([
...generals
.filter((general) => !createdIds.has(general.id))
.map((general) =>
prisma.general.update({
where: { id: general.id },
data: buildGeneralUpdate(general),
})
),
...generals
.filter(
(general) =>
typeof general.refreshScoreTotal === 'number' && Number.isFinite(general.refreshScoreTotal)
)
.map((general) =>
prisma.generalAccessLog.upsert({
where: { generalId: general.id },
update: {
refreshScoreTotal: Math.floor(general.refreshScoreTotal ?? 0),
},
create: {
generalId: general.id,
userId: general.userId ?? null,
refreshScoreTotal: Math.floor(general.refreshScoreTotal ?? 0),
},
})
),
persistGeneralUpdates(
prisma,
generals
.filter((general) => !createdIds.has(general.id))
.map((general) => ({ id: general.id, data: buildGeneralUpdate(general) }))
),
persistGeneralAccessScores(
prisma,
generals
.filter(
(general) =>
typeof general.refreshScoreTotal === 'number' &&
Number.isFinite(general.refreshScoreTotal)
)
.map((general) => ({
generalId: general.id,
userId: general.userId ?? null,
refreshScoreTotal: Math.floor(general.refreshScoreTotal ?? 0),
}))
),
...cities.map((city) =>
prisma.city.update({
where: { id: city.id },