You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@answer.apache.org by li...@apache.org on 2024/10/12 02:17:28 UTC
(incubator-answer) 05/09: perf: skip link addition for same question id
This is an automated email from the ASF dual-hosted git repository.
linkinstar pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-answer.git
commit ab920ac0e148dd275c3d4774dcf1eb994f990ed8
Author: Sonui <me...@sonui.cn>
AuthorDate: Fri Oct 4 23:42:50 2024 +0800
perf: skip link addition for same question id
---
internal/service/content/answer_service.go | 10 +++++++---
internal/service/content/question_service.go | 9 +++++++--
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/internal/service/content/answer_service.go b/internal/service/content/answer_service.go
index e8842891..71e4e3d9 100644
--- a/internal/service/content/answer_service.go
+++ b/internal/service/content/answer_service.go
@@ -801,20 +801,24 @@ func (as *AnswerService) updateAnswerLink(ctx context.Context, answer *entity.An
}
}
- questionLinks = append(questionLinks, &entity.QuestionLink{
+ addLink := &entity.QuestionLink{
FromQuestionID: uid.DeShortID(answer.QuestionID),
FromAnswerID: uid.DeShortID(answer.ID),
ToQuestionID: uid.DeShortID(link.QuestionID),
ToAnswerID: uid.DeShortID(link.AnswerID),
- })
-
+ }
if link.QuestionID != "" {
retParsedText = strings.Replace(retParsedText, "#"+link.QuestionID, "<a href=\"/questions/"+link.QuestionID+"\">#"+link.QuestionID+"</a>", -1)
}
if link.AnswerID != "" {
questionID := answerCache[link.AnswerID]
+ addLink.ToQuestionID = questionID
retParsedText = strings.Replace(retParsedText, "#"+link.AnswerID, "<a href=\"/questions/"+questionID+"/"+link.AnswerID+"\">#"+link.AnswerID+"</a>", -1)
}
+ if addLink.FromQuestionID == addLink.ToQuestionID {
+ continue
+ }
+ questionLinks = append(questionLinks, addLink)
}
if err = as.questionRepo.LinkQuestion(ctx, questionLinks...); err != nil {
return retParsedText, err
diff --git a/internal/service/content/question_service.go b/internal/service/content/question_service.go
index a57d3fac..308d52bc 100644
--- a/internal/service/content/question_service.go
+++ b/internal/service/content/question_service.go
@@ -1675,20 +1675,25 @@ func (qs *QuestionService) updateQuestionLink(ctx context.Context, questionInfo
}
}
- questionLinks = append(questionLinks, &entity.QuestionLink{
+ addLink := &entity.QuestionLink{
FromQuestionID: uid.DeShortID(questionInfo.ID),
FromAnswerID: "0",
ToQuestionID: uid.DeShortID(link.QuestionID),
ToAnswerID: uid.DeShortID(link.AnswerID),
- })
+ }
if link.QuestionID != "" {
retParsedText = strings.Replace(retParsedText, "#"+link.QuestionID, "<a href=\"/questions/"+link.QuestionID+"\">#"+link.QuestionID+"</a>", -1)
}
if link.AnswerID != "" {
questionID := answerCache[link.AnswerID]
+ addLink.ToQuestionID = questionID
retParsedText = strings.Replace(retParsedText, "#"+link.AnswerID, "<a href=\"/questions/"+questionID+"/"+link.AnswerID+"\">#"+link.AnswerID+"</a>", -1)
}
+ if addLink.FromQuestionID == addLink.ToQuestionID {
+ continue
+ }
+ questionLinks = append(questionLinks, addLink)
}
if err = qs.questionRepo.LinkQuestion(ctx, questionLinks...); err != nil {
return retParsedText, err