// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\common\service\goods\source; use app\common\model\ms\MsActivityGood as MsActivityGoodModel; use app\common\enum\order\OrderSource as OrderSourceEnum; use app\common\service\goods\source\Factory; /** * 商品来源-秒杀商品扩展类 * Class Master * @package app\common\service\stock */ class Miaosha extends Basics { public function __call($name,$arguments) { echo 'this function:'.$name.'not exists'; } /** * 申请退货退多个活动单商品的活动库存 * @param array $data * @return array|false */ public function backActivityGoodsStock($order_goods, $total_num=0){ } public function backActivityStock($order,bool $isPayOrder = false){ //do nothing } /** * 更新商品库存 (针对下单减库存的商品) * @param $order * @return bool */ public function updateGoodsStock($order) { //扣一下主库存 Factory::getFactory(OrderSourceEnum::MASTER)->updateGoodsStock($order); $goodsList = $order['goodsList']; $id = $order['order_source_id']; // 商品的数据 $goodsData[] = [ 'where' => ['id' => $id], 'data' => [ // 递减商品总库存 'stock_num' => ['dec', $goodsList[0]['total_num']] ] ]; (new MsActivityGoodModel())->updateAll($goodsData); return true; } /** * 更新商品库存销量(订单付款后) * @param $order * @return bool */ public function updateStockSales($order) { //增加主订单销量 Factory::getFactory(OrderSourceEnum::MASTER)->updateStockSales($order); $id = $order['order_source_id']; $goodsList = $order['goods']; $deliveryType = $order['delivery_type']; $goodsDataItem[] = [ 'where' => ['id' => $id], 'data' => [ // 累计商品实际销量 'sale_num' => ['inc', $goodsList[0]['total_num']], 'ms_sale_sum_price'=>['inc',$goodsList[0]['total_pay_price']+$goodsList[0]['rice_card_money']] ] ]; (new MsActivityGoodModel())->updateAll($goodsDataItem); } /** * 回退商品库存事件 (用于取消订单时调用) * @param mixed $order * @return bool|mixed */ public function backGoodsStock($order,bool $isPayOrder = false) { //增加返回主订单销量 Factory::getFactory(OrderSourceEnum::MASTER)->backGoodsStock($order); $goodsList = $order['goods']; $id = $order['order_source_id']; // 商品的数据 $goodsData[] = [ 'where' => ['id' => $id], 'data' => [ // 递增商品总库存 'stock_num' => ['inc', $goodsList[0]['total_num']] ] ]; (new MsActivityGoodModel())->updateAll($goodsData); return true; } /** * 回退商品库存事件 (用于售后订单时调用,针对单个商品) * @param mixed $order * @param bool $isPayOrder 是否为已支付订单 * @return bool|mixed */ public function backGoodsSkuStock($order,$goods_id=0,$goods_sku_id =0,$total_num =0){ //增加返回主订单销量 Factory::getFactory(OrderSourceEnum::MASTER)->backGoodsSkuStock($order,$goods_id,$goods_sku_id,$total_num); $goodsList = $order['goods']; $id = $order['order_source_id']; // 商品的数据 $goodsData[] = [ 'where' => ['id' => $id], 'data' => [ // 递增商品总库存 'stock_num' => ['inc', $total_num] ] ]; (new MsActivityGoodModel())->updateAll($goodsData); } }