refactor: BaseModel 主键列名统一 uid→id
- BaseModel 移除 gorm column:uid 和 json:uid 标签,统一为 id - 更新 8 个 repository 文件中 28 处 raw SQL 列引用 (uid→id) - 更新 3 个前端 JS 文件中 14 处 API 响应字段引用 (uid→id) - 添加数据库迁移 SQL 脚本 (docs/migrations/001_uid_to_id.sql)
This commit is contained in:
@ -69,7 +69,7 @@ func (r *UserRepo) ExistsByUsername(username string) (bool, error) {
|
||||
func (r *UserRepo) ExistsByEmailExclude(email string, excludeUID uint) (bool, error) {
|
||||
var count int64
|
||||
err := r.db.Model(&model.User{}).
|
||||
Where("email = ? AND uid != ?", email, excludeUID).
|
||||
Where("email = ? AND id != ?", email, excludeUID).
|
||||
Count(&count).Error
|
||||
return count > 0, err
|
||||
}
|
||||
@ -77,7 +77,7 @@ func (r *UserRepo) ExistsByEmailExclude(email string, excludeUID uint) (bool, er
|
||||
// FindByIDForAuth 认证专用查询:返回 uid/email/username/avatar/role/status
|
||||
func (r *UserRepo) FindByIDForAuth(userID uint) (*model.User, error) {
|
||||
var user model.User
|
||||
err := r.db.Select("uid", "email", "username", "avatar", "role", "status", "exp").
|
||||
err := r.db.Select("id", "email", "username", "avatar", "role", "status", "exp").
|
||||
First(&user, userID).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -88,7 +88,7 @@ func (r *UserRepo) FindByIDForAuth(userID uint) (*model.User, error) {
|
||||
// FindByIDUnscoped 管理后台专用:含软删除用户,用于解锁/封禁等操作
|
||||
func (r *UserRepo) FindByIDUnscoped(userID uint) (*model.User, error) {
|
||||
var user model.User
|
||||
err := r.db.Unscoped().Select("uid", "email", "username", "role", "status", "deleted_at").
|
||||
err := r.db.Unscoped().Select("id", "email", "username", "role", "status", "deleted_at").
|
||||
First(&user, userID).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -98,12 +98,12 @@ func (r *UserRepo) FindByIDUnscoped(userID uint) (*model.User, error) {
|
||||
|
||||
// UpdateStatus 更新用户状态(含软删除用户,locked 状态变更需要)
|
||||
func (r *UserRepo) UpdateStatus(uid uint, status string) error {
|
||||
return r.db.Unscoped().Model(&model.User{}).Where("uid = ?", uid).Update("status", status).Error
|
||||
return r.db.Unscoped().Model(&model.User{}).Where("id = ?", uid).Update("status", status).Error
|
||||
}
|
||||
|
||||
// UpdateRole 更新用户角色(仅 owner 调用)
|
||||
func (r *UserRepo) UpdateRole(uid uint, role string) error {
|
||||
return r.db.Model(&model.User{}).Where("uid = ?", uid).Update("role", role).Error
|
||||
return r.db.Model(&model.User{}).Where("id = ?", uid).Update("role", role).Error
|
||||
}
|
||||
|
||||
// Update 全量更新用户信息
|
||||
@ -113,12 +113,12 @@ func (r *UserRepo) Update(user *model.User) error {
|
||||
|
||||
// SoftDelete GORM 软删除(设 DeletedAt),用于 locked 状态释放邮箱
|
||||
func (r *UserRepo) SoftDelete(uid uint) error {
|
||||
return r.db.Where("uid = ?", uid).Delete(&model.User{}).Error
|
||||
return r.db.Where("id = ?", uid).Delete(&model.User{}).Error
|
||||
}
|
||||
|
||||
// Restore 恢复软删除(清 DeletedAt)
|
||||
func (r *UserRepo) Restore(uid uint) error {
|
||||
return r.db.Unscoped().Model(&model.User{}).Where("uid = ?", uid).Update("deleted_at", nil).Error
|
||||
return r.db.Unscoped().Model(&model.User{}).Where("id = ?", uid).Update("deleted_at", nil).Error
|
||||
}
|
||||
|
||||
// buildSearchQuery 构建搜索/筛选的公共查询条件
|
||||
@ -141,7 +141,7 @@ func (r *UserRepo) buildSearchQuery(keyword, role, status string) *gorm.DB {
|
||||
func (r *UserRepo) SearchUsers(keyword, role, status string, offset, limit int) ([]model.User, error) {
|
||||
var users []model.User
|
||||
err := r.buildSearchQuery(keyword, role, status).
|
||||
Order("uid ASC").Offset(offset).Limit(limit).Find(&users).Error
|
||||
Order("id ASC").Offset(offset).Limit(limit).Find(&users).Error
|
||||
return users, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user