diff --git a/biz/document.go b/biz/document.go index c521ade..6da8abe 100644 --- a/biz/document.go +++ b/biz/document.go @@ -3,6 +3,7 @@ package biz import ( "context" "fmt" + "html" "net/url" "os" "path/filepath" @@ -701,6 +702,12 @@ func (s *DocumentAPIService) DownloadDocument(ctx context.Context, req *pb.Docum return res, status.Errorf(codes.Internal, "创建下载失败:%s", err.Error()) } + s.dbModel.CreateDynamic(&model.Dynamic{ + UserId: userId, + Type: model.DynamicTypeDownload, + Content: fmt.Sprintf(`下载了文档《%s》`, doc.Id, html.EscapeString(doc.Title)), + }) + link, err := s.generateDownloadURL(doc, cfg, attachment.Hash) if err != nil { return res, status.Errorf(codes.Internal, "生成下载地址失败:%s", err.Error()) diff --git a/model/comment.go b/model/comment.go index dee927a..79fd7d1 100644 --- a/model/comment.go +++ b/model/comment.go @@ -4,6 +4,8 @@ import ( // "fmt" // "strings" "errors" + "fmt" + "html" "strings" "time" @@ -36,6 +38,9 @@ func (Comment) TableName() string { // CreateComment 创建Comment func (m *DBModel) CreateComment(comment *Comment) (err error) { + doc := &Document{} + m.db.Where("id = ?", comment.DocumentId).Select("id", "title").Find(doc) + tx := m.db.Begin() defer func() { if err != nil { @@ -65,6 +70,10 @@ func (m *DBModel) CreateComment(comment *Comment) (err error) { return } + dynamic := &Dynamic{ + UserId: comment.UserId, + Type: DynamicTypeComment, + } // 更新上级评论的评论数 if comment.ParentId > 0 { err = tx.Model(&Comment{}).Where("id = ?", comment.ParentId).Update("comment_count", gorm.Expr("comment_count + ?", 1)).Error @@ -72,6 +81,15 @@ func (m *DBModel) CreateComment(comment *Comment) (err error) { m.logger.Error("CreateComment", zap.Error(err)) return } + dynamic.Content = fmt.Sprintf(`在文档《%s》中回复了评论`, doc.Id, html.EscapeString(doc.Title)) + } else { + dynamic.Content = fmt.Sprintf(`评论了文档《%s》`, doc.Id, html.EscapeString(doc.Title)) + } + + // 增加评论动态 + err = tx.Create(dynamic).Error + if err != nil { + m.logger.Error("CreateComment", zap.Error(err)) } return