当价格price
设置为0,但特价special_price
有不为0的情况下就会出现报错
加入了分母是否为0的判断,代码如下:
@fecwbbc/services/product/Price.php
函数代码替换:
public function getCurrentCurrencyProductPriceInfo2($price, $special_price, $special_from, $special_to, $special_price_count, $special_price_sale_count)
{
$price = (float)$price;
$special_price = (float)$special_price;
$special_from = (int)$special_from;
$special_to = (int)$special_to;
$this->currentOff = 0;
$price_info = $this->formatPrice($price);
$return['price'] = [
'symbol' => $price_info['symbol'],
'value' => $price_info['value'],
'code' => $price_info['code'],
];
$specialIsActive = $this->specialPriceisActive2($price, $special_price, $special_from, $special_to, $special_price_count, $special_price_sale_count);
if ($specialIsActive) {
$special_price_info = Yii::$service->product->price->formatPrice($special_price);
$return['special_price'] = [
'symbol' => $special_price_info['symbol'],
'value' => $special_price_info['value'],
'code' => $special_price_info['code'],
];
if ($price_info['value'] > 0) {
$off = ($price_info['value'] - $special_price_info['value']) / $price_info['value'];
$this->currentOff = round($off * 100);
}
}
// 是否是正在秒杀的产品
if (Yii::$service->seckill->isActiveSecKillingProduct([
'price' => $price,
'special_price' => $special_price,
'special_from' => $special_from,
'special_to' => $special_to,
'special_price_count' => $special_price_count,
'special_price_sale_count' => $special_price_sale_count,
])) {
$special_to = ($special_to > time()) ? $special_to : 0;
$days = floor(($special_to - time()) / ( 3600 * 24 ));
$hours = floor(($special_to - time()) % ( 3600 * 24 ) / 3600);
$mins = floor((($special_to - time()) % 3600) / 60);
$seconds = floor(((($special_to - time()) % 3600) % 60) % 60 );
$return['seckill'] = [
'is_seckilling' => true,
'end_time' => $special_to,
'end_days' => $days >= 10 ? $days : '0'.$days,
'end_hours' => $hours >= 10 ? $hours : '0'.$hours,
'end_mins' => $mins >= 10 ? $mins : '0'.$mins,
'end_seconds' => $seconds >= 10 ? $seconds : '0'.$seconds,
'total_count' => $special_price_count,
'sale_count' => $special_price_sale_count,
];
}
return $return;
}
代码已经更新并发版
,您可以在后台,应用中心,升级fecwbbc搞定。(1.3.1版本)