Skip to content

Commit a5f74a6

Browse files
committed
feat(search): Refactor pagination in search syncer
1 parent 119effb commit a5f74a6

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

internal/repo/search_sync/search_sync.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package search_sync
33
import (
44
"context"
55
"github.com/answerdev/answer/internal/base/data"
6-
"github.com/answerdev/answer/internal/base/pager"
76
"github.com/answerdev/answer/internal/entity"
87
"github.com/answerdev/answer/plugin"
98
)
@@ -16,14 +15,16 @@ type PluginSyncer struct {
1615
data *data.Data
1716
}
1817

19-
func (p *PluginSyncer) GetAnswersPage(ctx context.Context, page, pageSize int) (answerList []*entity.Answer, total int64, err error) {
18+
func (p *PluginSyncer) GetAnswersPage(ctx context.Context, page, pageSize int) (answerList []*entity.Answer, err error) {
2019
answerList = make([]*entity.Answer, 0)
21-
total, err = pager.Help(page, pageSize, answerList, &entity.Answer{}, p.data.DB.Context(ctx))
22-
return answerList, total, err
20+
startNum := (page - 1) * pageSize
21+
err = p.data.DB.Context(ctx).Limit(pageSize, startNum).Find(&answerList)
22+
return answerList, err
2323
}
2424

25-
func (p *PluginSyncer) GetQuestionsPage(ctx context.Context, page, pageSize int) (questionList []*entity.Question, total int64, err error) {
25+
func (p *PluginSyncer) GetQuestionsPage(ctx context.Context, page, pageSize int) (questionList []*entity.Question, err error) {
2626
questionList = make([]*entity.Question, 0)
27-
total, err = pager.Help(page, pageSize, questionList, &entity.Question{}, p.data.DB.Context(ctx))
28-
return questionList, total, err
27+
startNum := (page - 1) * pageSize
28+
err = p.data.DB.Context(ctx).Limit(pageSize, startNum).Find(&questionList)
29+
return questionList, err
2930
}

plugin/search.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ type SearchDesc struct {
9999
}
100100

101101
type SearchSyncer interface {
102-
GetAnswersPage(ctx context.Context, page, pageSize int) (answerList []*entity.Answer, total int64, err error)
103-
GetQuestionsPage(ctx context.Context, page, pageSize int) (questionList []*entity.Question, total int64, err error)
102+
GetAnswersPage(ctx context.Context, page, pageSize int) (answerList []*entity.Answer, err error)
103+
GetQuestionsPage(ctx context.Context, page, pageSize int) (questionList []*entity.Question, err error)
104104
}
105105

106106
var (

0 commit comments

Comments
 (0)