diff --git a/app/rts.go b/app/rts.go index bac6ee9..6e9a689 100644 --- a/app/rts.go +++ b/app/rts.go @@ -110,6 +110,44 @@ func UpdateUser(w *ResponseWriter, r *Request) { return } + // 查询用户信息 + var u User + err = DB.First(&u, "id = ?", id).Error + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + err = NewError(1, "用户不存在") + } + w.Error(err) + return + } + + // 用户信息未发生变化 + if u.Name == user.Name && u.PhoneNumber == u.PhoneNumber && u.Password == user.Password { + w.Ok(nil, "操作成功") + return + } + + // 检查手机号码是否被使用 + var count int64 + err = DB.Model(&User{}).Where("phone_number = ? AND id != ?", user.PhoneNumber, id).Count(&count).Error + if err != nil { + w.Error(err) + return + } + if count > 0 { + w.Error(NewError(1, "手机号码已被使用")) + return + } + + // 保存用户信息 + u.Name = user.Name + u.PhoneNumber = user.PhoneNumber + u.Password = user.Password + if err := DB.Save(&u).Error; err != nil { + w.Error(err) + } else { + w.Ok(nil, "操作成功") + } } // DeleteUser 删除用户