feat: 支持主列表选择每页条数 (#242)
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user