| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?php
- namespace bizMall\order\classes;
- use common\components\business;
- use common\components\imgUtil;
- use common\components\util;
- use Yii;
- use bizMall\base\classes\BaseClass;
- use biz\stock\classes\GoodsStockRecordClass;
- use bizHd\goods\classes\GoodsClass;
- class OrderGoodsClass extends BaseClass
- {
- public static $baseFile = '\bizMall\order\models\OrderGoods';
- //锁定库存 ssh 20220531
- public static function stockChange($order)
- {
- $orderSn = $order->orderSn ?? '';
- $sjId = $order->sjId ?? 0;
- $shopId = $order->shopId ?? 0;
- $mainId = $order->mainId ?? 0;
- $customName = $order->customName ?? '';
- $orderId = $order->id ?? 0;
- $goodsList = self::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
- if (!empty($goodsList)) {
- foreach ($goodsList as $goods) {
- $goodsId = $goods->goodsId ?? 0;
- $num = $goods->num ?? 0;
- $orderPrice = $order->orderPrice ?? 0;
- $fromType = $order->fromType ?? 1;
- $remark = $order->remark ?? '';
- $orderDebtPrice = $order->remainDebtPrice ?? 0;
- $sendType = $order->sendType ?? 0;
- $thirdSn = $order->thirdSn ?? '';
- $cardInfo = $order->cardInfo ?? '';
- $anonymity = $order->anonymity ?? 0;
- $manyType = $order->manyType ?? 0;
- $sendNum = $order->sendNum ?? '';
- $params = ['orderId' => $orderId, 'orderSn' => $orderSn, 'shopId' => $shopId, 'sendType' => $sendType, 'thirdSn' => $thirdSn, 'cardInfo' => $cardInfo, 'anonymity' => $anonymity,
- 'fromType' => $fromType, 'orderPrice' => $orderPrice, 'remark' => $remark, 'orderDebtPrice' => $orderDebtPrice, 'manyType' => $manyType, 'sendNum' => $sendNum,
- ];
- $flower = $goods->flower ?? 0;
- //鲜花类不需要验证库存,库存可以负数,并相应生成制作单
- $checkStock = $flower == 0 ? true : false;
- $respond = GoodsClass::decreaseStock($goodsId, $mainId, $num, $checkStock, $params);
- $oldStock = $respond['oldStock'] ?? 0;
- $newStock = $respond['newStock'] ?? 0;
- $data = [];
- $data['sjId'] = $sjId;
- $data['shopId'] = $shopId;
- $data['mainId'] = $mainId;
- $data['orderSn'] = $orderSn;
- $data['goodsId'] = $goodsId;
- $data['goodsNum'] = $num;
- $data['oldStock'] = $oldStock;
- $data['newStock'] = $newStock;
- $data['relateName'] = $customName;
- //搜索关键词GoodsStockRecordClass::sellGoods,可以找到相同的方法,暂时没有写在一起
- GoodsStockRecordClass::sellGoods($data);
- }
- }
- }
- public static function addData($data)
- {
- return self::add($data);
- }
- //取订单 ssh 2020.1.2
- public static function getGoodsListBySn($sn)
- {
- $arr = self::getAllByCondition(['orderSn' => $sn], null, '*');
- if (empty($arr)) {
- return [];
- }
- foreach ($arr as $key => $val) {
- $val = business::formatOrderGoodsCover($val);
- $arr[$key] = $val;
- }
- return $arr;
- }
- //取订单 ssh 2020.1.2
- public static function getGoodsListById($id)
- {
- $arr = self::getAllByCondition(['orderId' => $id], null, '*');
- if (empty($arr)) {
- return [];
- }
- foreach ($arr as $key => $val) {
- $val = business::formatOrderGoodsCover($val);
- $arr[$key] = $val;
- }
- return $arr;
- }
- //批量取订单 ssh 2020.1.2
- /**
- * 按订单号批量取花束明细,供订单列表组装 goodsInfoList
- * @param array $sns 订单号列表
- * @return array [orderSn => [goods...]]
- */
- public static function getGoodsListByOrderSns($sns)
- {
- $sns = array_values(array_filter(array_unique((array)$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 ($orderSn === '' || $orderSn === null) {
- continue;
- }
- // 封面字段与花材明细、列表组件对齐(smallCoverUrl / cover / coverUrl)
- $info = self::formatGoodsCover($info);
- $data[$orderSn][] = $info;
- }
- return $data;
- }
- /**
- * 处理花束订单明细封面,兼容列表与详情展示字段
- * @param array $info 明细行
- * @return array
- */
- private static function formatGoodsCover($info)
- {
- $info = business::formatOrderGoodsCover($info);
- $shortCover = !empty($info['cover']) ? $info['cover'] : (!empty($info['shortCover']) ? $info['shortCover'] : 'hhb_small.png');
- // formatOrderGoodsCover 可能已把 coverUrl 填好,但 cover 仍是短路径;列表优先读 smallCoverUrl/cover
- if (!empty($info['coverUrl'])) {
- $info['shortCover'] = $shortCover;
- $info['cover'] = $info['coverUrl'];
- if (empty($info['smallCoverUrl'])) {
- $info['smallCoverUrl'] = $info['coverUrl'] . "?x-oss-process=image/resize,m_fill,h_130,w_130";
- }
- $info['smallCover'] = $info['smallCoverUrl'];
- return $info;
- }
- $info['shortCover'] = $shortCover;
- $info['cover'] = imgUtil::groupImg($shortCover);
- $info['smallCover'] = $info['cover'] . "?x-oss-process=image/resize,m_fill,h_130,w_130";
- $info['coverUrl'] = $info['cover'];
- $info['smallCoverUrl'] = $info['smallCover'];
- return $info;
- }
- }
|