2995840376 9786286ad3 fix(B1): 修复 resolveProductId 参数错位污染产品字段 + product_key 确定性化
根因: TuyaController 两处调用把「涂鸦 productId」填进 model 位、把字面量
'tuya' 填进 manufacturer 位, 导致 product.model / manufacturer 被写入
平台产品ID (生产数据已出现 P_tuya_y1ouxiqr_42bff218 的脏记录)。

修复:
- TuyaController: 2 处调用改为 model=null, manufacturer=null
  (涂鸦 OpenAPI 确实未提供真实型号/厂商, 此前是错位而非真实值)
- ProductServiceImpl.resolveProductId: 新增 sanitizeDimension() 防御,
  对畸形入参(等于平台产品ID / 等于平台编码)统一置空, 杜绝同类错位复发
- resolveProductId 入口 platform 经 PlatformType.normalize() 归一

product_key 确定性化:
- 旧: P_<platform>_<model>_<随机UUID8>  -> 不可读、无法反查
- 新: P_<platform>_<platformProductId|model>  -> 恒定、可反查
  (超 56 字符截断并追加短哈希防碰撞)

验证: mvn -pl iot-common,iot-device -am compile 通过
2026-10-27 12:22:39 +08:00
..