From b0de7f29792f994b4cbb70a6f4333e50fda9d388 Mon Sep 17 00:00:00 2001 From: zuevav Date: Tue, 29 Sep 2026 13:21:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B0=20=C2=AB=D0=B1=D0=BE=D0=B5=D0=B2=D0=BE=D0=B9=20=D0=9B?= =?UTF-8?q?=D0=9A=20=E2=86=92=20TEST3=C2=BB=20=E2=80=94=20=D0=B2=20=D0=9D?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B0=20=E2=86=92=20?= =?UTF-8?q?=D0=9B=D0=9A=20=D0=95=D0=A1=D0=98=D0=90=20=D0=A4=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=D0=BD=D1=81=20(=D0=B1=D0=B5=D0=B7=20=D1=80=D0=B5=D0=B6?= =?UTF-8?q?=D0=B8=D0=BC=D0=B0=20=D1=80=D0=B0=D0=B7=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi --- internal/lkgateway/admin.go | 1 + internal/lkgateway/realtest.go | 20 ++++++++++++++++--- .../web/templates/admin_m2mtest.html | 2 +- .../lkgateway/web/templates/admin_setup.html | 10 ++++++++++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/internal/lkgateway/admin.go b/internal/lkgateway/admin.go index b18bc01..52979b3 100644 --- a/internal/lkgateway/admin.go +++ b/internal/lkgateway/admin.go @@ -53,6 +53,7 @@ var templateFuncs = template.FuncMap{ "can": authTemplateFuncs["can"], "sendFailText": sendFailText, "realTest": realTestGet, + "realNSDAs": realNSDAsText, "nsdSegTip": nsdSegTip, "devOn": authTemplateFuncs["devOn"], "devLicensed": authTemplateFuncs["devLicensed"], diff --git a/internal/lkgateway/realtest.go b/internal/lkgateway/realtest.go index e2c9331..00303e8 100644 --- a/internal/lkgateway/realtest.go +++ b/internal/lkgateway/realtest.go @@ -213,9 +213,10 @@ func realTestOnExecuted(ctx context.Context, rc *RuntimeConfig, guid string, rej log.Printf("real-test: %s — итог в ЛК: %s (%s)", shortGUID(guid), status, reason) } -// registerRealNSDTest — POST /admin/m2m-testing/real-nsd: включить/выключить тест и список клиентов. +// registerRealNSDTest — POST /admin/setup/lk-real-nsd: включить/выключить тест и список клиентов +// (в «Настройка → ЛК ЕСИА Финанс», доступно без режима разработки — право «настройка»). func registerRealNSDTest(mux *http.ServeMux, rc *RuntimeConfig) { - mux.HandleFunc("/admin/m2m-testing/real-nsd", func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc("/admin/setup/lk-real-nsd", func(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "method", http.StatusMethodNotAllowed) return @@ -228,6 +229,19 @@ func registerRealNSDTest(mux *http.ServeMux, rc *RuntimeConfig) { return } log.Printf("real-test: %v, клиенты: %s", lk.RealNSDTest.Enabled, lk.RealNSDTest.Docs) - http.Redirect(w, r, "/admin/m2m-testing#real-nsd", http.StatusSeeOther) + back := "/admin/setup" + if ref := r.Referer(); strings.Contains(ref, "/admin/m2m-testing") { + back = "/admin/m2m-testing" + } + http.Redirect(w, r, back+"#lk-real-nsd", http.StatusSeeOther) }) } + +// realNSDAsText — тест-инвестор для подписи в настройках. +func realNSDAsText() string { + if globalRC == nil { + return "" + } + l, f, m, sr, n := globalRC.Snapshot().LK.RealNSDTest.as() + return strings.TrimSpace(l + " " + f + " " + m + ", " + sr + " " + n) +} diff --git a/internal/lkgateway/web/templates/admin_m2mtest.html b/internal/lkgateway/web/templates/admin_m2mtest.html index bfd8d5c..293502e 100644 --- a/internal/lkgateway/web/templates/admin_m2mtest.html +++ b/internal/lkgateway/web/templates/admin_m2mtest.html @@ -65,7 +65,7 @@

Тест «боевой ЛК → тестовый контур НРД» {{if .RealNSD.Enabled}}включён{{else}}выключен{{end}}

Заявки клиентов из списка (из ЛК ЕСИА Финанс) проходят у нас всё по-настоящему: проверка шлюза и поручение в DEPO, блокировка и списание в QUIK МНП (боевая запись), статусы в ЛК. В НРД (TEST3) запрос уходит с данными тест-инвестора {{.RealNSDAs}} — GUID, референсы, бумаги и счета настоящие, ответы НРД применяются к заявке клиента. «Исполнена» в ЛК — по отчёту НРД об исполнении (MS010). Остальные заявки ЛК — как раньше (без отправки в НРД).

- {{if can "settings"}}
+ {{if can "settings"}} diff --git a/internal/lkgateway/web/templates/admin_setup.html b/internal/lkgateway/web/templates/admin_setup.html index 66bf528..9a1d92a 100644 --- a/internal/lkgateway/web/templates/admin_setup.html +++ b/internal/lkgateway/web/templates/admin_setup.html @@ -636,6 +636,16 @@ {{if devOn}} {{end}}
+
+ Тест «боевой ЛК → тестовый контур НРД» {{if .Settings.LK.RealNSDTest.Enabled}}включён{{else}}выключен{{end}} +

Заявки клиентов из списка проходят у нас всё по-настоящему: сверка и поручение в DEPO, блокировка и списание в QUIK МНП (боевая запись), статусы в ЛК. В НРД (тестовый контур) запрос уходит с данными тест-инвестора {{realNSDAs}}; GUID, бумаги и счета — настоящие, ответы НРД применяются к заявке клиента. «Исполнена» в ЛК — по отчёту НРД об исполнении (MS010). Остальные заявки ЛК — как раньше. Включайте до того, как клиент подпишет заявку.

+
+ + + +
+
{{if devOn}}