diff --git a/kernel/api/search.go b/kernel/api/search.go index e16e47beb..2017f5285 100644 --- a/kernel/api/search.go +++ b/kernel/api/search.go @@ -43,7 +43,7 @@ func listInvalidBlockRefs(c *gin.Context) { page = 1 } - pageSize := 32 + pageSize := 6 if nil != arg["pageSize"] { pageSize = int(arg["pageSize"].(float64)) } diff --git a/kernel/model/search.go b/kernel/model/search.go index 1c471ed46..ad77e0060 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -153,6 +153,7 @@ func ListInvalidBlockRefs(page, pageSize int) (ret []*Block, matchedBlockCount, invalidBlockIDs = gulu.Str.RemoveDuplicatedElem(invalidBlockIDs) sort.Strings(invalidBlockIDs) + allInvalidBlockIDs := invalidBlockIDs start := (page - 1) * pageSize end := page * pageSize @@ -162,17 +163,26 @@ func ListInvalidBlockRefs(page, pageSize int) (ret []*Block, matchedBlockCount, invalidBlockIDs = invalidBlockIDs[start:end] sqlBlocks := sql.GetBlocks(invalidBlockIDs) + var tmp []*sql.Block + for _, sqlBlock := range sqlBlocks { + if nil != sqlBlock { + tmp = append(tmp, sqlBlock) + } + } + sqlBlocks = tmp + ret = fromSQLBlocks(&sqlBlocks, "", 36) if 1 > len(ret) { ret = []*Block{} } - matchedBlockCount = len(ret) + matchedBlockCount = len(allInvalidBlockIDs) rootCount := map[string]bool{} - for _, block := range ret { - if nil == block { + for _, id := range allInvalidBlockIDs { + bt := treenode.GetBlockTree(id) + if nil == bt { continue } - rootCount[block.RootID] = true + rootCount[bt.RootID] = true } matchedRootCount = len(rootCount) pageCount = (matchedBlockCount + pageSize - 1) / pageSize