fix: UID 类型混用统一(uint ↔ string)

- Comment.ReplyToUID string→uint, 移除 varchar(36) gorm 约束
- CommentMention.UID string→uint, 移除 varchar(36) gorm 约束
- UserSearchResult.UID string→uint
- 移除 SearchUsersByLevel 中 strconv.FormatUint 转换
- 删除 GetUserUIDByID 方法,CreateReply 直接使用 parent.UserID
- fillReplyToNames 使用 map[uint]string 替代 map[string]string
- 更新 commentStore 接口声明
- 修复前端 mention 下拉 show.html 中 u.id→u.uid
This commit is contained in:
2026-06-02 19:26:44 +08:00
parent 5911cee01c
commit 99d16190a8
6 changed files with 18 additions and 34 deletions

View File

@ -1,8 +1,6 @@
package repository
import (
"strconv"
"metazone.cc/metalab/internal/model"
"metazone.cc/metalab/internal/service"
)
@ -21,7 +19,7 @@ func (r *CommentRepo) FindMentionsByComment(commentID uint) ([]model.CommentMent
// SearchUsersByLevel 搜索指定等级及以上用户(用于@艾特),返回 uid/username/exp
func (r *CommentRepo) SearchUsersByLevel(keyword string, minLevel int, limit int) ([]struct {
UID string
UID uint
Username string
Exp int
}, error) {
@ -42,30 +40,20 @@ func (r *CommentRepo) SearchUsersByLevel(keyword string, minLevel int, limit int
Find(&list).Error
var res []struct {
UID string
UID uint
Username string
Exp int
}
for _, u := range list {
res = append(res, struct {
UID string
UID uint
Username string
Exp int
}{UID: strconv.FormatUint(uint64(u.UID), 10), Username: u.Username, Exp: u.Exp})
}{UID: u.UID, Username: u.Username, Exp: u.Exp})
}
return res, err
}
// GetUserUIDByID 通过 uint ID 获取 user 的 UID 字符串
func (r *CommentRepo) GetUserUIDByID(userID uint) (string, error) {
var uid uint
err := r.db.Table("users").Select("id").Where("id = ?", userID).Scan(&uid).Error
if err != nil {
return "", err
}
return strconv.FormatUint(uint64(uid), 10), nil
}
// GetUsernameByID 通过 userID 获取用户名(用于通知内容)
func (r *CommentRepo) GetUsernameByID(userID uint) (string, error) {
var username string