package controller import ( "cms-api/internal/model" "cms-api/internal/service" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/util/gconv" ) // 用户控制器 type cUser struct{} var User = &cUser{} // List 获取用户列表 func (c *cUser) List(r *ghttp.Request) { var req *model.UserListRequest if err := r.Parse(&req); err != nil { r.Response.WriteJson(&model.Response{Code: 400, Message: "参数解析失败", Data: err.Error()}) return } // 调用用户服务获取列表 userService := service.User() result, err := userService.List(r.Context(), req) if err != nil { r.Response.WriteJson(&model.Response{Code: 500, Message: "获取用户列表失败", Data: err.Error()}) return } r.Response.WriteJson(&model.Response{Code: 200, Message: "获取成功", Data: result}) } // Create 创建用户 func (c *cUser) Create(r *ghttp.Request) { var req *model.CreateUserRequest if err := r.Parse(&req); err != nil { r.Response.WriteJson(&model.Response{Code: 400, Message: "参数解析失败", Data: err.Error()}) return } // 调用用户服务创建用户 userService := service.User() err := userService.Create(r.Context(), req) if err != nil { r.Response.WriteJson(&model.Response{Code: 500, Message: "创建用户失败", Data: err.Error()}) return } r.Response.WriteJson(&model.Response{Code: 200, Message: "创建用户成功"}) } // Detail 获取用户详情 func (c *cUser) Detail(r *ghttp.Request) { id := gconv.Int(r.Get("id")) if id <= 0 { r.Response.WriteJson(&model.Response{Code: 400, Message: "用户ID无效"}) return } // 调用用户服务获取详情 userService := service.User() result, err := userService.GetById(r.Context(), id) if err != nil { r.Response.WriteJson(&model.Response{Code: 500, Message: "获取用户详情失败", Data: err.Error()}) return } if result == nil { r.Response.WriteJson(&model.Response{Code: 404, Message: "用户不存在"}) return } r.Response.WriteJson(&model.Response{Code: 200, Message: "获取成功", Data: result}) } // Update 更新用户 func (c *cUser) Update(r *ghttp.Request) { id := gconv.Int(r.Get("id")) if id <= 0 { r.Response.WriteJson(&model.Response{Code: 400, Message: "用户ID无效"}) return } var req *model.UpdateUserRequest if err := r.Parse(&req); err != nil { r.Response.WriteJson(&model.Response{Code: 400, Message: "参数解析失败", Data: err.Error()}) return } // 调用用户服务更新用户 userService := service.User() err := userService.Update(r.Context(), id, req) if err != nil { r.Response.WriteJson(&model.Response{Code: 500, Message: "更新用户失败", Data: err.Error()}) return } r.Response.WriteJson(&model.Response{Code: 200, Message: "更新用户成功"}) } // Delete 删除用户 func (c *cUser) Delete(r *ghttp.Request) { id := gconv.Int(r.Get("id")) if id <= 0 { r.Response.WriteJson(&model.Response{Code: 400, Message: "用户ID无效"}) return } // 调用用户服务删除用户 userService := service.User() err := userService.Delete(r.Context(), id) if err != nil { r.Response.WriteJson(&model.Response{Code: 500, Message: "删除用户失败", Data: err.Error()}) return } r.Response.WriteJson(&model.Response{Code: 200, Message: "删除用户成功"}) } // Login 用户登录 func (c *cUser) Login(r *ghttp.Request) { var req *model.UserLoginRequest if err := r.Parse(&req); err != nil { r.Response.WriteJson(&model.Response{Code: 400, Message: "参数解析失败", Data: err.Error()}) return } // 调用用户服务进行登录验证 userService := service.User() result, err := userService.Login(r.Context(), req) if err != nil { r.Response.WriteJson(&model.Response{Code: 500, Message: "登录失败", Data: err.Error()}) return } r.Response.WriteJson(&model.Response{Code: 200, Message: "登录成功", Data: result}) }