diff --git a/app/src/main/java/com/sw/inbound/dialog/CollectSearchDialog.kt b/app/src/main/java/com/sw/inbound/dialog/CollectSearchDialog.kt index 281db9b..065b78e 100644 --- a/app/src/main/java/com/sw/inbound/dialog/CollectSearchDialog.kt +++ b/app/src/main/java/com/sw/inbound/dialog/CollectSearchDialog.kt @@ -125,7 +125,7 @@ class CollectSearchDialog( setOnItemClickListener { _, _, position -> activity?.lifecycleScope?.launch { val goodsName = list[position].goodsName?:"" - val count = ObjectBox.count(goodsName) + val count = ObjectBox.countNameField(goodsName) activity?.toast("已采集数据${count}条") } } diff --git a/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt b/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt index ae77b33..e19ffc9 100644 --- a/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt +++ b/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt @@ -193,8 +193,7 @@ object FoodModule { suspend fun initDefFoodData(context: Context, action: () -> Unit = {}) { try { - val count = - ObjectBox.getBox()?.all?.count { it.foodIdx == DEFAULT_FOOD_INDEX } ?: 0 + val count = ObjectBox.countIndexField(DEFAULT_FOOD_INDEX) if (count > 0) { return } diff --git a/app/src/main/java/com/sw/inbound/objbox/ObjectBox.kt b/app/src/main/java/com/sw/inbound/objbox/ObjectBox.kt index 6f78f96..700b060 100644 --- a/app/src/main/java/com/sw/inbound/objbox/ObjectBox.kt +++ b/app/src/main/java/com/sw/inbound/objbox/ObjectBox.kt @@ -182,10 +182,14 @@ object ObjectBox { } // 使用 QueryBuilder 在数据库层计数,避免全量加载到内存 - suspend fun count(name: String) = safeDbOp { + suspend fun countNameField(name: String) = safeDbOp { getBox()?.query(Food_.name.equal(name))?.build()?.count() } ?: 0L + suspend fun countIndexField(idx: Int) = safeDbOp { + getBox()?.query(Food_.foodIdx.equal(idx))?.build()?.count() + } ?: 0L + // 使用 QueryBuilder 在数据库层过滤,避免全量加载到内存 suspend fun filter(name: String?) = safeDbOp { if (!name.isNullOrBlank()) {