уведомление других админов о взятии заявки в работу
This commit is contained in:
parent
ae3674bf1b
commit
f0ad5fd74f
65
Program.cs
65
Program.cs
@ -1064,6 +1064,64 @@ class Program
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private static async Task NotifyAdminsAboutWorkAssignment(long reportId, long changerId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Получаем данные о заявке
|
||||||
|
string description = "";
|
||||||
|
string priority = "";
|
||||||
|
string room = "";
|
||||||
|
|
||||||
|
using (var connection = new SqliteConnection("Data Source=bot.db"))
|
||||||
|
{
|
||||||
|
await connection.OpenAsync();
|
||||||
|
var command = connection.CreateCommand();
|
||||||
|
command.CommandText = "SELECT Description, Priority, Room FROM Reports WHERE Id = @id";
|
||||||
|
command.Parameters.AddWithValue("@id", reportId);
|
||||||
|
|
||||||
|
using (var reader = await command.ExecuteReaderAsync())
|
||||||
|
{
|
||||||
|
if (await reader.ReadAsync())
|
||||||
|
{
|
||||||
|
description = reader.GetString(0);
|
||||||
|
priority = reader.GetString(1);
|
||||||
|
room = reader.GetString(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var adminId in admins)
|
||||||
|
{
|
||||||
|
// Не уведомляем админа, который сам взял заявку в работу
|
||||||
|
if (adminId == changerId) continue;
|
||||||
|
|
||||||
|
string priorityEmoji = GetPriorityEmoji(priority);
|
||||||
|
var keyboard = new InlineKeyboardMarkup(new[]
|
||||||
|
{
|
||||||
|
new[]
|
||||||
|
{
|
||||||
|
InlineKeyboardButton.WithCallbackData("📝 Посмотреть детали", $"report_{reportId}")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await _botClient.SendMessage(
|
||||||
|
chatId: adminId,
|
||||||
|
text: $"{priorityEmoji} <b>Заявка #{reportId} взята в работу</b>\n\n" +
|
||||||
|
$"<b>Приоритет:</b> {priority}\n" +
|
||||||
|
$"<b>Кабинет:</b> {room}\n" +
|
||||||
|
$"<b>Фрагмент описания:</b> {description.Substring(0, Math.Min(50, description.Length))}...",
|
||||||
|
parseMode: ParseMode.Html,
|
||||||
|
replyMarkup: keyboard
|
||||||
|
);
|
||||||
|
Log.Information($"Уведомление о взятии в работу заявки #{reportId} отправлено администратору {adminId}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.Error($"Ошибка при отправке уведомлений о взятии в работу: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1109,6 +1167,12 @@ class Program
|
|||||||
|
|
||||||
// Уведомляем пользователя об изменении статуса
|
// Уведомляем пользователя об изменении статуса
|
||||||
await NotifyUserAboutStatusChange(userChatId, reportId, newStatus);
|
await NotifyUserAboutStatusChange(userChatId, reportId, newStatus);
|
||||||
|
|
||||||
|
// Уведомляем администраторов, если заявка взята в работу
|
||||||
|
if (newStatus == "в работе")
|
||||||
|
{
|
||||||
|
await NotifyAdminsAboutWorkAssignment(reportId, changerId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -1118,6 +1182,7 @@ class Program
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static async Task SaveReportToDatabase(long chatId, Report report)
|
private static async Task SaveReportToDatabase(long chatId, Report report)
|
||||||
{
|
{
|
||||||
string connectionString = "Data Source=bot.db"; // Используем SQLite
|
string connectionString = "Data Source=bot.db"; // Используем SQLite
|
||||||
|
Loading…
x
Reference in New Issue
Block a user