Za.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
  8. // +----------------------------------------------------------------------
  9. // | Author: 萤火科技 <admin@yiovo.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types=1);
  12. namespace app\common\service\goods\source;
  13. use app\common\model\za\ZaActivityGood as ZaActivityGoodModel;
  14. use app\common\enum\order\OrderSource as OrderSourceEnum;
  15. use app\common\service\goods\source\Factory;
  16. /**
  17. * 商品来源-买一赠一商品扩展类
  18. * Class Master
  19. * @package app\common\service\stock
  20. */
  21. class Za extends Basics
  22. {
  23. public function __call($name,$arguments) {
  24. // echo 'this function:'.$name.'not exists';
  25. }
  26. /**
  27. * 申请退货退多个活动单商品的活动库存
  28. * @param array $data
  29. * @return array|false
  30. */
  31. public function backActivityGoodsStock($order_goods, $total_num=0){
  32. //do nothing
  33. }
  34. public function backActivityStock($order,bool $isPayOrder = false){
  35. //do nothing
  36. }
  37. /**
  38. * 更新商品库存 (针对下单减库存的商品)
  39. * @param $order
  40. * @return bool
  41. */
  42. public function updateGoodsStock($order)
  43. {
  44. //扣一下主库存 买一赠一就扣两次吧,先扣他两次再说
  45. Factory::getFactory(OrderSourceEnum::MASTER)->updateGoodsStock($order);
  46. Factory::getFactory(OrderSourceEnum::MASTER)->updateGoodsStock($order);
  47. $goodsList = $order['goodsList'];
  48. $id = $order['order_source_id'];
  49. // 商品的数据
  50. $goodsData[] = [
  51. 'where' => ['id' => $id],
  52. 'data' => [
  53. // 递减商品总库存
  54. 'stock_num' => ['dec', $goodsList[0]['total_num']*2]
  55. ]
  56. ];
  57. (new ZaActivityGoodModel())->updateAll($goodsData);
  58. return true;
  59. }
  60. /**
  61. * 更新商品库存销量(订单付款后)
  62. * @param $order
  63. * @return bool
  64. */
  65. public function updateStockSales($order)
  66. {
  67. //增加主订单销量
  68. Factory::getFactory(OrderSourceEnum::MASTER)->updateStockSales($order);
  69. Factory::getFactory(OrderSourceEnum::MASTER)->updateStockSales($order);
  70. // $id = $order['order_source_id'];
  71. // $goodsList = $order['goods'];
  72. // $deliveryType = $order['delivery_type'];
  73. // $goodsDataItem[] = [
  74. // 'where' => ['id' => $id],
  75. // 'data' => [
  76. // // 累计商品实际销量
  77. // 'sale_num' => ['inc', $goodsList[0]['total_num']],
  78. // 'ms_sale_sum_price'=>['inc',$goodsList[0]['total_pay_price']+$goodsList[0]['rice_card_money']]
  79. // ]
  80. // ];
  81. // (new MsActivityGoodModel())->updateAll($goodsDataItem);
  82. }
  83. /**
  84. * 回退商品库存事件 (用于取消订单时调用)
  85. * @param mixed $order
  86. * @return bool|mixed
  87. */
  88. public function backGoodsStock($order,bool $isPayOrder = false)
  89. {
  90. //增加返回主订单库存
  91. Factory::getFactory(OrderSourceEnum::MASTER)->backGoodsStock($order);
  92. Factory::getFactory(OrderSourceEnum::MASTER)->backGoodsStock($order);
  93. $goodsList = $order['goods'];
  94. $id = $order['order_source_id'];
  95. // 商品的数据
  96. $goodsData[] = [
  97. 'where' => ['id' => $id],
  98. 'data' => [
  99. // 递增商品总库存
  100. 'stock_num' => ['inc', $goodsList[0]['total_num']*2]
  101. ]
  102. ];
  103. (new ZaActivityGoodModel())->updateAll($goodsData);
  104. return true;
  105. }
  106. /**
  107. * 回退商品库存事件 (用于售后订单时调用,针对单个商品)
  108. * @param mixed $order
  109. * @param bool $isPayOrder 是否为已支付订单
  110. * @return bool|mixed
  111. */
  112. public function backGoodsSkuStock($order,$goods_id=0,$goods_sku_id =0,$total_num =0){
  113. //增加返回主订单销量
  114. Factory::getFactory(OrderSourceEnum::MASTER)->backGoodsSkuStock($order,$goods_id,$goods_sku_id,$total_num);
  115. $goodsList = $order['goods'];
  116. $id = $order['order_source_id'];
  117. // 商品的数据
  118. $goodsData[] = [
  119. 'where' => ['id' => $id],
  120. 'data' => [
  121. // 递增商品总库存
  122. 'stock_num' => ['inc', $total_num]
  123. ]
  124. ];
  125. (new ZaActivityGoodModel())->updateAll($goodsData);
  126. }
  127. }