【產(chǎn)品名稱】:CRMEB PRO版 / 多店版
【產(chǎn)品版本】:v3.2.1(20221122)
【部署方式】:linux / docker
【部署環(huán)境】:本地環(huán)境 / 線上環(huán)境
【php版本】:7.4
【Mysql版本】:5.8
【使用終端】:小程序 / 后臺(tái)
用戶參與拼團(tuán),支付后不付款,在待付款里取消訂單,然后在次參與拼團(tuán),重復(fù)幾次后,會(huì)提示該團(tuán)人員已滿,實(shí)際并沒(méi)有滿。
文件 app/services/order/StoreOrderRefundServices.php 里的 regressionStock 函數(shù)里,沒(méi)有還原緩存里的拼團(tuán)人數(shù)
修改如下:
找到 public function regressionStock($order) 在結(jié)尾處
if ($order['type'] == 5) {
//改變套餐限量
$res5 = $res5 && $discountServices->changeDiscountLimit($activity_id, false);
}
上面加上
// 恢復(fù)拼團(tuán)緩存人數(shù)
if ($order['type'] == 3 || $order['pink_id'] != 0) CacheService::setStock(md5($order['pink_id']), 1, 3, false);
之前寫(xiě)的有BUG,最新修改如下:
文件app/services/order/StoreOrderServices.php里 cancelOrder 方法里
找到:
//回退積分和優(yōu)惠卷
$res = $refundServices->integralAndCouponBack($order);
//回退庫(kù)存和銷量
$res = $yue_res && $res && $refundServices->regressionStock($order);
在后面增加:
//拼團(tuán)訂單回退拼團(tuán)人數(shù)
if ($order['type'] == 3 && $order['pink_id']) {
CacheService::setStock(md5((string)$order['pink_id']), 1, 3, false);
}