feat: 支持主列表选择每页条数 (#242)

This commit is contained in:
chengma
2026-08-15 15:15:38 +08:00
parent 8c09023434
commit b4558537d5
37 changed files with 479 additions and 160 deletions
+10 -4
View File
@@ -81,15 +81,21 @@ type ShopeeListResult struct {
// (repository.CountShopeeProductsFiltered),分页页数据此算出,
// page 越界时兜到最后一页,见 service/pagination.go(工单 #43)。
func ListShopeeProducts(db *sql.DB, filter repository.ShopeeFilter, page int) (*ShopeeListResult, error) {
return ListShopeeProductsWithPageSize(db, filter, page, DefaultPageSize)
}
// ListShopeeProductsWithPageSize 按白名单页容量返回蝦皮商品列表。
func ListShopeeProductsWithPageSize(db *sql.DB, filter repository.ShopeeFilter, page, pageSize int) (*ShopeeListResult, error) {
pageSize = NormalizePageSize(pageSize)
total, err := repository.CountShopeeProductsFiltered(db, filter)
if err != nil {
return nil, err
}
totalPages := TotalPages(total)
totalPages := TotalPages(total, pageSize)
page = ClampPage(page, totalPages)
offset := (page - 1) * PageSize
offset := (page - 1) * pageSize
rows, err := repository.ListShopeeProducts(db, filter, PageSize, offset)
rows, err := repository.ListShopeeProducts(db, filter, pageSize, offset)
if err != nil {
return nil, err
}
@@ -105,7 +111,7 @@ func ListShopeeProducts(db *sql.DB, filter repository.ShopeeFilter, page int) (*
HasAnyProducts: hasAny > 0,
IsFiltered: strings.TrimSpace(filter.Keyword) != "" || filter.Status != "" || filter.Deleted || filter.Unlinked,
Page: page,
PageSize: PageSize,
PageSize: pageSize,
TotalPages: totalPages,
}
for _, r := range rows {