diff --git a/internal/handler/app/client_recharge_order.go b/internal/handler/app/client_recharge_order.go index 182d94d..f565dc7 100644 --- a/internal/handler/app/client_recharge_order.go +++ b/internal/handler/app/client_recharge_order.go @@ -32,7 +32,7 @@ func NewClientRechargeOrderHandler( return &ClientRechargeOrderHandler{ rechargeOrderStore: rechargeOrderStore, paymentStore: paymentStore, - logger: logger, + logger: logger, } } @@ -64,6 +64,10 @@ func (h *ClientRechargeOrderHandler) ListRechargeOrders(c *fiber.Ctx) error { PageSize: req.PageSize, UserID: &customerID, } + if assetType, assetID, ok := middleware.GetCurrentAsset(c); ok { + params.ResourceType = &assetType + params.ResourceID = &assetID + } if req.Status > 0 { params.Status = &req.Status } diff --git a/internal/store/postgres/recharge_order_store.go b/internal/store/postgres/recharge_order_store.go index 81e66a9..f39272c 100644 --- a/internal/store/postgres/recharge_order_store.go +++ b/internal/store/postgres/recharge_order_store.go @@ -131,14 +131,16 @@ func (s *RechargeOrderStore) ListByUserID(ctx context.Context, userID uint, offs } type ListRechargeOrderParams struct { - Page int - PageSize int - UserID *uint - IotCardID *uint - DeviceID *uint - Status *int - StartTime interface{} - EndTime interface{} + Page int + PageSize int + UserID *uint + IotCardID *uint + DeviceID *uint + Status *int + StartTime interface{} + EndTime interface{} + ResourceType *string + ResourceID *uint } func (s *RechargeOrderStore) List(ctx context.Context, params *ListRechargeOrderParams) ([]*model.RechargeOrder, int64, error) { @@ -159,6 +161,9 @@ func (s *RechargeOrderStore) List(ctx context.Context, params *ListRechargeOrder if params.Status != nil { query = query.Where("status = ?", *params.Status) } + if params.ResourceType != nil && params.ResourceID != nil { + query = query.Where("resource_type = ? AND resource_id = ?", *params.ResourceType, *params.ResourceID) + } if params.StartTime != nil { query = query.Where("created_at >= ?", params.StartTime) }