完善 admin 接口筛选机制

This commit is contained in:
2026-03-23 14:26:10 +08:00
parent 71f1c6f141
commit 9f7160edfc
11 changed files with 380 additions and 18 deletions

View File

@@ -1,6 +1,7 @@
package handlers
import (
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
@@ -19,19 +20,45 @@ func PageBillByAdmin(c *fiber.Ctx) error {
}
// 解析请求参数
req := new(core.PageReq)
req := new(PageBillByAdminReq)
if err := g.Validator.ParseBody(c, req); err != nil {
return err
}
// 构造查询条件
do := q.Bill.Where()
if req.UserPhone != nil {
do = do.Where(q.User.Phone.Eq(*req.UserPhone))
}
if req.TradeInnerNo != nil {
do = do.Where(q.Trade.InnerNo.Eq(*req.TradeInnerNo))
}
if req.ResourceNo != nil {
do = do.Where(q.Resource.ResourceNo.Eq(*req.ResourceNo))
}
if req.BillNo != nil {
do = do.Where(q.Bill.BillNo.Eq(*req.BillNo))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Bill.CreatedAt.Gte(time))
}
if req.CreatedAtEnd != nil {
time := u.DateHead(*req.CreatedAtEnd)
do = do.Where(q.Bill.CreatedAt.Lte(time))
}
// 查询用户列表
list, total, err := q.Bill.
Joins(q.Bill.User).
list, total, err := q.Bill.Debug().
Joins(q.Bill.User, q.Bill.Resource, q.Bill.Trade).
Select(
q.Bill.ALL,
q.User.As("User").Phone.As("User__phone"),
q.User.As("User").Name.As("User__name"),
q.Trade.As("Trade").InnerNo.As("Trade__inner_no"),
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
).
Where(do).
FindByPage(req.GetOffset(), req.GetLimit())
if err != nil {
return err
@@ -46,6 +73,16 @@ func PageBillByAdmin(c *fiber.Ctx) error {
})
}
type PageBillByAdminReq struct {
core.PageReq
UserPhone *string `json:"user_phone,omitempty"`
TradeInnerNo *string `json:"trade_inner_no,omitempty"`
ResourceNo *string `json:"resource_no,omitempty"`
BillNo *string `json:"bill_no,omitempty"`
CreatedAtStart *time.Time `json:"created_at_start,omitempty"`
CreatedAtEnd *time.Time `json:"created_at_end,omitempty"`
}
// ListBill 获取账单列表
func ListBill(c *fiber.Ctx) error {
// 检查权限