修复拉卡拉支付时间偏差

This commit is contained in:
yml2213
2026-06-07 20:42:57 +08:00
parent 44747e7bae
commit 954c3d6be3
10 changed files with 169 additions and 5 deletions
@@ -5,6 +5,7 @@ import (
"time"
"hfb_sys/backend/internal/model"
"hfb_sys/backend/internal/timeutil"
"gorm.io/datatypes"
)
@@ -131,3 +132,29 @@ func TestArchiveListingAfterCheckoutMovesListingOffline(t *testing.T) {
// - Order should enter completed or closed state
_ = time.Now()
}
func TestNewOrderNoUsesShanghaiTimeWhenLocalIsUTC(t *testing.T) {
oldLocal := time.Local
time.Local = time.UTC
defer func() {
time.Local = oldLocal
}()
loc := timeutil.ShanghaiLocation()
before := time.Now().In(loc)
orderNo, err := newOrderNo()
after := time.Now().In(loc)
if err != nil {
t.Fatalf("newOrderNo() error = %v", err)
}
if len(orderNo) != len("RO20260603123456789") {
t.Fatalf("orderNo length = %d, want %d: %s", len(orderNo), len("RO20260603123456789"), orderNo)
}
parsed, err := time.ParseInLocation("20060102150405", orderNo[2:16], loc)
if err != nil {
t.Fatalf("parse order no time: %v", err)
}
if parsed.Before(before.Add(-2*time.Second)) || parsed.After(after.Add(2*time.Second)) {
t.Fatalf("order no time = %s, want between %s and %s", parsed, before, after)
}
}