OrderItemClass.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace bizMall\order\classes;
  3. use biz\stat\classes\StatItemClass;
  4. use common\components\dict;
  5. use Yii;
  6. use bizMall\base\classes\BaseClass;
  7. use bizGhs\product\classes\ProductClass;
  8. use bizGhs\stock\classes\StockRecordClass;
  9. class OrderItemClass extends BaseClass
  10. {
  11. public static $baseFile = '\bizMall\order\models\OrderItem';
  12. //添加记录
  13. public static function addData($data, $custom)
  14. {
  15. //库存变化
  16. $sjId = $data['sjId'] ?? 0;
  17. $shopId = $data['shopId'] ?? 0;
  18. $itemId = $data['itemId'] ?? 0;
  19. $unitType = $data['unitType'] ?? 0;
  20. $num = $data['num'] ?? 0;
  21. $ptItemId = $data['ptItemId'] ?? 0;
  22. $ratio = $data['ratio'] ?? 0;
  23. $orderSn = $data['orderSn'] ?? '';
  24. $mainId = $data['mainId'] ?? 0;
  25. $customName = $custom->name ?? '';
  26. $bigNum = 0;
  27. $smallNum = 0;
  28. if ($unitType == dict::getDict('unitType', 'big')) {
  29. $bigNum = $num;
  30. } else {
  31. $smallNum = $num;
  32. }
  33. //库存减少
  34. $stockInfo = ProductClass::decreaseStock($itemId, $bigNum, $smallNum, true);
  35. $recordData = [];
  36. $recordData['sjId'] = $sjId;
  37. $recordData['shopId'] = $shopId;
  38. $recordData['mainId'] = $mainId;
  39. $recordData['itemId'] = $ptItemId;
  40. $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
  41. $recordData['itemNum'] = $itemNum;
  42. $recordData['oldStock'] = $stockInfo['oldStock'];
  43. $recordData['newStock'] = $stockInfo['newStock'];
  44. $recordData['productId'] = $itemId;
  45. $recordData['orderSn'] = $orderSn;
  46. $recordData['relateName'] = $customName;
  47. StockRecordClass::hdKdAddRecord($recordData);
  48. $result = self::add($data, true);
  49. $price = $data['price'] ?? 0;
  50. $params = [
  51. 'mainId' => $mainId,
  52. 'itemId' => $itemId,
  53. 'price' => $price,
  54. 'num' => $itemNum,
  55. ];
  56. StatItemClass::replace($params);
  57. return $result;
  58. }
  59. }