OrderItemClass.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace bizHd\order\classes;
  3. use biz\stat\classes\StatItemClass;
  4. use bizGhs\product\classes\ProductClass;
  5. use bizGhs\stock\classes\StockRecordClass;
  6. use common\components\dict;
  7. use common\components\imgUtil;
  8. use Yii;
  9. use bizHd\base\classes\BaseClass;
  10. class OrderItemClass extends BaseClass
  11. {
  12. public static $baseFile = '\bizHd\order\models\OrderItem';
  13. //添加记录
  14. public static function addData($data, $custom)
  15. {
  16. //库存变化
  17. $sjId = $data['sjId'] ?? 0;
  18. $shopId = $data['shopId'] ?? 0;
  19. $itemId = $data['itemId'] ?? 0;
  20. $unitType = $data['unitType'] ?? 0;
  21. $num = $data['num'] ?? 0;
  22. $ptItemId = $data['ptItemId'] ?? 0;
  23. $ratio = $data['ratio'] ?? 0;
  24. $orderSn = $data['orderSn'] ?? '';
  25. $mainId = $data['mainId'] ?? 0;
  26. $customName = $custom['name'] ?? '';
  27. $bigNum = 0;
  28. $smallNum = 0;
  29. if ($unitType == dict::getDict('unitType', 'big')) {
  30. $bigNum = $num;
  31. } else {
  32. $smallNum = $num;
  33. }
  34. //库存减少
  35. $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
  36. //开单时如果是小单位暂时不扣库存
  37. if (intval($itemNum) > 0) {
  38. $stockInfo = ProductClass::decreaseStock($itemId, $bigNum, $smallNum, true);
  39. $recordData = [];
  40. $recordData['sjId'] = $sjId;
  41. $recordData['shopId'] = $shopId;
  42. $recordData['mainId'] = $mainId;
  43. $recordData['itemId'] = $ptItemId;
  44. $recordData['itemNum'] = $itemNum;
  45. $recordData['oldStock'] = $stockInfo['oldStock'];
  46. $recordData['newStock'] = $stockInfo['newStock'];
  47. $recordData['productId'] = $itemId;
  48. $recordData['orderSn'] = $orderSn;
  49. $recordData['relateName'] = $customName;
  50. StockRecordClass::hdKdAddRecord($recordData);
  51. }
  52. $result = self::add($data, true);
  53. $price = $data['price'] ?? 0;
  54. $params = [
  55. 'mainId' => $mainId,
  56. 'itemId' => $itemId,
  57. 'price' => $price,
  58. 'num' => $itemNum,
  59. ];
  60. StatItemClass::replace($params);
  61. return $result;
  62. }
  63. public static function getListBySn($sn)
  64. {
  65. $list = self::getAllByCondition(['orderSn' => $sn], null, '*');
  66. if (empty($list)) {
  67. return $list;
  68. }
  69. foreach ($list as $key => $val) {
  70. $shortCover = isset($val['cover']) && !empty($val['cover']) ? $val['cover'] : 'hhb_small.png';
  71. $smallCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
  72. $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
  73. $list[$key]['shortCover'] = $shortCover;
  74. $list[$key]['smallCover'] = $smallCover;
  75. $list[$key]['bigCover'] = $bigCover;
  76. }
  77. return $list;
  78. }
  79. }