Update notification.service.ts

This commit is contained in:
Baobhan Sith
2025-04-26 20:26:45 +08:00
parent 1945aaa0fb
commit 78a6207771
@@ -268,16 +268,27 @@ export class NotificationService {
async sendNotification(event: NotificationEvent, details?: Record<string, any> | string): Promise<void> {
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,