完善 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

@@ -21,15 +21,46 @@ func PageUserByAdmin(c *fiber.Ctx) error {
}
// 解析请求参数
req := new(core.PageReq)
req := new(PageUserByAdminReq)
if err := g.Validator.ParseBody(c, req); err != nil {
return err
}
// 构建查询条件
do := q.User.Where()
if req.Phone != nil {
do = do.Where(q.User.Phone.Eq(*req.Phone))
}
if req.Name != nil {
do = do.Where(q.User.Name.Eq(*req.Name))
}
if req.Identified != nil {
if *req.Identified {
do = do.Where(q.User.IDType.Gt(0))
} else {
do = do.Where(q.User.IDType.Eq(0))
}
}
if req.Enabled != nil {
if *req.Enabled {
do = do.Where(q.User.Status.Eq(1))
} else {
do = do.Where(q.User.Status.Eq(0))
}
}
if req.Assigned != nil {
if *req.Assigned {
do = do.Where(q.User.AdminID.IsNotNull())
} else {
do = do.Where(q.User.AdminID.IsNull())
}
}
// 查询用户列表
users, total, err := q.User.
Preload(q.User.Admin).
Omit(q.User.Password).
Where(do).
FindByPage(req.GetOffset(), req.GetLimit())
if err != nil {
return err
@@ -52,6 +83,15 @@ func PageUserByAdmin(c *fiber.Ctx) error {
})
}
type PageUserByAdminReq struct {
core.PageReq
Phone *string `json:"phone,omitempty" validate:"omitempty,number"`
Name *string `json:"name,omitempty"`
Identified *bool `json:"identified,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
Assigned *bool `json:"assigned,omitempty"`
}
// 绑定管理员
func BindAdmin(c *fiber.Ctx) error {
// 检查权限