From c86caeb667c2be3a50c7a3dbabddf0f36c012298 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Mon, 27 Jul 2026 13:39:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8B=E6=8F=90=E5=8F=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=90=9C=E7=B4=A2=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/modules/pickup/repository.go | 8 ++++++- .../modules/pickup/repository_test.go | 21 +++++++++++++++++++ .../features/admin/views/AdminPickupView.vue | 4 ++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/backend/internal/modules/pickup/repository.go b/backend/internal/modules/pickup/repository.go index b960ce0..1cd1fc4 100644 --- a/backend/internal/modules/pickup/repository.go +++ b/backend/internal/modules/pickup/repository.go @@ -435,7 +435,13 @@ func (r *Repository) ListAdmin(ctx context.Context, query AdminPickupQuery) (*Pa } if kw := strings.TrimSpace(query.Keyword); kw != "" { like := "%" + kw + "%" - db = db.Where("p.pickup_no LIKE ? OR l.listing_no LIKE ? OR a.title LIKE ?", like, like, like) + db = db.Where( + "p.pickup_no LIKE ? OR l.listing_no LIKE ? OR a.title LIKE ? OR owner.phone LIKE ?", + like, + like, + like, + like, + ) } return r.paginatePickups(db, query.Page, query.PageSize, false) } diff --git a/backend/internal/modules/pickup/repository_test.go b/backend/internal/modules/pickup/repository_test.go index 7de3389..15d7cf0 100644 --- a/backend/internal/modules/pickup/repository_test.go +++ b/backend/internal/modules/pickup/repository_test.go @@ -154,6 +154,27 @@ func TestRepositoryListAdminFiltersShopName(t *testing.T) { } } +func TestRepositoryListAdminFiltersOwnerPhone(t *testing.T) { + repo, db := newPickupTestRepo(t) + pickup := seedPickup(t, db, StatusPickingUp) + + result, err := repo.ListAdmin(t.Context(), AdminPickupQuery{Keyword: "000000"}) + if err != nil { + t.Fatalf("ListAdmin() error = %v", err) + } + if result.Total != 1 || len(result.Items) != 1 { + t.Fatalf("手机号搜索结果 = total %d, items %d, want 1", result.Total, len(result.Items)) + } + if result.Items[0].ID != pickup.ID || result.Items[0].OwnerPhone != "18800000000" { + t.Fatalf( + "手机号搜索结果 = id %d, phone %q, want id %d, phone 18800000000", + result.Items[0].ID, + result.Items[0].OwnerPhone, + pickup.ID, + ) + } +} + func TestRepositoryListShopNamesReturnsDistinctPlatformOptions(t *testing.T) { repo, db := newPickupTestRepo(t) first := seedPickup(t, db, StatusPickingUp) diff --git a/frontend/src/features/admin/views/AdminPickupView.vue b/frontend/src/features/admin/views/AdminPickupView.vue index a851f1d..36259cd 100644 --- a/frontend/src/features/admin/views/AdminPickupView.vue +++ b/frontend/src/features/admin/views/AdminPickupView.vue @@ -336,9 +336,9 @@ function listingOptionLabel(item: AvailableListing) {