统一财务统计与线下提号出款口径

This commit is contained in:
yml2213
2026-09-03 20:44:55 +08:00
parent e418a4dfb1
commit 86a9b25d57
12 changed files with 202 additions and 49 deletions
@@ -27,7 +27,9 @@ func TestDailyPaidOrdersUsePaidAtAndIncludeCreatedPickups(t *testing.T) {
}
if err := db.Exec(`CREATE TABLE admin_pickups (
id INTEGER PRIMARY KEY,
created_at DATETIME NOT NULL
status TEXT NOT NULL,
created_at DATETIME NOT NULL,
completed_at DATETIME NULL
)`).Error; err != nil {
t.Fatalf("创建提号表失败: %v", err)
}
@@ -49,12 +51,12 @@ func TestDailyPaidOrdersUsePaidAtAndIncludeCreatedPickups(t *testing.T) {
}
}
for _, row := range [][]any{
{1, day(2)},
{2, day(2)},
{3, day(3)},
{4, day(1)},
{1, "completed", day(2), day(2)},
{2, "picking_up", day(2), nil},
{3, "completed", day(3), day(3)},
{4, "cancelled", day(1), nil},
} {
if err := db.Exec(`INSERT INTO admin_pickups (id, created_at) VALUES (?, ?)`, row...).Error; err != nil {
if err := db.Exec(`INSERT INTO admin_pickups (id, status, created_at, completed_at) VALUES (?, ?, ?, ?)`, row...).Error; err != nil {
t.Fatalf("写入提号记录失败: %v", err)
}
}
@@ -75,8 +77,8 @@ func TestDailyPaidOrdersUsePaidAtAndIncludeCreatedPickups(t *testing.T) {
for _, row := range result {
counts[row.Date] = row.PaidOrderCount
}
if counts["2026-08-02"] != 3 || counts["2026-08-03"] != 2 {
t.Fatalf("每日已付款订单 = %#v, want 8月2日为3、8月3日为2", counts)
if counts["2026-08-02"] != 2 || counts["2026-08-03"] != 2 {
t.Fatalf("每日已付款订单 = %#v, want 8月2日为2、8月3日为2", counts)
}
}
@@ -194,7 +196,9 @@ func TestPickupSummaryKeepsOriginalAndAdjustmentOnTheirOwnDates(t *testing.T) {
status TEXT NOT NULL,
settle_amount_cent INTEGER NOT NULL,
profit_amount_cent INTEGER NOT NULL,
completed_at DATETIME NULL
completed_at DATETIME NULL,
settlement_mode TEXT NOT NULL DEFAULT 'owner_wallet',
offline_settlement_status TEXT NOT NULL DEFAULT 'none'
)`).Error; err != nil {
t.Fatalf("创建提号表失败: %v", err)
}
@@ -203,7 +207,9 @@ func TestPickupSummaryKeepsOriginalAndAdjustmentOnTheirOwnDates(t *testing.T) {
pickup_id INTEGER NOT NULL,
settle_delta_cent INTEGER NOT NULL,
profit_delta_cent INTEGER NOT NULL,
created_at DATETIME NOT NULL
created_at DATETIME NOT NULL,
settlement_mode TEXT NOT NULL DEFAULT 'owner_wallet',
status TEXT NOT NULL DEFAULT 'settled'
)`).Error; err != nil {
t.Fatalf("创建提号调整表失败: %v", err)
}
@@ -267,11 +273,13 @@ func TestSummaryReturnsNormalOrderCountAndScopedExceptionCount(t *testing.T) {
)`,
`CREATE TABLE admin_pickups (
id INTEGER PRIMARY KEY, status TEXT NOT NULL, settle_amount_cent INTEGER NOT NULL,
profit_amount_cent INTEGER NOT NULL, completed_at DATETIME NULL
profit_amount_cent INTEGER NOT NULL, completed_at DATETIME NULL,
settlement_mode TEXT NOT NULL DEFAULT 'owner_wallet', offline_settlement_status TEXT NOT NULL DEFAULT 'none'
)`,
`CREATE TABLE admin_pickup_financial_adjustments (
id INTEGER PRIMARY KEY, pickup_id INTEGER NOT NULL, settle_delta_cent INTEGER NOT NULL,
profit_delta_cent INTEGER NOT NULL, created_at DATETIME NOT NULL
profit_delta_cent INTEGER NOT NULL, created_at DATETIME NOT NULL,
settlement_mode TEXT NOT NULL DEFAULT 'owner_wallet', status TEXT NOT NULL DEFAULT 'settled'
)`,
} {
if err := db.Exec(statement).Error; err != nil {