60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
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)
|
|
}
|