From 6b312ec689d9f5152d199929e339fc5133e28e9e Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 21 Apr 2026 09:46:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(prepareCook):=20=E4=BF=AE=E5=A4=8D=E9=A3=9F?= =?UTF-8?q?=E6=9D=90=E9=80=89=E6=8B=A9=E5=92=8C=E6=95=B0=E6=8D=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复了食材选择回调中的变量命名问题,统一使用 entity 替代 item - 改进了食材名称解析逻辑,正确提取 WP 标识符和食材名称 - 为食材 ID 提取添加了边界情况处理,避免数组越界异常 - 添加了调试日志以便追踪食材查询结果 - 优化了食材列表数据结构的构建过程 --- .../dish/match/ui/PrepareCookActivity.kt | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt index 857e0c7..071efcf 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt @@ -209,14 +209,14 @@ class PrepareCookActivity : BaseActivity() { * - list 中不含该 goodsId:直接新增,isNewDishType = true * - list 中已含该 goodsId:累加 useWeight */ - private val foodSelectCallback: (CookFoodGoodsEntity) -> Unit = { item -> - val existing = list.firstOrNull { it.goodsId == item.goodsId } + private val foodSelectCallback: (CookFoodGoodsEntity) -> Unit = { entity -> + val existing = list.firstOrNull { it.goodsId == entity.goodsId } if (existing != null) { - existing.useWeight = (existing.useWeight ?: 0.0) + (item.useWeight ?: 0.0) + existing.useWeight = (existing.useWeight ?: 0.0) + (entity.useWeight ?: 0.0) existing.isSetFinished = true dishPartAdapter.notifyItemChanged(list.indexOf(existing)) } else { - list.add(item.also { + list.add(entity.also { it.isNewDishType = true it.isSetFinished = true }) @@ -477,10 +477,19 @@ class PrepareCookActivity : BaseActivity() { //调用接口成功,返回食材列表设置isTakingPhoto.set(false),暂时写死数据 val foodList = mutableListOf() list.forEachIndexed { index, food -> - val foodName = food.name.split("WP").first() + var foodName = "" + var foodId = "" + food.name.split("WP").let { + foodName = it[0] + foodId = if (it.size > 1) { + "WP${it[1]}" + } else { + food.name + } + } foodList.add( CookFoodGoodsEntity( - goodsId = "${food.id}", + goodsId = foodId, goodsName = foodName, foodId = index.toString() ).also { @@ -493,12 +502,13 @@ class PrepareCookActivity : BaseActivity() { activity = this, imageUri = lastPhotoUri?.toString(), goodsList = ArrayList(foodList), - finishCallback = { isManualCancel, item -> + finishCallback = { isManualCancel, entity -> + Log.d(TAG, "queryFood: isManualCancel=$isManualCancel, entity=${entity.toJsonString()}") manualCancelFlag = isManualCancel if (isManualCancel) { return@start } - item?.let { + entity?.let { foodSelectCallback(it) } }