<?php
namespace app\api\service\order\source;
use app\api\model\GoodsSku as GoodsSkuModel;
class Bargain extends Basics
{
public function checkOrderStatusOnPay($order)
{
if (!$this->checkOrderStatusOnPayCommon($order)) {
return false;
}
if (!$this->checkGoodsStatusOnPay($order['goods'])) {
return false;
}
return true;
}
protected function checkGoodsStatusOnPay($goodsList)
{
foreach ($goodsList as $goods) {
$goodsSku = $this->getOrderGoodsSku($goods['goods_id'], $goods['spec_sku_id']);
if (empty($goodsSku)) {
$this->error = "很抱歉,商品 [{$goods['goods_name']}] sku已不存在,请重新下单";
return false;
}
if ($goods['deduct_stock_type'] == 20 && $goods['total_num'] > $goodsSku['stock_num']) {
$this->error = "很抱歉,商品 [{$goods['goods_name']}] 库存不足";
return false;
}
}
return true;
}
private function getOrderGoodsSku($goodsId, $specSkuId)
{
return GoodsSkuModel::detail($goodsId, $specSkuId);
}
}