| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace bizMall\order\classes;
- use bizMall\merchant\classes\MerchantAssetClass;
- use bizMall\merchant\classes\MerchantClass;
- use bizMall\message\classes\InformAdminClass;
- use bizMall\message\classes\InformUserClass;
- use bizMall\message\services\InformAdminService;
- use bizMall\user\classes\UserClass;
- use common\components\stringUtil;
- use common\components\util;
- use common\services\xhOrderDayNumService;
- use common\services\xhOrderMonthNumService;
- use Yii;
- use bizMall\base\classes\BaseClass;
- class OrderSendClass extends BaseClass
- {
- public static $baseFile = '\bizMall\order\models\OrderSend';
- //流程id与名称
- public static $actionId = ['placeOrder' => 10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40];
- public static $action = [
- 10 => ['name' => '下单', 'sign' => 'placeOrder'],
- 20 => ['name' => '制单', 'sign' => 'printOrder',],
- 30 => ['name' => '发货', 'sign' => 'deliver'],
- 40 => ['name' => '送达', 'sign' => 'reach']
- ];
- //下单操作完成 ssh 2019.12.13
- public static function placeOrder($data)
- {
- //下单完成
- $orderId = $data['orderId'];
- $payTime = $data['payTime'];
- $actionId = self::$actionId;
- $placeOrderId = $actionId['placeOrder'];
- $time = time();
- $data = ['actionId' => $placeOrderId, 'orderId' => $orderId, 'finishTime' => $payTime, 'addTime' => $time, 'inTurn' => $placeOrderId];
- self::add($data);
- OrderClass::updateById($orderId, ['currentFlow' => 1]);
- //制单未开始
- $printOrderId = $actionId['printOrder'];
- $data = ['actionId' => $printOrderId, 'orderId' => $orderId, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $printOrderId];
- self::add($data);
- }
- //当前待执行的动作 ssh 2019.12.16
- public static function toDoActionId($id)
- {
- $action = self::getByCondition(['orderId' => $id], false, 'inTurn DESC');
- $actionId = 0;
- if (empty($action['finishTime'])) {
- $actionId = $action['actionId'];
- }
- return $actionId;
- }
- //免发货流程的处理 ssh 2020.3.12
- public static function withoutSend($order)
- {
- $id = $order['id'];
- if ($order['status'] == OrderClass::ORDER_STATUS_COMPLETE) {
- util::fail('订单已完成');
- }
- self::deleteByCondition(['orderId' => $id]);
- //订单状态变更
- OrderClass::updateById($id, ['sendType' => 1, 'totalFlow' => OrderClass::ORDER_TOTAL_FLOW, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
- OrderClass::complete($order, OrderClass::ORDER_TOTAL_FLOW);
- //待发货订单-1,完成订单+1
- $sjId = $order['sjId'];
- $asset = MerchantAssetClass::getBySjId($sjId, true);
- $asset->finishOrder += 1;
- $asset->unSendOrder -= 1;
- $asset->save();
- return OrderClass::ORDER_TOTAL_FLOW;
- }
- //送达 ssh 2020.6.1
- public static function reach($order)
- {
- $id = $order['id'];
- //1 确认送达
- $option = 1;
- $time = time();
- $actionIdList = self::$actionId;
- $reachId = $actionIdList['reach'];
- OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $reachId], ['option' => $option, 'finishTime' => $time]);
- $userId = $order['userId'];
- $user = UserClass::getById($userId);
- $sjId = $order['sjId'];
- $merchant = MerchantClass::getById($sjId);
- //完成通知客户
- InformUserClass::sendComplete($user, $order, $merchant);
- //完成通知管理员
- InformAdminClass::sendComplete($order);
- }
- }
|