问题:秒杀商品有确认库存,但是购买的时候提示商品已售空
修复方法:
一、 如果未二开,源码可直接将附件中的文件替换到项目中;
二、修改代码
1. 修改代码
注意:这里是将这几个方法都改了,注意方法名, 我这里移动了方法的位置
路径:
app\common\model\store\product\Product.php
代码:
if (empty($value)) return [];
return !is_array($value) ? explode(',', $value) : $value;
2. 修改代码:
路径:
app\common\repositories\store\ProductRepository.php
代码:
foreach ($settleParams['attrValue'] as $v) {
Queue::push(SetSeckillStockCacheJob::class, ['res'=> $res, 'attrValue' => $v]);
}
3. 修改代码
路径:
app\common\repositories\store\ProductRepository.php
代码:
foreach ($attrValue_ as $item) {
Queue::push(SetSeckillStockCacheJob::class,['res'=>$res,'attrValue'=> $item]);
}
4. 修改代码
路径:
app\common\repositories\store\ProductRepository.php
代码:
$cache_keys = array_map(function($item) use($attrValue) {
$item[] = $attrValue['unique'];
$item = implode('_',$item);
return $item;
},$cache_key_times);
$cache_array = array_combine($cache_keys, array_fill(0, count($cache_keys), $attrValue['stock']));
$cache_key_unique = array_merge($cache_key_unique,$cache_keys);