diff --git a/backend/internal/modules/invitation/repository_test.go b/backend/internal/modules/invitation/repository_test.go index 12e070f..98860c4 100644 --- a/backend/internal/modules/invitation/repository_test.go +++ b/backend/internal/modules/invitation/repository_test.go @@ -341,7 +341,9 @@ func TestAwardSellerSideRebateTxAwardsOncePerSource(t *testing.T) { t.Fatalf("创建号主失败: %v", err) } - verifiedAt := time.Now().AddDate(0, 0, -2) // 距结算 2 天 => 首月 60% + // 距结算 2 天 => 首月 60%。 + // Truncate 到整秒:DATETIME(0) 会把小数秒四舍五入,带小数时可能进位成不足 48 小时而算作 1 天。 + verifiedAt := time.Now().AddDate(0, 0, -2).Truncate(time.Second) if err := db.Create(&model.UserInvitation{ InviterID: inviter.ID, InviteeID: seller.ID, diff --git a/backend/internal/modules/pickup/repository_test.go b/backend/internal/modules/pickup/repository_test.go index 86ea617..dc452cf 100644 --- a/backend/internal/modules/pickup/repository_test.go +++ b/backend/internal/modules/pickup/repository_test.go @@ -376,7 +376,8 @@ func TestRepositoryCompletePickupAwardsSellerInvitationRebate(t *testing.T) { } listing := seedAvailableListing(t, db, "LST-REBATE-001", "返利提号账号", false) - verifiedAt := time.Now().AddDate(0, 0, -2) // 距提号完成 2 天 => 首月 60% 档 + // 距提号完成 2 天 => 首月 60% 档;Truncate 到整秒避免 DATETIME(0) 四舍五入影响天数计算。 + verifiedAt := time.Now().AddDate(0, 0, -2).Truncate(time.Second) if err := db.Create(&model.UserInvitation{ InviterID: inviter.ID, InviteeID: listing.OwnerID,