第一版完成
This commit is contained in:
139
internal/controller/user.go
Normal file
139
internal/controller/user.go
Normal file
@@ -0,0 +1,139 @@
|
||||
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})
|
||||
}
|
||||
Reference in New Issue
Block a user