| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace bizMall\order\classes;
- use biz\stat\classes\StatItemClass;
- use common\components\dict;
- use common\components\imgUtil;
- use Yii;
- use bizMall\base\classes\BaseClass;
- use bizGhs\product\classes\ProductClass;
- use bizGhs\stock\classes\StockRecordClass;
- class OrderItemClass extends BaseClass
- {
- public static $baseFile = '\bizMall\order\models\OrderItem';
- //添加记录
- public static function addData($data, $custom)
- {
- //库存变化
- $sjId = $data['sjId'] ?? 0;
- $shopId = $data['shopId'] ?? 0;
- $itemId = $data['itemId'] ?? 0;
- $unitType = $data['unitType'] ?? 0;
- $num = $data['num'] ?? 0;
- $ptItemId = $data['ptItemId'] ?? 0;
- $ratio = $data['ratio'] ?? 0;
- $orderSn = $data['orderSn'] ?? '';
- $mainId = $data['mainId'] ?? 0;
- $customName = $custom->name ?? '';
- $bigNum = 0;
- $smallNum = 0;
- if ($unitType == dict::getDict('unitType', 'big')) {
- $bigNum = $num;
- } else {
- $smallNum = $num;
- }
- //库存减少
- $stockInfo = ProductClass::decreaseStock($itemId, $bigNum, $smallNum, true);
- $recordData = [];
- $recordData['sjId'] = $sjId;
- $recordData['shopId'] = $shopId;
- $recordData['mainId'] = $mainId;
- $recordData['itemId'] = $ptItemId;
- $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
- $recordData['itemNum'] = $itemNum;
- $recordData['oldStock'] = $stockInfo['oldStock'];
- $recordData['newStock'] = $stockInfo['newStock'];
- $recordData['productId'] = $itemId;
- $recordData['orderSn'] = $orderSn;
- $recordData['relateName'] = $customName;
- StockRecordClass::hdKdAddRecord($recordData);
- $result = self::add($data, true);
- $price = $data['price'] ?? 0;
- $params = [
- 'mainId' => $mainId,
- 'itemId' => $itemId,
- 'price' => $price,
- 'num' => $itemNum,
- ];
- StatItemClass::replace($params);
- return $result;
- }
- /**
- * 按订单号批量取花材/商品明细
- * @param array $sns 订单号列表
- * @return array [orderSn => [item...]]
- */
- public static function getItemListByOrderSns($sns)
- {
- $sns = array_values(array_filter(array_unique($sns)));
- if (empty($sns)) {
- return [];
- }
- $arr = self::getAllByCondition(['orderSn' => ['in', $sns]], null, '*');
- if (empty($arr)) {
- return [];
- }
- $data = [];
- foreach ($arr as $info) {
- $orderSn = $info['orderSn'] ?? '';
- if (empty($orderSn)) {
- continue;
- }
- $info = self::formatItemCover($info);
- $data[$orderSn][] = $info;
- }
- return $data;
- }
- /**
- * 处理订单明细封面,与详情页展示字段保持一致
- */
- private static function formatItemCover($info)
- {
- $shortCover = !empty($info['cover']) ? $info['cover'] : 'hhb_small.png';
- $info['shortCover'] = $shortCover;
- $info['cover'] = imgUtil::groupImg($shortCover);
- $info['smallCover'] = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
- return $info;
- }
- }
|