diff --git a/internal/service/post/posts.go b/internal/service/post/posts.go index f26f7ac..3e6b819 100644 --- a/internal/service/post/posts.go +++ b/internal/service/post/posts.go @@ -59,7 +59,23 @@ func (s *Service) CreatePost(c context.Context, applicationEntity *entity.Applic } func (s *Service) DeletePost(c context.Context, post *entity.Post) error { - _, err := s.dao.WithContext(c).Post.Delete(post) + // 删除所有关联的标签 + _, err := s.dao.UserLike.Where(s.dao.UserLike.PostId.Eq(post.Id.Uint())).Delete() + if err != nil { + return err + } + + _, err = s.dao.PostTag.Where(s.dao.PostTag.PostId.Eq(post.Id.Uint())).Delete() + if err != nil { + return err + } + + err = s.RemovePostEmbedding(c, post) + if err != nil { + return err + } + + _, err = s.dao.WithContext(c).Post.Delete(post) return err } diff --git a/internal/service/post/tags.go b/internal/service/post/tags.go index a4ded50..ec9a195 100644 --- a/internal/service/post/tags.go +++ b/internal/service/post/tags.go @@ -2,6 +2,7 @@ package post import ( "context" + "fmt" entity2 "github.com/milvus-io/milvus-sdk-go/v2/entity" "leafdev.top/Ecosystem/recommender/internal/entity" ) @@ -142,3 +143,10 @@ func (s *Service) SavePostEmbedding(c context.Context, post *entity.Post) error return err } + +func (s *Service) RemovePostEmbedding(c context.Context, post *entity.Post) error { + var filter = fmt.Sprintf(`psot_id == %d`, post.Id) + errDelete := s.milvus.Delete(c, s.config.Milvus.PostCollection, "", filter) + + return errDelete +}