From 5d6109bb527d00742a27e90548232e72ed76c472 Mon Sep 17 00:00:00 2001 From: zhengchiliu <857493511@qq.com> Date: Mon, 14 Sep 2026 01:53:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=A4=E6=98=93=E5=8D=95?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- internal/dto/order.go | 7 ++++--- internal/mysqldao/order.go | 14 +++++++++----- internal/service/order.go | 11 ++++++----- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 8ef64ef..b41abde 100644 --- a/README.md +++ b/README.md @@ -162,7 +162,7 @@ curl http://localhost:8081/ping | 方法 | 路径 | 说明 | | --- | --- | --- | -| GET | `/orders` | 订单列表(query:page/page_size/order_no/user_id/status) | +| GET | `/orders` | 订单列表(query:page/page_size/order_no/transaction_id/user_id/status) | | GET | `/orders/:orderNo` | 订单详情 | | GET | `/refunds` | 退款单列表(query:page/page_size/status/order_no) | | POST | `/refunds/:refundNo/approve` | 审核通过(待处理→退款中) | diff --git a/internal/dto/order.go b/internal/dto/order.go index 98b13e7..18e0f94 100644 --- a/internal/dto/order.go +++ b/internal/dto/order.go @@ -3,9 +3,10 @@ package dto // OrderListRequest 订单列表请求。 type OrderListRequest struct { PageRequest - OrderNo string `form:"order_no"` // 订单号(精确) - UserID int64 `form:"user_id"` // 用户 ID - Status int8 `form:"status" binding:"omitempty,oneof=1 2 3 4 5"` + OrderNo string `form:"order_no"` // 订单号(精确) + TransactionID string `form:"transaction_id"` // 微信交易号(精确) + UserID int64 `form:"user_id"` // 用户 ID + Status int8 `form:"status" binding:"omitempty,oneof=1 2 3 4 5"` } // OrderItem 订单信息(金额单位:分)。 diff --git a/internal/mysqldao/order.go b/internal/mysqldao/order.go index 58ee4c2..df1dd50 100644 --- a/internal/mysqldao/order.go +++ b/internal/mysqldao/order.go @@ -20,11 +20,12 @@ func NewOrderDao() *OrderDao { // OrderListParams 订单分页列表筛选参数。 type OrderListParams struct { - OrderNo string // 订单号(精确) - UserID int64 // 用户 ID,0 表示全部 - Status int8 // 订单状态,0 表示全部 - Page int - Size int + OrderNo string // 订单号(精确) + TransactionID string // 微信交易号(精确) + UserID int64 // 用户 ID,0 表示全部 + Status int8 // 订单状态,0 表示全部 + Page int + Size int } // OrderList 分页查询订单 @@ -38,6 +39,9 @@ func (d *OrderDao) OrderList(ctx context.Context, p OrderListParams) ([]mysqlmod if p.OrderNo != "" { q = q.Where("order_no = ?", p.OrderNo) } + if p.TransactionID != "" { + q = q.Where("transaction_id = ?", p.TransactionID) + } if p.UserID != 0 { q = q.Where("user_id = ?", p.UserID) } diff --git a/internal/service/order.go b/internal/service/order.go index bd2a2b3..858d42b 100644 --- a/internal/service/order.go +++ b/internal/service/order.go @@ -33,11 +33,12 @@ func (s *OrderService) List(ctx context.Context, request *dto.OrderListRequest) page, pageSize := normalizePage(request.Page, request.PageSize) list, total, err := s.orderDao.OrderList(ctx, mysqldao.OrderListParams{ - OrderNo: strings.TrimSpace(request.OrderNo), - UserID: request.UserID, - Status: request.Status, - Page: page, - Size: pageSize, + OrderNo: strings.TrimSpace(request.OrderNo), + TransactionID: strings.TrimSpace(request.TransactionID), + UserID: request.UserID, + Status: request.Status, + Page: page, + Size: pageSize, }) if err != nil { return nil, errcode.DatabaseError