From f53669d04806269d815e49e103d20a8db3dee2a2 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 10 Mar 2026 11:24:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/sw/inbound/dialog/CollectSearchDialog.kt | 2 +- app/src/main/java/com/sw/inbound/objbox/FoodModule.kt | 3 +-- app/src/main/java/com/sw/inbound/objbox/ObjectBox.kt | 6 +++++- 3 files changed, 7 insertions(+), 4 deletions(-) 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()) {