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