问题概述
在订单创建过程中,由于购物车记录中的 product_id 和 product_attr_unique 不匹配,导致系统通过 product_attr_unique 加载的商品信息错误,从而造成订单商户ID(mer_id)被错误赋值。
问题根源
- 购物车数据不一致:购物车记录中存储的
product_id与实际通过product_attr_unique查询到的商品ID不一致 - 订单创建逻辑缺陷:订单创建时,系统优先使用
product_attr_unique来加载商品信息,而没有充分验证product_id与product_attr_unique的匹配性 - 数据传递错误:错误的商品信息被传递到订单创建流程,导致订单表的
mer_id字段被错误赋值
问题重现
只有高并发下才会产生问题,正常情况下不会出现。当服务器运行缓慢的时候,该问题偶发,并不是所有订单都会产生。
问题解决
目前我们暂时用定时脚本运行并修复该问题,后续会想办法修复,这个问题影响真的太严重了。
【产品名称】:多商户系统 (PHP)
【产品版本】:v3.1.1 (CRMEB-MER-v3.1.1)
【部署方式】:linux宝塔面板
【部署环境】:线上环境
【php版本】:7.4.33
【Mysql版本】:8.0.36
【使用终端】:小程序

