問題概述
在訂單創(chuàng)建過程中,由于購物車記錄中的 product_id 和 product_attr_unique 不匹配,導(dǎo)致系統(tǒng)通過 product_attr_unique 加載的商品信息錯(cuò)誤,從而造成訂單商戶ID(mer_id)被錯(cuò)誤賦值。
問題根源
- 購物車數(shù)據(jù)不一致:購物車記錄中存儲(chǔ)的
product_id與實(shí)際通過product_attr_unique查詢到的商品ID不一致 - 訂單創(chuàng)建邏輯缺陷:訂單創(chuàng)建時(shí),系統(tǒng)優(yōu)先使用
product_attr_unique來加載商品信息,而沒有充分驗(yàn)證product_id與product_attr_unique的匹配性 - 數(shù)據(jù)傳遞錯(cuò)誤:錯(cuò)誤的商品信息被傳遞到訂單創(chuàng)建流程,導(dǎo)致訂單表的
mer_id字段被錯(cuò)誤賦值
問題重現(xiàn)
只有高并發(fā)下才會(huì)產(chǎn)生問題,正常情況下不會(huì)出現(xiàn)。當(dāng)服務(wù)器運(yùn)行緩慢的時(shí)候,該問題偶發(fā),并不是所有訂單都會(huì)產(chǎn)生。
問題解決
目前我們暫時(shí)用定時(shí)腳本運(yùn)行并修復(fù)該問題,后續(xù)會(huì)想辦法修復(fù),這個(gè)問題影響真的太嚴(yán)重了。
【產(chǎn)品名稱】:多商戶系統(tǒng) (PHP)
【產(chǎn)品版本】:v3.1.1 (CRMEB-MER-v3.1.1)
【部署方式】:linux寶塔面板
【部署環(huán)境】:線上環(huán)境
【php版本】:7.4.33
【Mysql版本】:8.0.36
【使用終端】:小程序

