function updateOrderId($order_id, $params)
 {
     $order = DtbProjectInvestOrder::findFirstByorder_id($order_id);
     if ($order) {
         $order->result = $params['result'];
         $order->status = $params['status'];
         $order->update_ts = $params['update_ts'];
         if (!$order->save()) {
             foreach ($order->getMessages() as $message) {
                 echo $message;
             }
         } else {
             return true;
         }
     } else {
         throw new \InvalidArgumentException('The order is not found');
         return false;
     }
 }
 public function payCallbackAction($order_id)
 {
     $is_pay = true;
     if ($is_pay) {
         //TODO PAY CALLBACK
         //modify order_id
         $invest_order = DtbProjectInvestOrder::findFirstByorder_id($order_id);
         $raise_id = $invest_order->getRaiseId();
         $wheel_id = $invest_order->getWheelId();
         $project_wheel_info = DtbRaiseProjectWheel::findFirstBywheel_id($wheel_id);
         if ($project_wheel_info->getRaiseId() != $raise_id) {
             die('project error');
         }
         $invest_money = $invest_order->getInvestMoney();
         $aim_money = $project_wheel_info->getAimMoney();
         $already_money = $project_wheel_info->getAlreadyMoney();
         $result = $project_wheel_info->getResult();
         $is_update_status = false;
         if ($invest_money + $already_money >= $aim_money * self::project_success_value && intval($result) == 0) {
             $is_update_status = true;
         }
         $wheel_invested_num = $project_wheel_info->getWheelInvestedNum();
         try {
             $this->di['db']->begin();
             $invest_order_new = new DtbProjectInvestOrder();
             $params = array('result' => result_success, 'status' => 0, 'update_ts' => time());
             $res1 = $invest_order_new->updateOrderId($order_id, $params);
             $project_wheel_info->setAlreadyMoney($invest_money + $already_money);
             $project_wheel_info->setAlreadyMoney(intval($invest_money + $already_money));
             $project_wheel_info->setWheelInvestedNum($wheel_invested_num + 1);
             if ($is_update_status) {
                 $project_wheel_info->setResult(result_success);
             }
             $res2 = $project_wheel_info->save();
             if ($res1 && $res2) {
                 $this->di['db']->commit();
                 $this->flash->success('成功');
                 return $this->response->redirect('/invest/payFinish/' . $order_id);
             } else {
                 $this->di['db']->rollback();
             }
         } catch (Exception $ex) {
             $this->di['db']->rollback();
         }
     }
 }