Карточка: при подмене личности явно указывать, что в НРД ушли подменённые данные

В режиме эмуляции «Подмена личности» XML в карточке — это наша запись с РЕАЛЬНЫМИ данными
клиента, а в НРД ушла копия с подменённым блоком инвестора (тест-инвестор). Над XML теперь
выводится предупреждение «В НРД отправлены ПОДМЕНЁННЫЕ данные, не эти» с указанием, под чьими
данными ушло (realTestGet по GUID → claimData.SubstAs). Без подмены — текст как раньше.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
fontvielle
2026-10-13 17:35:04 +03:00
parent 2e9b92f0e0
commit f4311f1fa5
2 changed files with 20 additions and 4 deletions
+12 -3
View File
@@ -507,7 +507,10 @@ type claimData struct {
Watch *OrderWatch
DepoL *DepoLink
Depo *OutgoingDeal // депозитарное поручение 16 (списание) по этой сделке, если черновик пришёл
Flash string
// Подмена личности (режим эмуляции НРД «подмена»): в НРД ушли данные тест-инвестора вместо
// клиента. SubstAs — под чьими данными ушло; этот XML в карточке — наша запись с реальным клиентом.
SubstAs string
Flash string
Fail *SendFailure // последняя неудачная отправка в НРД (sendfail.go)
}
@@ -758,10 +761,16 @@ func (a *admin) renderClaim(w http.ResponseWriter, r *http.Request, svc *Service
if view.M2MGUID != "" {
fail = sendFailGet(string(view.M2MGUID))
}
substAs := ""
if view.M2MGUID != "" {
if rt := realTestGet(string(view.M2MGUID)); rt != nil {
substAs = rt.As // в НРД ушли данные тест-инвестора вместо клиента (режим «подмена»)
}
}
render(w, a.claim, claimData{
Quik: quik, Watch: watch, DepoL: depoL, Fail: fail,
page: nowPage("Заявка", "claims"),
Claim: view, Depo: depo, Flash: r.URL.Query().Get("flash"),
page: nowPage("Заявка", "claims"),
Claim: view, Depo: depo, SubstAs: substAs, Flash: r.URL.Query().Get("flash"),
})
}
@@ -249,8 +249,15 @@
{{if .Claim.RequestRawXML}}
<div class="card">
<h2>Отправленный пакет (M2MTransferRequest)</h2>
<h2>Отправленный пакет (M2MTransferRequest){{if .SubstAs}} <span class="badge awaiting_decision">подмена личности</span>{{end}}</h2>
{{if .SubstAs}}
<div class="dq-warn" style="margin:0 0 10px;padding:12px 14px;border-radius:8px;background:var(--warn-weak,#fbf3d9)">
<b>⚠ В НРД отправлены ПОДМЕНЁННЫЕ данные, не эти.</b> Режим эмуляции «Подмена личности»: в пакете, ушедшем в НРД, блок инвестора заменён на тест-инвестора <b>{{.SubstAs}}</b>. XML ниже — наша запись с <b>реальными данными клиента</b> (так заявка пришла из ЛК); в НРД реальные данные клиента НЕ отправлялись.
</div>
<p class="muted">XML ниже — исходная заявка клиента (наша запись). В НРД ушла её копия с подменённым блоком инвестора ({{.SubstAs}}), подписанная ИШ. Тип пакета <code>#M2MTR</code>.</p>
{{else}}
<p class="muted">Точный XML, который bj-server сформировал и ИШ подписал ключом и отправил в НРД. Тип пакета <code>#M2MTR</code>.</p>
{{end}}
<a class="btn btn-ok" href="/admin/claims/{{.Claim.ID}}/request.xml" download style="margin-right:8px">⤓ Скачать XML запроса</a>
<button type="button" class="btn" onclick="copyReq(this)">Скопировать</button>
<pre id="raw-request" style="white-space:pre-wrap;word-break:break-all;background:var(--surface-2,#f5f5f7);padding:12px;border-radius:8px;font-size:12px;overflow:auto;max-height:340px">{{.Claim.RequestRawXML}}</pre>