【产品名称】: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);
}