This commit is contained in:
张超
2025-05-27 19:01:05 +08:00
parent f02495cc7a
commit 5ffc64e1dd
16 changed files with 512 additions and 123 deletions

View File

@@ -21,7 +21,8 @@ func UsersLoginHandler(ctx *gin.Context) {
response := Response{Ctx: ctx}
var loginUser serializers.Login
if err := ctx.ShouldBind(&loginUser); err != nil {
panic(err)
response.BadRequest("请求参数错误: " + err.Error()) // 替换 panic 为错误响应
return
}
user := loginUser.GetUser()
isLoginUser := user.CheckPassword()
@@ -29,7 +30,7 @@ func UsersLoginHandler(ctx *gin.Context) {
response.BadRequest("密码错误")
return
}
token, err := jwt.GenToken(user.ID, user.Username)
token, err := jwt.GenerateToken(user)
if err != nil {
panic(err)
}
@@ -44,7 +45,8 @@ func UsersRegisterHandler(ctx *gin.Context) {
response := Response{Ctx: ctx}
var registerUser serializers.Login
if err := ctx.ShouldBind(&registerUser); err != nil {
panic(err)
response.BadRequest("请求参数错误: " + err.Error()) // 替换 panic 为错误响应
return
}
user := registerUser.GetUser()
status := user.CheckDuplicateUsername()
@@ -73,12 +75,20 @@ func UsersSetInfoHandler(ctx *gin.Context) {
response.BadRequest("获取不到参数")
return
}
currentUser := jwt.AssertUser(ctx)
if currentUser != nil {
models.DB.Model(&currentUser).Updates(jsonData)
response.Response(currentUser, nil)
// 从上下文中获取用户(假设 JWT 中间件已将用户存入 "user" 键)
user, exists := ctx.Get("user")
if !exists {
response.Unauthenticated("未登录")
return
}
currentUser, ok := user.(*models.Account) // 明确类型为 models.Account
if !ok {
response.ServerError("用户类型错误")
return
}
models.DB.Model(currentUser).Updates(jsonData)
response.Response(currentUser, nil)
}
// 修改密码
@@ -119,10 +129,14 @@ func UsersListHandler(ctx *gin.Context) {
var pager serializers.Pager
pager.InitPager(ctx)
var users []models.Account
db := models.DB.Model(&users)
total := int64(pager.Total)
db.Count(&total)
db.Offset(pager.OffSet).Limit(pager.PageSize).Find(&users)
// 先查询总记录数
var totalCount int64
models.DB.Model(&models.Account{}).Count(&totalCount)
pager.Total = int(totalCount) // 正确设置总数
// 分页查询
models.DB.Offset(pager.OffSet()).Limit(pager.PageSize).Find(&users)
pager.GetPager()
response.Response(users, pager)
}