fix: query

This commit is contained in:
2025-12-20 21:41:41 +08:00
parent 3313c3aa7d
commit be8a57c649
15 changed files with 65 additions and 81 deletions

View File

@@ -4,6 +4,7 @@ import (
"context"
"time"
"quyun/v2/app/http/dto"
"quyun/v2/app/requests"
"quyun/v2/database"
"quyun/v2/database/models"
@@ -28,17 +29,20 @@ func (m *posts) IncrViewCount(ctx context.Context, postID int64) error {
}
// List
func (m *posts) List(
ctx context.Context,
pagination *requests.Pagination,
conds ...gen.Condition,
) (*requests.Pager, error) {
pagination.Format()
func (m *posts) List(ctx context.Context, filter *dto.PostListQuery) (*requests.Pager, error) {
filter.Pagination.Format()
// conds := []gen.Condition{}
tbl, query := models.PostQuery.QueryContext(ctx)
items, cnt, err := query.Where(conds...).
Order(tbl.ID.Desc()).
FindByPage(int(pagination.Offset()), int(pagination.Limit))
query = query.Order(tbl.ID.Desc())
if filter.Keyword != nil && *filter.Keyword != "" {
keyword := database.WrapLike(*filter.Keyword)
query = query.Where(tbl.Title.Like(keyword))
}
items, cnt, err := query.FindByPage(int(filter.Offset()), int(filter.Limit))
if err != nil {
return nil, errors.Wrap(err, "list post failed")
}
@@ -46,7 +50,7 @@ func (m *posts) List(
return &requests.Pager{
Items: items,
Total: cnt,
Pagination: *pagination,
Pagination: *filter.Pagination,
}, nil
}