From 8904f636103d84051ba1d69d40f0aa6bb0e27cd9 Mon Sep 17 00:00:00 2001 From: brianling Date: Thu, 16 Jul 2026 06:28:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20rubric:storeData=20=E7=A9=BA=E4=BF=9D?= =?UTF-8?q?=E6=8A=A4=E4=B8=8D=E8=A6=86=E7=9B=96=E7=BC=93=E5=AD=98=20&=20ge?= =?UTF-8?q?tData=20=E5=9B=9E=E9=80=80=20DB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/main/ipc.ts | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/electron/main/ipc.ts b/electron/main/ipc.ts index f5ff205..2df439a 100644 --- a/electron/main/ipc.ts +++ b/electron/main/ipc.ts @@ -255,11 +255,7 @@ export function setupIpc(win: BrowserWindow): void { ipcMain.handle('rubric:storeData', (_event, data: any) => { const d = getDb() const questions = data?.questions || [] - // Don't clear rubric data when saving empty data (preserve existing) - if (questions.length === 0) { - rubricPayload = data - return - } + if (questions.length === 0) return d.prepare('DELETE FROM rubric').run() const insert = d.prepare('INSERT INTO rubric (question_title, max_score, reference_answer, rubric, sort_order) VALUES (?, ?, ?, ?, ?)') for (let i = 0; i < questions.length; i++) { @@ -270,19 +266,27 @@ export function setupIpc(win: BrowserWindow): void { }) ipcMain.handle('rubric:getData', () => { - if (rubricPayload) return rubricPayload - const d = getDb() - const rows: any[] = d.prepare('SELECT * FROM rubric ORDER BY sort_order').all() - if (rows.length) { - return { - questions: rows.map(r => ({ - questionTitle: r.question_title, - maxScore: r.max_score, - referenceAnswer: r.reference_answer, - rubric: r.rubric - })), - currentIndex: 0 + function fromDb() { + const d = getDb() + const rows: any[] = d.prepare('SELECT * FROM rubric ORDER BY sort_order').all() + if (rows.length) { + return { + questions: rows.map(r => ({ + questionTitle: r.question_title, + maxScore: r.max_score, + referenceAnswer: r.reference_answer, + rubric: r.rubric + })), + currentIndex: 0 + } } + return null + } + if (rubricPayload && rubricPayload.questions?.length) return rubricPayload + const dbResult = fromDb() + if (dbResult) { + rubricPayload = dbResult + return dbResult } return null })