<?php
namespace app\api\service\order\source;
use app\api\model\sharp\Goods as SharpGoodsModel;
use app\common\library\helper;
class Sharp 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) {
$sharpGoods = SharpGoodsModel::detail($goods['goods_source_id'], ['sku']);
if (empty($sharpGoods) || $sharpGoods['is_delete'] || !$sharpGoods['status']) {
$this->error = "很抱歉,商品 [{$goods['goods_name']}] 不存在或已下架";
return false;
}
$goodsSku = $this->getOrderGoodsSku($sharpGoods, $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['seckill_stock']) {
$this->error = "很抱歉,商品 [{$goods['goods_name']}] 库存不足";
return false;
}
}
return true;
}
private function getOrderGoodsSku($sharpGoods, $specSkuId)
{
return helper::getArrayItemByColumn($sharpGoods['sku'], 'spec_sku_id', $specSkuId);
}
}