This commit is contained in:
2026-04-06 23:39:27 +05:00
parent 76ee4b7ac3
commit 73ace950fa
4 changed files with 235 additions and 9 deletions

View File

@@ -234,7 +234,47 @@ app.post('/api/login', async (req, res) => {
};
req.session.user = sessionUser;
// ✅ Обновляем last_chat_notification_sent_at в user_settings
const db = getDb();
if (db) {
// Проверяем, есть ли запись в user_settings
db.get("SELECT id FROM user_settings WHERE user_id = ?", [user.id], (err, settings) => {
if (err) {
console.error('❌ Ошибка проверки user_settings:', err);
} else if (settings) {
// Обновляем существующую запись
db.run(
`UPDATE user_settings
SET last_chat_notification_sent_at = CURRENT_TIMESTAMP,
updated_at = CURRENT_TIMESTAMP
WHERE user_id = ?`,
[user.id],
(updateErr) => {
if (updateErr) console.error('❌ Ошибка обновления last_chat_notification_sent_at:', updateErr);
else console.log(`✅ Сброшен счётчик уведомлений чата для пользователя ${user.login}`);
}
);
} else {
// Создаём запись с настройками по умолчанию и проставляем last_chat_notification_sent_at
db.run(
`INSERT INTO user_settings
(user_id, email_notifications, notification_email,
telegram_notifications, telegram_chat_id,
vk_notifications, vk_user_id, last_chat_notification_sent_at)
VALUES (?, 1, ?, 0, '', 0, '', CURRENT_TIMESTAMP)`,
[user.id, user.email || ''],
(insertErr) => {
if (insertErr) console.error('❌ Ошибка создания user_settings:', insertErr);
else console.log(`✅ Созданы настройки и сброшен счётчик уведомлений чата для пользователя ${user.login}`);
}
);
}
});
} else {
console.warn('⚠️ База данных не доступна, пропускаем обновление last_chat_notification_sent_at');
}
req.session.save((err) => {
if (err) {
console.error('❌ Ошибка сохранения сессии:', err);
@@ -245,9 +285,9 @@ app.post('/api/login', async (req, res) => {
if (user.groups) {
console.log(`Группы пользователя: ${user.groups}`);
}
res.json({
success: true,
res.json({
success: true,
user: sessionUser
});
});
@@ -257,9 +297,9 @@ app.post('/api/login', async (req, res) => {
}
} catch (error) {
console.error('❌ Ошибка аутентификации:', error.message);
res.status(500).json({
res.status(500).json({
error: 'Ошибка сервера при авторизации',
details: error.message
details: error.message
});
}
});
@@ -1595,6 +1635,9 @@ initializeServer().then(() => {
setInterval(checkOverdueTasks, 60000);
setInterval(checkUpcomingDeadlines, 60000);
setInterval(() => cronJobs.checkDocumentsForCompletion(db), 60000);
// ✅ Запускаем cron уведомлений чата (раз в час)
cronJobs.startChatNotificationsCron();
});
}).catch(error => {
console.error('❌ Не удалось запустить сервер:', error);