From c540091ef9a61d8dd1f7e95487635120146c1bb2 Mon Sep 17 00:00:00 2001 From: shanshanzhong147 Date: Tue, 2 Jun 2026 22:04:16 -0700 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D(#143):=20=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=9D=83=E7=9B=8A=E6=9F=A5=E8=AF=A2=E6=8E=92=E5=BA=8F=EF=BC=8C?= =?UTF-8?q?=E6=B6=88=E9=99=A4=20map=20=E8=BF=AD=E4=BB=A3=E5=BA=8F=20flake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes HIF-143. 让 `inviteeAndInviterIds` 在 append 后 `slices.Sort` 升序,让 sqlmock IN 参数匹配稳定,同时让生产 SQL EXPLAIN 计划稳定。修复 GitHub Actions Deploy Staging 自 2026-06-03 03:51 起连续 8 次 `go test ./...` 失败问题。 测试: go test -count=10 修复前 4/10 fail, 修复后 30/30 pass. 改动: 2 files, +4/-2 (internal/logic/admin/invite/{benefits.go,benefits_test.go}) --- internal/logic/admin/invite/benefits.go | 2 ++ internal/logic/admin/invite/benefits_test.go | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/logic/admin/invite/benefits.go b/internal/logic/admin/invite/benefits.go index 7c0fe66..d826f43 100644 --- a/internal/logic/admin/invite/benefits.go +++ b/internal/logic/admin/invite/benefits.go @@ -2,6 +2,7 @@ package invite import ( "context" + "slices" modellog "github.com/perfect-panel/server/internal/model/log" "github.com/perfect-panel/server/pkg/xerr" @@ -113,6 +114,7 @@ func QueryBenefits(ctx context.Context, db *gorm.DB, relations []InviteRelation) for userId := range inviteeAndInviterSet { inviteeAndInviterIds = append(inviteeAndInviterIds, userId) } + slices.Sort(inviteeAndInviterIds) if err := fillCommissionBenefits(ctx, db, result, orderToInvitee, inviteeToInviter, orderNos, inviterIds); err != nil { return nil, err diff --git a/internal/logic/admin/invite/benefits_test.go b/internal/logic/admin/invite/benefits_test.go index 322490c..844ae0a 100644 --- a/internal/logic/admin/invite/benefits_test.go +++ b/internal/logic/admin/invite/benefits_test.go @@ -25,7 +25,7 @@ func TestQueryBenefitsCountsFamilyOwnerGiftAsInviteeGift(t *testing.T) { WithArgs(33, int64(100), "family-order", 331, 332). WillReturnRows(sqlmock.NewRows([]string{"object_id", "content"})) mock.ExpectQuery("object_id IN"). - WithArgs(34, int64(900), int64(200), int64(100), "family-order"). + WithArgs(34, int64(100), int64(200), int64(900), "family-order"). WillReturnRows(sqlmock.NewRows([]string{"object_id", "content"}). AddRow(900, `{"type":341,"order_no":"family-order","amount":7,"balance":7,"remark":"邀请赠送"}`)) @@ -58,7 +58,7 @@ func TestQueryBenefitsKeepsDirectInviteeGift(t *testing.T) { WithArgs(33, int64(100), "direct-order", 331, 332). WillReturnRows(sqlmock.NewRows([]string{"object_id", "content"})) mock.ExpectQuery("object_id IN"). - WithArgs(34, int64(200), int64(100), "direct-order"). + WithArgs(34, int64(100), int64(200), "direct-order"). WillReturnRows(sqlmock.NewRows([]string{"object_id", "content"}). AddRow(200, `{"type":341,"order_no":"direct-order","amount":5,"balance":5,"remark":"邀请赠送"}`))