OrderGoodsClass.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. namespace bizMall\order\classes;
  3. use common\components\business;
  4. use common\components\util;
  5. use Yii;
  6. use bizMall\base\classes\BaseClass;
  7. use biz\stock\classes\GoodsStockRecordClass;
  8. use bizHd\goods\classes\GoodsClass;
  9. class OrderGoodsClass extends BaseClass
  10. {
  11. public static $baseFile = '\bizMall\order\models\OrderGoods';
  12. //锁定库存 ssh 20220531
  13. public static function stockChange($order)
  14. {
  15. $orderSn = $order->orderSn ?? '';
  16. $sjId = $order->sjId ?? 0;
  17. $shopId = $order->shopId ?? 0;
  18. $mainId = $order->mainId ?? 0;
  19. $customName = $order->customName ?? '';
  20. $orderId = $order->id ?? 0;
  21. $goodsList = self::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  22. if (!empty($goodsList)) {
  23. foreach ($goodsList as $goods) {
  24. $goodsId = $goods->goodsId ?? 0;
  25. $num = $goods->num ?? 0;
  26. $orderPrice = $order->orderPrice ?? 0;
  27. $fromType = $order->fromType ?? 1;
  28. $remark = $order->remark ?? '';
  29. $orderDebtPrice = $order->remainDebtPrice ?? 0;
  30. $sendType = $order->sendType ?? 0;
  31. $thirdSn = $order->thirdSn ?? '';
  32. $cardInfo = $order->cardInfo ?? '';
  33. $anonymity = $order->anonymity ?? 0;
  34. $manyType = $order->manyType ?? 0;
  35. $sendNum = $order->sendNum ?? '';
  36. $params = ['orderId' => $orderId, 'orderSn' => $orderSn, 'shopId' => $shopId, 'sendType' => $sendType, 'thirdSn' => $thirdSn, 'cardInfo' => $cardInfo, 'anonymity' => $anonymity,
  37. 'fromType' => $fromType, 'orderPrice' => $orderPrice, 'remark' => $remark, 'orderDebtPrice' => $orderDebtPrice, 'manyType' => $manyType, 'sendNum' => $sendNum,
  38. ];
  39. $flower = $goods->flower ?? 0;
  40. //鲜花类不需要验证库存,库存可以负数,并相应生成制作单
  41. $checkStock = $flower == 0 ? true : false;
  42. $respond = GoodsClass::decreaseStock($goodsId, $mainId, $num, $checkStock, $params);
  43. $oldStock = $respond['oldStock'] ?? 0;
  44. $newStock = $respond['newStock'] ?? 0;
  45. $data = [];
  46. $data['sjId'] = $sjId;
  47. $data['shopId'] = $shopId;
  48. $data['mainId'] = $mainId;
  49. $data['orderSn'] = $orderSn;
  50. $data['goodsId'] = $goodsId;
  51. $data['goodsNum'] = $num;
  52. $data['oldStock'] = $oldStock;
  53. $data['newStock'] = $newStock;
  54. $data['relateName'] = $customName;
  55. //搜索关键词GoodsStockRecordClass::sellGoods,可以找到相同的方法,暂时没有写在一起
  56. GoodsStockRecordClass::sellGoods($data);
  57. }
  58. }
  59. }
  60. public static function addData($data)
  61. {
  62. return self::add($data);
  63. }
  64. //取订单 ssh 2020.1.2
  65. public static function getGoodsListBySn($sn)
  66. {
  67. $arr = self::getAllByCondition(['orderSn' => $sn], null, '*');
  68. if (empty($arr)) {
  69. return [];
  70. }
  71. foreach ($arr as $key => $val) {
  72. $val = business::formatOrderGoodsCover($val);
  73. $arr[$key] = $val;
  74. }
  75. return $arr;
  76. }
  77. //取订单 ssh 2020.1.2
  78. public static function getGoodsListById($id)
  79. {
  80. $arr = self::getAllByCondition(['orderId' => $id], null, '*');
  81. if (empty($arr)) {
  82. return [];
  83. }
  84. foreach ($arr as $key => $val) {
  85. $val = business::formatOrderGoodsCover($val);
  86. $arr[$key] = $val;
  87. }
  88. return $arr;
  89. }
  90. //批量取订单 ssh 2020.1.2
  91. public static function getGoodsListByOrderSns($sns)
  92. {
  93. $arr = self::getAllByCondition(['orderSn' => ['in', $sns]], null, '*');
  94. if (empty($arr)) {
  95. return [];
  96. }
  97. $data = [];
  98. foreach ($arr as $info) {
  99. $orderSn = $info['orderSn'];
  100. $info = business::formatOrderGoodsCover($info);
  101. $data[$orderSn][] = $info;
  102. }
  103. return $data;
  104. }
  105. }