| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?php
- namespace bizHd\order\classes;
- use biz\sj\services\MerchantService;
- use biz\stat\classes\StatItemClass;
- use bizGhs\product\classes\ProductClass;
- use bizGhs\stock\classes\StockRecordClass;
- use bizHd\custom\classes\CustomClass;
- use bizHd\order\services\OrderGoodsService;
- use common\components\dict;
- use common\components\imgUtil;
- use Yii;
- use bizHd\base\classes\BaseClass;
- class OrderItemClass extends BaseClass
- {
- public static $baseFile = '\bizHd\order\models\OrderItem';
- public static function getOrderInfoList($where)
- {
- $respond = self::getList('orderSn,id', $where, 'id DESC');
- if (!empty($respond['list'])) {
- $currentList = $respond['list'];
- $snList = array_column($currentList, 'orderSn');
- $snList = array_unique(array_filter($snList));
- $order = 'addTime DESC';
- $where = ['orderSn' => ['in', $snList]];
- $ret = OrderClass::getAllByCondition($where, $order,'*');
- if (!empty($ret)) {
- //获取订单的商品信息
- $goodsList = OrderGoodsService::getGoodsListByOrderSns($snList);
- //获取订花人的用户信息
- $orderUserIds = array_column($ret, 'customId');
- $orderUserIds = array_unique(array_filter($orderUserIds));
- $customList = CustomClass::getCustomByIds($orderUserIds);
- $sjIdList = array_column($ret, 'sjId');
- $sjIdList = array_filter(array_unique($sjIdList));
- $merchantList = MerchantService::getByIds($sjIdList, null, 'id');
- $periodData = [0 => '上午', 1 => '下午', 2 => '晚上'];
- $defaultImg = imgUtil::groupImg('');
- foreach ($ret as $key => $val) {
- $id = $val['id'];
- $customId = $val['customId'];
- $currentActPrice = $val['actPrice'] ?? 0;
- $currentSendCost = $val['sendCost'] ?? 0;
- $currentPrice = bcsub($currentActPrice, $currentSendCost, 2);
- //没有商品显示的样式
- $goodsInfoList = [['title' => '', 'coverUrl' => $defaultImg, 'unitPrice' => $currentPrice, 'num' => 1]];
- if (isset($goodsList[$id])) {
- $goodsInfoList = $goodsList[$id];
- }
- $ret[$key]['goodsInfoList'] = $goodsInfoList;
- $ret[$key]['bookAvatar'] = isset($customList[$customId]['smallAvatarUrl']) ? $customList[$customId]['smallAvatarUrl'] : '';
- $sjId = $val['sjId'];
- $ret[$key]['name'] = isset($merchantList[$sjId]['name']) ? $merchantList[$sjId]['name'] : '';
- $ret[$key]['reachTime'] = OrderClass::getReachTime($val);
- $requireReachTime = '';
- if ($val['reachDate'] != '0000-00-00') {
- $reachPeriodId = $val['reachPeriod'];
- $reachPeriod = isset($periodData[$reachPeriodId]) ? $periodData[$reachPeriodId] : '上午';
- $requireReachTime = date("m-d", strtotime($val['reachDate'])) . ' ' . $reachPeriod;
- }
- $ret[$key]['requireReachTime'] = $requireReachTime;
- $shortCover = $val['cover'] ?? '';
- $ret[$key]['cover'] = imgUtil::groupImg($shortCover);
- }
- }
- $respond['list'] = $ret;
- }
- return $respond;
- }
- //添加记录
- 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;
- }
- //库存减少
- $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
- if ($itemNum > 0) {
- $stockInfo = ProductClass::decreaseStock($itemId, $bigNum, $smallNum, true);
- $recordData = [];
- $recordData['sjId'] = $sjId;
- $recordData['shopId'] = $shopId;
- $recordData['mainId'] = $mainId;
- $recordData['itemId'] = $ptItemId;
- $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 $sn
- * @param string $field
- * @return array|\yii\db\ActiveRecord[]
- */
- public static function getListBySn($sn, $field = '*')
- {
- $list = self::getAllByCondition(['orderSn' => $sn], null, $field);
- if (empty($list)) {
- return $list;
- }
- foreach ($list as $key => $val) {
- $shortCover = isset($val['cover']) && !empty($val['cover']) ? $val['cover'] : 'hhb_small.png';
- $smallCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
- $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
- $list[$key]['shortCover'] = $shortCover;
- $list[$key]['smallCover'] = $smallCover;
- $list[$key]['bigCover'] = $bigCover;
- }
- return $list;
- }
- }
|