feat: support admin order query
Some checks failed
build quyun / Build (push) Failing after 1m26s

This commit is contained in:
2025-12-20 21:19:18 +08:00
parent 40df9604d8
commit 80b94739c0
5 changed files with 53 additions and 39 deletions

View File

@@ -0,0 +1,11 @@
package dto
import "quyun/v2/app/requests"
type OrderListQuery struct {
*requests.Pagination
Keyword *string `query:"keyword"`
OrderNumber *string `query:"order_number"`
UserID *int64 `query:"user_id"`
}

View File

@@ -1,19 +1,14 @@
package admin
import (
"quyun/v2/app/http/admin/dto"
"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{}
@@ -22,27 +17,12 @@ type orders struct{}
// @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} "成功"
// @Param query query dto.OrderListQuery false "筛选条件"
// @Success 200 {object} requests.Pager{items=services.OrderListItem} "成功"
// @Router /admin/v1/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...)
func (ctl *orders) List(ctx fiber.Ctx, query *dto.OrderListQuery) (*requests.Pager, error) {
return services.Orders.List(ctx, query)
}
// Refund

View File

@@ -6,6 +6,7 @@ package admin
import (
"go.ipao.vip/gen/field"
"quyun/v2/app/http/admin/dto"
"quyun/v2/app/middlewares"
"quyun/v2/app/requests"
"quyun/v2/database/models"
@@ -80,10 +81,9 @@ func (r *Routes) Register(router fiber.Router) {
))
// Register routes for controller: orders
r.log.Debugf("Registering route: Get /admin/v1/orders -> orders.List")
router.Get("/admin/v1/orders"[len(r.Path()):], DataFunc2(
router.Get("/admin/v1/orders"[len(r.Path()):], DataFunc1(
r.orders.List,
Query[requests.Pagination]("pagination"),
Query[OrderListQuery]("query"),
Query[dto.OrderListQuery]("query"),
))
r.log.Debugf("Registering route: Post /admin/v1/orders/:id/refund -> orders.Refund")
router.Post("/admin/v1/orders/:id/refund"[len(r.Path()):], Func1(