//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) } }