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")