diff --git a/kernel/model/push_reload.go b/kernel/model/push_reload.go index a010ee1d4..c1cdd274d 100644 --- a/kernel/model/push_reload.go +++ b/kernel/model/push_reload.go @@ -154,8 +154,9 @@ func refreshRefCount(rootID, blockID string) { isDoc := bt.ID == bt.RootID var rootRefIDs []string var refCount, rootRefCount int - refIDs := sql.QueryRefIDsByDefID(bt.ID, isDoc) + var refIDs []string if isDoc { + refIDs = sql.QueryRefIDsByDefID(bt.ID, isDoc) rootRefIDs = refIDs } else { rootRefIDs = sql.QueryRefIDsByDefID(bt.RootID, true) @@ -169,7 +170,7 @@ func refreshRefCount(rootID, blockID string) { defIDs = append(defIDs, bt.ID) } - util.PushSetDefRefCount(rootID, blockID, refIDs, rootRefIDs, defIDs, refCount, rootRefCount) + util.PushSetDefRefCount(rootID, blockID, defIDs, refCount, rootRefCount) } // refreshDynamicRefText 用于刷新块引用的动态锚文本。 diff --git a/kernel/sql/block_ref_query.go b/kernel/sql/block_ref_query.go index 6f15b9f7d..f786b8288 100644 --- a/kernel/sql/block_ref_query.go +++ b/kernel/sql/block_ref_query.go @@ -141,7 +141,7 @@ func QueryRootChildrenRefCount(defRootID string) (ret map[string]int) { func QueryRootBlockRefCount() (ret map[string]int) { ret = map[string]int{} - rows, err := query("SELECT def_block_root_id, COUNT(*) AS ref_cnt FROM refs GROUP BY def_block_root_id") + rows, err := query("SELECT def_block_root_id, COUNT(DISTINCT block_id) AS ref_cnt FROM refs GROUP BY def_block_root_id") if err != nil { logging.LogErrorf("sql query failed: %s", err) return diff --git a/kernel/util/websocket.go b/kernel/util/websocket.go index 2bce8851c..954c427ed 100644 --- a/kernel/util/websocket.go +++ b/kernel/util/websocket.go @@ -271,8 +271,8 @@ func PushSetRefDynamicText(rootID, blockID, defBlockID, refText string) { BroadcastByType("main", "setRefDynamicText", 0, "", map[string]interface{}{"rootID": rootID, "blockID": blockID, "defBlockID": defBlockID, "refText": refText}) } -func PushSetDefRefCount(rootID, blockID string, refIDs, rootRefIDs, defIDs []string, refCount, rootRefCount int) { - BroadcastByType("main", "setDefRefCount", 0, "", map[string]interface{}{"rootID": rootID, "blockID": blockID, "refCount": refCount, "rootRefCount": rootRefCount, "refIDs": refIDs, "rootRefIDs": rootRefIDs, "defIDs": defIDs}) +func PushSetDefRefCount(rootID, blockID string, defIDs []string, refCount, rootRefCount int) { + BroadcastByType("main", "setDefRefCount", 0, "", map[string]interface{}{"rootID": rootID, "blockID": blockID, "refCount": refCount, "rootRefCount": rootRefCount, "defIDs": defIDs}) } func PushProtyleLoading(rootID, msg string) {