logger = $this->getLogger(); } public function afterPay(PhEvent $event, $source, TradeModel $trade) { try { $this->db->begin(); $trade->status = TradeModel::STATUS_FINISHED; $trade->update(); $orderRepo = new OrderRepo(); $order = $orderRepo->findById($trade->order_id); $order->status = OrderModel::STATUS_DELIVERING; $order->update(); $task = new TaskModel(); $task->item_id = $order->id; $task->item_type = TaskModel::TYPE_DELIVER; $task->create(); $this->db->commit(); } catch (\Exception $e) { $this->db->rollback(); $this->logger->error('After Pay Event Error ' . kg_json_encode([ 'file' => $e->getFile(), 'line' => $e->getLine(), 'message' => $e->getMessage(), ])); throw new \RuntimeException('sys.trans_rollback'); } } }