From b7a968255262cd9be9a345beaec9350395ac9d42 Mon Sep 17 00:00:00 2001 From: luorijun Date: Tue, 6 Jan 2026 15:33:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E8=AE=A4=E9=A2=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/handlers/resource.go | 2 +- web/handlers/user.go | 34 ++++++++++++++++++++++++++++++++++ web/routes.go | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/web/handlers/resource.go b/web/handlers/resource.go index 17247c3..6f3a3fb 100644 --- a/web/handlers/resource.go +++ b/web/handlers/resource.go @@ -191,7 +191,7 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error { return err } - list, total, err := q.Resource.Debug(). + list, total, err := q.Resource. LeftJoin(q.ResourceShort, q.ResourceShort.ResourceID.EqCol(q.Resource.ID)). Where(q.Resource.Type.Eq(int(m.ResourceTypeShort))). FindByPage(req.GetOffset(), req.GetLimit()) diff --git a/web/handlers/user.go b/web/handlers/user.go index 7e7c98f..56f2dfc 100644 --- a/web/handlers/user.go +++ b/web/handlers/user.go @@ -43,6 +43,40 @@ func PageUserByAdmin(c *fiber.Ctx) error { }) } +// 绑定管理员 +func BindAdmin(c *fiber.Ctx) error { + // 检查权限 + authCtx, err := auth.GetAuthCtx(c).PermitAdmin() + if err != nil { + return err + } + + // 解析请求参数 + req := new(struct { + UserID int `json:"user_id" validate:"required"` + }) + if err := g.Validator.ParseBody(c, req); err != nil { + return err + } + + // 更新用户信息 + result, err := q.User.Where( + q.User.ID.Eq(int32(req.UserID)), + q.User.AdminID.IsNull(), + ).UpdateColumnSimple( + q.User.AdminID.Value(authCtx.Admin.ID), + ) + if err != nil { + return err + } + if result.RowsAffected == 0 { + return core.NewBizErr("用户已绑定管理员") + } + + // 返回结果 + return c.SendStatus(fiber.StatusNoContent) +} + // 更新用户 func UpdateUser(c *fiber.Ctx) error { // 检查权限 diff --git a/web/routes.go b/web/routes.go index 4e4f387..51bb010 100644 --- a/web/routes.go +++ b/web/routes.go @@ -109,6 +109,7 @@ func adminRouter(api fiber.Router) { // user 用户 var user = api.Group("/user") user.Post("/page", handlers.PageUserByAdmin) + user.Post("/bind", handlers.BindAdmin) // resource 套餐 var resource = api.Group("/resource")