新学习商品即时名称与计价变更记录

问题

学习记录上传及 SDK 学习已成功,但识别页使用的本地商品目录尚无新 UUID。SDK 返回的名称可能也是 UUID,因此识别框暂时显示编码;学习记录同步/数据矫正不等于商品目录同步,而每次强制拉取全量目录耗时较长。

变更

  1. 学习列表选项保留服务端原始 DishBean,并校验商品编码匹配,避免从格式化价格文本还原或串商品。
  2. 普通学习和识别页矫正学习成功后,仅把当前商品增量写入本地 SQLite 与内存缓存。写入完成后才报告可识别计价;失败时可只重试商品资料,不重复上传图片或再次调用 SDK 学习。
  3. 单商品写入和全量目录替换使用仓库单线程队列;全量同步开始后新学成的商品会叠加到旧快照上,避免被覆盖。后续新发起的全量同步仍以服务端数据为准。
  4. 识别页遇到本地目录未命中的标准 UUID 时,同一轮去重发起后台目录同步;等待/失败期间显示商品资料状态,不显示 UUID,也不将未匹配 UUID 自动计价。同步完成后重绘当前结果;已有目录同步可加入等待,不逐帧重复请求。未命中 UUID 采用负缓存,避免每帧重复查 SQLite;单条写入或全量刷新后清除负缓存。
  5. 没有改动菜品/餐具模式的服务端列表含义、菜单规则、零元商品支付门槛或 SDK 学习算法。

验证

归档与 Git