ЛК ЕСИА Финанс: портфель ДЕПО из DEPO — сверка каждые 10 с в проходе опроса, отправка только при изменении; настройки и «Синхронизировать сейчас»

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-09-29 16:54:43 +03:00
parent 98e17a8cb7
commit e47e6cfbdc
10 changed files with 500 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
//go:build live
package lkgateway
import (
"context"
"database/sql"
"fmt"
"os"
"testing"
)
// Дописать PARAMETERS событиям перевода, где оно пустое. EV_GUID, EV_TYPES (через запятую не нужно — два типа), EV_PARAMS, EV_GO=1.
func TestEventParamsLive(t *testing.T) {
rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json")
if err != nil {
t.Fatal(err)
}
db, err := depoEventsDB(rc)
if err != nil {
t.Fatal(err)
}
defer db.Close()
ctx := context.Background()
g, p := os.Getenv("EV_GUID"), os.Getenv("EV_PARAMS")
if os.Getenv("EV_GO") == "1" {
res, err := db.ExecContext(ctx, `UPDATE dbo.FTV_M2M_EVENTS SET PARAMETERS=@p
WHERE GUID=@g AND EVENT_TYPE IN ('BJ_ORDER_ACCEPTED','BJ_EXECUTED') AND (PARAMETERS IS NULL OR PARAMETERS='')`, sql.Named("p", p), sql.Named("g", g))
if err != nil {
t.Fatal(err)
}
n, _ := res.RowsAffected()
fmt.Println("обновлено строк:", n)
}
rows, err := db.QueryContext(ctx, `SELECT EVENT_TYPE, ISNULL(REFERENCE,''), ISNULL(STATE,''), ISNULL(PARAMETERS,''), EVENT_DATE FROM dbo.FTV_M2M_EVENTS WHERE GUID=@g ORDER BY EVENT_DATE`, sql.Named("g", g))
if err != nil {
t.Fatal(err)
}
for rows.Next() {
var ty, ref, st, pr string
var at interface{}
_ = rows.Scan(&ty, &ref, &st, &pr, &at)
fmt.Printf("%-18s %-18s %-8s %-24q %v\n", ty, ref, st, pr, at)
}
}