feat: 添加用户代理字段到评论功能,支持记录用户的用户代理信息

This commit is contained in:
2025-09-12 15:54:36 +08:00
parent f1a26f5e9c
commit f7b2022f59
4 changed files with 4 additions and 0 deletions

View File

@ -32,6 +32,7 @@ func (cc *CommentController) CreateComment(ctx context.Context, c *app.RequestCo
return return
} }
req.RemoteAddr = c.RemoteAddr().String() req.RemoteAddr = c.RemoteAddr().String()
req.UserAgent = string(c.UserAgent())
commentID, err := cc.service.CreateComment(ctx, &req) commentID, err := cc.service.CreateComment(ctx, &req)
if err != nil { if err != nil {
serviceErr := errs.AsServiceError(err) serviceErr := errs.AsServiceError(err)

View File

@ -23,6 +23,7 @@ type CreateCommentReq struct {
ReplyID uint `json:"reply_id"` // 回复的评论ID ReplyID uint `json:"reply_id"` // 回复的评论ID
IsPrivate bool `json:"is_private"` // 是否私密评论默认false IsPrivate bool `json:"is_private"` // 是否私密评论默认false
RemoteAddr string `json:"remote_addr"` // 远程地址 RemoteAddr string `json:"remote_addr"` // 远程地址
UserAgent string `json:"user_agent"` // 用户代理
} }
type UpdateCommentReq struct { type UpdateCommentReq struct {

View File

@ -15,6 +15,7 @@ type Comment struct {
Depth int `gorm:"default:0"` // 评论的层级深度,从0开始计数 Depth int `gorm:"default:0"` // 评论的层级深度,从0开始计数
IsPrivate bool `gorm:"default:false"` // 是否为私密评论,私密评论只有评论者和被评论对象所有者可见 IsPrivate bool `gorm:"default:false"` // 是否为私密评论,私密评论只有评论者和被评论对象所有者可见
RemoteAddr string `gorm:"type:text"` // 远程地址 RemoteAddr string `gorm:"type:text"` // 远程地址
UserAgent string `gorm:"type:text"`
LikeCount uint64 LikeCount uint64
CommentCount uint64 CommentCount uint64
} }

View File

@ -40,6 +40,7 @@ func (cs *CommentService) CreateComment(ctx context.Context, req *dto.CreateComm
UserID: currentUser.ID, UserID: currentUser.ID,
IsPrivate: req.IsPrivate, IsPrivate: req.IsPrivate,
RemoteAddr: req.RemoteAddr, RemoteAddr: req.RemoteAddr,
UserAgent: req.UserAgent,
} }
commentID, err := repo.Comment.CreateComment(comment) commentID, err := repo.Comment.CreateComment(comment)