Оповещения: группа «Администратор системы», блок «Кому писать» открыт; копии: адрес хранилища как в проводнике

Администратору (адрес из «Почты») — сбои (ИШ, связь с НРД, службы bj, DEPO) и обновления (новый выпуск bj,
ИШ, лицензия, сертификаты); отделам — переводы и поручения. Существующие установки: администратор получает
всё, что получал. Новые оповещения: «Доступно обновление bj» (раз на выпуск), «Служба … не работает /
снова работает» (модули и служба ключей Валидаты). Резервные копии: \\сервер\папка или сервер + общая
папка по полям → //сервер/папка; понятная причина отказа доступа.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-06 22:44:35 +03:00
parent f07bb53162
commit d23ddf6e0c
16 changed files with 547 additions and 63 deletions
+6 -6
View File
@@ -23,7 +23,7 @@ func notifyDepositoryIncoming(rc *RuntimeConfig, it *IncomingTransfer) {
}
cfg := rc.Snapshot()
inc := cfg.Incoming
if !inc.Enabled || strings.TrimSpace(inc.Recipients("incoming")) == "" {
if !inc.Enabled || strings.TrimSpace(notifyRecipients(cfg, "incoming")) == "" {
return
}
smtp := cfg.Alerts.SMTP
@@ -34,13 +34,13 @@ func notifyDepositoryIncoming(rc *RuntimeConfig, it *IncomingTransfer) {
subject := "MOEX МОСТ (M2M): к вам переведены ценные бумаги — требуется учёт"
body := buildIncomingEmailBody(it)
s := smtp
s.To = inc.Recipients("incoming") // получатели по маршруту «входящие переводы»
s.To = notifyRecipients(cfg, "incoming") // получатели по маршруту «входящие переводы»
if err := sendSMTP(s, subject, body); err != nil {
log.Printf("lk-gateway: уведомление депозитарию о входящем GUID=%s не доставлено: %v", it.GUID, err)
return
}
log.Printf("lk-gateway: уведомление депозитарию о входящем GUID=%s отправлено (%d бумаг) на %s",
it.GUID, len(it.Securities), inc.Recipients("incoming"))
it.GUID, len(it.Securities), notifyRecipients(cfg, "incoming"))
}
// notifyDepositoryAccepted отправляет письмо депозитарию о том, что входящий
@@ -51,7 +51,7 @@ func notifyDepositoryAccepted(rc *RuntimeConfig, it *IncomingTransfer, confirmed
}
cfg := rc.Snapshot()
inc := cfg.Incoming
if !inc.Enabled || strings.TrimSpace(inc.Recipients("incoming")) == "" {
if !inc.Enabled || strings.TrimSpace(notifyRecipients(cfg, "incoming")) == "" {
return
}
smtp := cfg.Alerts.SMTP
@@ -94,12 +94,12 @@ func notifyDepositoryAccepted(rc *RuntimeConfig, it *IncomingTransfer, confirmed
b.WriteString("\nЭто уведомление сформировано автоматически системой Bridge-and-Join-s (bj).\n")
m := smtp
m.To = inc.Recipients("incoming")
m.To = notifyRecipients(cfg, "incoming")
if err := sendSMTP(m, subject, b.String()); err != nil {
log.Printf("lk-gateway: письмо депозитарию о приёме GUID=%s не доставлено: %v", it.GUID, err)
return
}
log.Printf("lk-gateway: письмо депозитарию о приёме GUID=%s отправлено на %s", it.GUID, inc.Recipients("incoming"))
log.Printf("lk-gateway: письмо депозитарию о приёме GUID=%s отправлено на %s", it.GUID, notifyRecipients(cfg, "incoming"))
}
// buildIncomingEmailBody собирает текст письма депозитарию.