10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40, 'finish' => 50]; public static $action = [ 10 => ['name' => '下单', 'sign' => 'placeOrder'], 20 => ['name' => '制单', 'sign' => 'printOrder',], 30 => ['name' => '发货', 'sign' => 'deliver'], 40 => ['name' => '送达', 'sign' => 'reach'], 50 => ['name' => '完成', 'sign' => 'finish'], ]; //总流程数 const TOTAL_FLOW = 4; //下单操作完成 shish 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); } //当前待执行的动作 shish 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; } //免发货流程的处理 shish 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); //待发货订单-1,完成订单+1 $merchantId = $order['merchantId']; $asset = MerchantAssetClass::getByMerchantId($merchantId, true); $asset->finishOrder += 1; $asset->unSendOrder -= 1; $asset->save(); return OrderClass::ORDER_TOTAL_FLOW; } }