From 78a6207771f2e606a92101c361d640b10470436f Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Sat, 26 Apr 2025 20:26:45 +0800 Subject: [PATCH] Update notification.service.ts --- .../src/services/notification.service.ts | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/backend/src/services/notification.service.ts b/packages/backend/src/services/notification.service.ts index 1bb2db8..66d8089 100644 --- a/packages/backend/src/services/notification.service.ts +++ b/packages/backend/src/services/notification.service.ts @@ -268,16 +268,27 @@ export class NotificationService { async sendNotification(event: NotificationEvent, details?: Record | string): Promise { console.log(`[通知] 事件触发: ${event}`, details || ''); - let userLang = defaultLng; - try { - const langSetting = await settingsService.getSetting('language'); - if (langSetting && supportedLngs.includes(langSetting)) { - userLang = langSetting; + let userLang = defaultLng; // Start with default + + // --- 修改开始 --- + // 如果是设置更新事件,并且更新了语言,直接从 details 中获取新语言值 + if (event === 'SETTINGS_UPDATED' && typeof details === 'object' && details?.updatedKeys?.includes('language') && typeof details?.language === 'string' && supportedLngs.includes(details.language)) { + userLang = details.language; + console.log(`[通知] 事件 ${event} 检测到语言更新,直接使用新值 '${userLang}' (来自事件详情)`); + } else { + // 对于其他事件或未更新语言的设置更新,才从数据库查询 + try { + const langSetting = await settingsService.getSetting('language'); + if (langSetting && supportedLngs.includes(langSetting)) { + userLang = langSetting; + } + } catch (error) { + console.error(`[通知] 获取事件 ${event} 的语言设置时出错:`, error); } - } catch (error) { - console.error(`[通知] 获取事件 ${event} 的语言设置时出错:`, error); + console.log(`[通知] 事件 ${event} 使用语言 '${userLang}' (来自数据库或默认)`); } - console.log(`[通知] 事件 ${event} 使用语言 '${userLang}'`); + // --- 修改结束 --- + const payload: NotificationPayload = { event,