fix(sitemap): set question id by default

This commit is contained in:
LinkinStars 2023-06-28 11:43:13 +08:00
parent cbf7da18c7
commit ac91dc5259
5 changed files with 15 additions and 8 deletions

View File

@ -174,7 +174,7 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
questionActivityRepo := activity.NewQuestionActivityRepo(dataData, activityRepo, userRankRepo)
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, questionActivityRepo)
questionService := service.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, revisionService, metaService, collectionCommon, answerActivityService, dataData, emailService, notificationQueueService, activityQueueService)
questionService := service.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, revisionService, metaService, collectionCommon, answerActivityService, emailService, notificationQueueService, activityQueueService, siteInfoCommonService)
answerService := service.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, notificationQueueService, activityQueueService)
questionController := controller.NewQuestionController(questionService, answerService, rankService, siteInfoCommonService)
answerController := controller.NewAnswerController(answerService, rankService)

View File

@ -30,7 +30,7 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) {
return
}
questions, err := t.questionRepo.SitemapQuestions(ctx, 0, constant.SitemapMaxSize)
questions, err := t.questionRepo.SitemapQuestions(ctx, 1, constant.SitemapMaxSize)
if err != nil {
log.Errorf("get sitemap questions failed: %s", err)
return

View File

@ -253,6 +253,7 @@ func (qr *questionRepo) GetQuestionCountByIDs(ctx context.Context, ids []string)
func (qr *questionRepo) SitemapQuestions(ctx context.Context, page, pageSize int) (
questionIDList []*schema.SiteMapQuestionInfo, err error) {
page = page - 1
questionIDList = make([]*schema.SiteMapQuestionInfo, 0)
// try to get sitemap data from cache
@ -278,7 +279,7 @@ func (qr *questionRepo) SitemapQuestions(ctx context.Context, page, pageSize int
// warp data
for _, question := range rows {
item := &schema.SiteMapQuestionInfo{}
item := &schema.SiteMapQuestionInfo{ID: question.ID}
if handler.GetEnableShortID(ctx) {
item.ID = uid.EnShortID(question.ID)
}

View File

@ -558,7 +558,7 @@ func (qs *QuestionCommon) SitemapCron(ctx context.Context) {
return
}
if questionNum <= constant.SitemapMaxSize {
_, err = qs.questionRepo.SitemapQuestions(ctx, 0, int(questionNum))
_, err = qs.questionRepo.SitemapQuestions(ctx, 1, int(questionNum))
if err != nil {
log.Errorf("get site map question error: %v", err)
}

View File

@ -3,11 +3,11 @@ package service
import (
"encoding/json"
"fmt"
"github.com/answerdev/answer/internal/service/siteinfo_common"
"strings"
"time"
"github.com/answerdev/answer/internal/base/constant"
"github.com/answerdev/answer/internal/base/data"
"github.com/answerdev/answer/internal/base/handler"
"github.com/answerdev/answer/internal/base/pager"
"github.com/answerdev/answer/internal/base/reason"
@ -50,10 +50,10 @@ type QuestionService struct {
metaService *meta.MetaService
collectionCommon *collectioncommon.CollectionCommon
answerActivityService *activity.AnswerActivityService
data *data.Data
emailService *export.EmailService
notificationQueueService notice_queue.NotificationQueueService
activityQueueService activity_queue.ActivityQueueService
siteInfoService siteinfo_common.SiteInfoCommonService
}
func NewQuestionService(
@ -66,10 +66,10 @@ func NewQuestionService(
metaService *meta.MetaService,
collectionCommon *collectioncommon.CollectionCommon,
answerActivityService *activity.AnswerActivityService,
data *data.Data,
emailService *export.EmailService,
notificationQueueService notice_queue.NotificationQueueService,
activityQueueService activity_queue.ActivityQueueService,
siteInfoService siteinfo_common.SiteInfoCommonService,
) *QuestionService {
return &QuestionService{
questionRepo: questionRepo,
@ -81,10 +81,10 @@ func NewQuestionService(
metaService: metaService,
collectionCommon: collectionCommon,
answerActivityService: answerActivityService,
data: data,
emailService: emailService,
notificationQueueService: notificationQueueService,
activityQueueService: activityQueueService,
siteInfoService: siteInfoService,
}
}
@ -1339,5 +1339,11 @@ func (qs *QuestionService) changeQuestionToRevision(ctx context.Context, questio
}
func (qs *QuestionService) SitemapCron(ctx context.Context) {
siteSeo, err := qs.siteInfoService.GetSiteSeo(ctx)
if err != nil {
log.Error(err)
return
}
ctx = context.WithValue(ctx, constant.ShortIDFlag, siteSeo.IsShortLink())
qs.questioncommon.SitemapCron(ctx)
}