优化线下结算筛选
This commit is contained in:
@@ -136,12 +136,13 @@ type CancelRequest struct {
|
||||
}
|
||||
|
||||
type AdminPickupQuery struct {
|
||||
Page int
|
||||
PageSize int
|
||||
Keyword string
|
||||
Status string
|
||||
ShopName string
|
||||
AccountSource string
|
||||
Page int
|
||||
PageSize int
|
||||
Keyword string
|
||||
Status string
|
||||
ShopName string
|
||||
AccountSource string
|
||||
OfflineSettlementStatus string
|
||||
}
|
||||
|
||||
type SellerPickupQuery struct {
|
||||
|
||||
@@ -54,12 +54,13 @@ func parsePagination(c *gin.Context) (int, int) {
|
||||
func parseAdminQuery(c *gin.Context) AdminPickupQuery {
|
||||
page, pageSize := parsePagination(c)
|
||||
return AdminPickupQuery{
|
||||
Page: page,
|
||||
PageSize: pageSize,
|
||||
Keyword: c.Query("keyword"),
|
||||
Status: c.Query("status"),
|
||||
ShopName: c.Query("shop_name"),
|
||||
AccountSource: c.Query("account_source"),
|
||||
Page: page,
|
||||
PageSize: pageSize,
|
||||
Keyword: c.Query("keyword"),
|
||||
Status: c.Query("status"),
|
||||
ShopName: c.Query("shop_name"),
|
||||
AccountSource: c.Query("account_source"),
|
||||
OfflineSettlementStatus: c.Query("offline_settlement_status"),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -687,6 +687,9 @@ func (r *Repository) ListAdmin(ctx context.Context, query AdminPickupQuery) (*Pa
|
||||
if accountSource := strings.TrimSpace(query.AccountSource); accountSource != "" {
|
||||
db = db.Where("p.account_source = ?", accountSource)
|
||||
}
|
||||
if offlineSettlementStatus := strings.TrimSpace(query.OfflineSettlementStatus); offlineSettlementStatus != "" {
|
||||
db = db.Where("p.offline_settlement_status = ?", offlineSettlementStatus)
|
||||
}
|
||||
if kw := strings.TrimSpace(query.Keyword); kw != "" {
|
||||
like := "%" + kw + "%"
|
||||
db = db.Where(
|
||||
|
||||
@@ -175,6 +175,32 @@ func TestRepositoryListAdminFiltersOwnerPhone(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRepositoryListAdminFiltersOfflineSettlementStatus(t *testing.T) {
|
||||
repo, db := newPickupTestRepo(t)
|
||||
first := seedPickup(t, db, StatusCompleted)
|
||||
if err := db.Model(&first).Updates(map[string]any{
|
||||
"settlement_mode": SettlementModePlatformManaged,
|
||||
"offline_settlement_status": OfflineSettlementStatusPending,
|
||||
}).Error; err != nil {
|
||||
t.Fatalf("设置待线下结算提号失败: %v", err)
|
||||
}
|
||||
second := first
|
||||
second.ID = 0
|
||||
second.PickupNo = "PK-OFFLINE-SETTLED-001"
|
||||
second.OfflineSettlementStatus = OfflineSettlementStatusSettled
|
||||
if err := db.Create(&second).Error; err != nil {
|
||||
t.Fatalf("创建已线下结算提号失败: %v", err)
|
||||
}
|
||||
|
||||
result, err := repo.ListAdmin(t.Context(), AdminPickupQuery{OfflineSettlementStatus: OfflineSettlementStatusPending})
|
||||
if err != nil {
|
||||
t.Fatalf("ListAdmin() error = %v", err)
|
||||
}
|
||||
if result.Total != 1 || len(result.Items) != 1 || result.Items[0].OfflineSettlementStatus != OfflineSettlementStatusPending {
|
||||
t.Fatalf("待线下结算筛选结果 = %+v", result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRepositoryListShopNamesReturnsDistinctPlatformOptions(t *testing.T) {
|
||||
repo, db := newPickupTestRepo(t)
|
||||
first := seedPickup(t, db, StatusPickingUp)
|
||||
|
||||
Reference in New Issue
Block a user