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
+16 -3
View File
@@ -27,6 +27,13 @@ var innerCodeStatusOptions = []InnerCodeStatusOption{
{string(model.InnerCodeNeedsCheck), "需核对"},
}
// 档口入库码的批量上限是业务安全限制,不能再复用界面每页条数。
// 删除只改本地数据库,可覆盖最大单页;匹配和回写会访问顺运宝,继续限制 20 条。
const (
InnerCodeDeleteBatchLimit = 100
InnerCodeRemoteBatchLimit = 20
)
// InnerCodeRowView 是正式页面的一行。
type InnerCodeRowView struct {
ID int64
@@ -66,8 +73,14 @@ func InnerCodeStatusOptions() []InnerCodeStatusOption {
return append([]InnerCodeStatusOption(nil), innerCodeStatusOptions...)
}
// ListInnerCodePage 校验筛选并返回统一 20 条 SQL 分页结果。
// ListInnerCodePage 使用默认页容量返回档口入库码列表。
func ListInnerCodePage(db *sql.DB, businessDate, status, keyword string, requestedPage int) (*InnerCodeListPage, error) {
return ListInnerCodePageWithPageSize(db, businessDate, status, keyword, requestedPage, DefaultPageSize)
}
// ListInnerCodePageWithPageSize 校验筛选并按白名单页容量执行 SQL 分页。
func ListInnerCodePageWithPageSize(db *sql.DB, businessDate, status, keyword string, requestedPage, pageSize int) (*InnerCodeListPage, error) {
pageSize = NormalizePageSize(pageSize)
status = strings.TrimSpace(status)
if !validInnerCodeStatusFilter(status) {
status = ""
@@ -78,9 +91,9 @@ func ListInnerCodePage(db *sql.DB, businessDate, status, keyword string, request
if err != nil {
return nil, err
}
totalPages := TotalPages(total)
totalPages := TotalPages(total, pageSize)
page := ClampPage(requestedPage, totalPages)
records, err := repository.ListInnerCodeRecords(db, filter, PageSize, (page-1)*PageSize)
records, err := repository.ListInnerCodeRecords(db, filter, pageSize, (page-1)*pageSize)
if err != nil {
return nil, err
}