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); } }