package admin import ( "quyun/v2/app/requests" "quyun/v2/app/services" "quyun/v2/database/models" "github.com/gofiber/fiber/v3" "go.ipao.vip/gen" ) type OrderListQuery struct { OrderNumber *string `query:"order_number"` UserID *int64 `query:"user_id"` } // @provider type orders struct{} // List // // @Summary 订单列表 // @Tags Admin Orders // @Produce json // @Param pagination query requests.Pagination false "分页参数" // @Param query query OrderListQuery false "筛选条件" // @Success 200 {object} requests.Pager{items=services.OrderListItem} "成功" // @Router /admin/orders [get] // @Bind pagination query // @Bind query query func (ctl *orders) List( ctx fiber.Ctx, pagination *requests.Pagination, query *OrderListQuery, ) (*requests.Pager, error) { conds := []gen.Condition{} if query.OrderNumber != nil { conds = append(conds, models.OrderQuery.OrderNo.Eq(*query.OrderNumber)) } if query.UserID != nil { conds = append(conds, models.OrderQuery.UserID.Eq(*query.UserID)) } return services.Orders.List(ctx, pagination, conds...) } // Refund // // @Summary 订单退款 // @Tags Admin Orders // @Produce json // @Param id path int64 true "订单 ID" // @Success 200 {object} any "成功" // @Router /admin/orders/:id/refund [post] // @Bind order path key(id) model(id) func (ctl *orders) Refund(ctx fiber.Ctx, order *models.Order) error { return services.Orders.Refund(ctx, order) }