mirror of https://gitee.com/answerdev/answer.git
fix(question): remove delete question on similar questions
This commit is contained in:
parent
c68eff2011
commit
9337f69154
|
@ -686,9 +686,9 @@ func (qc *QuestionController) UpdateQuestionInviteUser(ctx *gin.Context) {
|
||||||
handler.HandleResponse(ctx, nil, nil)
|
handler.HandleResponse(ctx, nil, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SearchByTitleLike add question title like
|
// GetSimilarQuestions fuzzy query similar questions based on title
|
||||||
// @Summary add question title like
|
// @Summary fuzzy query similar questions based on title
|
||||||
// @Description add question title like
|
// @Description fuzzy query similar questions based on title
|
||||||
// @Tags Question
|
// @Tags Question
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
|
@ -696,10 +696,9 @@ func (qc *QuestionController) UpdateQuestionInviteUser(ctx *gin.Context) {
|
||||||
// @Param title query string true "title" default(string)
|
// @Param title query string true "title" default(string)
|
||||||
// @Success 200 {object} handler.RespBody
|
// @Success 200 {object} handler.RespBody
|
||||||
// @Router /answer/api/v1/question/similar [get]
|
// @Router /answer/api/v1/question/similar [get]
|
||||||
func (qc *QuestionController) SearchByTitleLike(ctx *gin.Context) {
|
func (qc *QuestionController) GetSimilarQuestions(ctx *gin.Context) {
|
||||||
title := ctx.Query("title")
|
title := ctx.Query("title")
|
||||||
userID := middleware.GetLoginUserIDFromContext(ctx)
|
resp, err := qc.questionService.GetQuestionsByTitle(ctx, title)
|
||||||
resp, err := qc.questionService.SearchByTitleLike(ctx, title, userID)
|
|
||||||
handler.HandleResponse(ctx, err, resp)
|
handler.HandleResponse(ctx, err, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -186,10 +186,15 @@ func (qr *questionRepo) GetQuestion(ctx context.Context, id string) (
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTagBySlugName get tag by slug name
|
// GetQuestionsByTitle get question list by title
|
||||||
func (qr *questionRepo) SearchByTitleLike(ctx context.Context, title string) (questionList []*entity.Question, err error) {
|
func (qr *questionRepo) GetQuestionsByTitle(ctx context.Context, title string, pageSize int) (
|
||||||
|
questionList []*entity.Question, err error) {
|
||||||
questionList = make([]*entity.Question, 0)
|
questionList = make([]*entity.Question, 0)
|
||||||
err = qr.data.DB.Context(ctx).Table("question").Where("title like ?", "%"+title+"%").Limit(10, 0).Find(&questionList)
|
session := qr.data.DB.Context(ctx)
|
||||||
|
session.Where("status != ?", entity.QuestionStatusDeleted)
|
||||||
|
session.Where("title like ?", "%"+title+"%")
|
||||||
|
session.Limit(pageSize)
|
||||||
|
err = session.Find(&questionList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
|
return nil, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
|
||||||
}
|
}
|
||||||
|
|
|
@ -203,7 +203,7 @@ func (a *AnswerAPIRouter) RegisterAnswerAPIRouter(r *gin.RouterGroup) {
|
||||||
r.PUT("/question/status", a.questionController.CloseQuestion)
|
r.PUT("/question/status", a.questionController.CloseQuestion)
|
||||||
r.PUT("/question/operation", a.questionController.OperationQuestion)
|
r.PUT("/question/operation", a.questionController.OperationQuestion)
|
||||||
r.PUT("/question/reopen", a.questionController.ReopenQuestion)
|
r.PUT("/question/reopen", a.questionController.ReopenQuestion)
|
||||||
r.GET("/question/similar", a.questionController.SearchByTitleLike)
|
r.GET("/question/similar", a.questionController.GetSimilarQuestions)
|
||||||
|
|
||||||
// answer
|
// answer
|
||||||
r.POST("/answer", a.answerController.Add)
|
r.POST("/answer", a.answerController.Add)
|
||||||
|
|
|
@ -40,7 +40,7 @@ type QuestionRepo interface {
|
||||||
UpdateQuestionStatus(ctx context.Context, question *entity.Question) (err error)
|
UpdateQuestionStatus(ctx context.Context, question *entity.Question) (err error)
|
||||||
UpdateQuestionStatusWithOutUpdateTime(ctx context.Context, question *entity.Question) (err error)
|
UpdateQuestionStatusWithOutUpdateTime(ctx context.Context, question *entity.Question) (err error)
|
||||||
UpdateQuestionOperation(ctx context.Context, question *entity.Question) (err error)
|
UpdateQuestionOperation(ctx context.Context, question *entity.Question) (err error)
|
||||||
SearchByTitleLike(ctx context.Context, title string) (questionList []*entity.Question, err error)
|
GetQuestionsByTitle(ctx context.Context, title string, pageSize int) (questionList []*entity.Question, err error)
|
||||||
UpdatePvCount(ctx context.Context, questionID string) (err error)
|
UpdatePvCount(ctx context.Context, questionID string) (err error)
|
||||||
UpdateAnswerCount(ctx context.Context, questionID string, num int) (err error)
|
UpdateAnswerCount(ctx context.Context, questionID string, num int) (err error)
|
||||||
UpdateCollectionCount(ctx context.Context, questionID string, num int) (err error)
|
UpdateCollectionCount(ctx context.Context, questionID string, num int) (err error)
|
||||||
|
|
|
@ -1103,14 +1103,18 @@ func (qs *QuestionService) SearchUserTopList(ctx context.Context, userName strin
|
||||||
return userQuestionlist, userAnswerlist, nil
|
return userQuestionlist, userAnswerlist, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// SearchByTitleLike
|
// GetQuestionsByTitle get questions by title
|
||||||
func (qs *QuestionService) SearchByTitleLike(ctx context.Context, title string, loginUserID string) ([]*schema.QuestionBaseInfo, error) {
|
func (qs *QuestionService) GetQuestionsByTitle(ctx context.Context, title string) (
|
||||||
list := make([]*schema.QuestionBaseInfo, 0)
|
resp []*schema.QuestionBaseInfo, err error) {
|
||||||
dblist, err := qs.questionRepo.SearchByTitleLike(ctx, title)
|
resp = make([]*schema.QuestionBaseInfo, 0)
|
||||||
if err != nil {
|
if len(title) == 0 {
|
||||||
return list, err
|
return resp, nil
|
||||||
}
|
}
|
||||||
for _, question := range dblist {
|
questions, err := qs.questionRepo.GetQuestionsByTitle(ctx, title, 10)
|
||||||
|
if err != nil {
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
for _, question := range questions {
|
||||||
item := &schema.QuestionBaseInfo{}
|
item := &schema.QuestionBaseInfo{}
|
||||||
item.ID = question.ID
|
item.ID = question.ID
|
||||||
item.Title = question.Title
|
item.Title = question.Title
|
||||||
|
@ -1125,10 +1129,9 @@ func (qs *QuestionService) SearchByTitleLike(ctx context.Context, title string,
|
||||||
if question.AcceptedAnswerID != "0" {
|
if question.AcceptedAnswerID != "0" {
|
||||||
item.AcceptedAnswer = true
|
item.AcceptedAnswer = true
|
||||||
}
|
}
|
||||||
list = append(list, item)
|
resp = append(resp, item)
|
||||||
}
|
}
|
||||||
|
return resp, nil
|
||||||
return list, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SimilarQuestion
|
// SimilarQuestion
|
||||||
|
|
Loading…
Reference in New Issue