123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- 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);
- }
- }
|