public function requestRefund() { $order_id = Input::get('order_id'); $order = AgencyOrder::find($order_id); if (!isset($order)) { return Response::json(array('errCode' => 21, 'message' => '该订单不存在')); } $refund_record = RefundRecord::where('order_id', '=', $order_id)->get(); if (count($refund_record) != 0) { return Response::json(array('errCode' => 22, 'message' => '申请已提交')); } if ($order->trade_status != 1 || $order->process_status != 1) { return Response::json(array('errCode' => 23, 'message' => '该订单不可申请退款')); } try { DB::transaction(function () use($order) { $order->trade_status = 2; $order->save(); $refund_record = new RefundRecord(); $refund_record->order_id = $order->order_id; $refund_record->user_id = Sentry::getUser()->user_id; $refund_record->save(); }); } catch (Exception $e) { return Response::json(array('errCode' => 24, 'message' => '退款申请失败,请重新申请')); } return Response::json(array('errCode' => 0, 'message' => '申请成功')); }
/** * 插入随机数据 */ protected function create_refund_records($total = 50) { echo 'Creating refund_records...'; $orders = AgencyOrder::all(); foreach ($orders as $order) { if ($order->process_status == "1" && $order->trade_status == "2") { // 已受理且申请退款 $refund_record = new RefundRecord(); $refund_record->order_id = $order->order_id; $refund_record->user_id = $order->user_id; $flag = rand(0, 1); if ($flag == 0) { $refund_record->status = '0'; // 审核中 $refund_record->approval_at = $this->get_random_datetime(); } else { $refund_record->status = '3'; // 审核不通过 $refund_record->approval_at = $this->get_random_datetime(); } $refund_record->save(); } else { if ($order->process_status == "4") { // 已关闭 $refund_record = new RefundRecord(); $refund_record->order_id = $order->order_id; $refund_record->user_id = $order->user_id; $refund_flag = rand(0, 2); if ($refund_flag == 0) { $refund_record->status = '1'; // 审核退款通过 $refund_record->approval_at = $this->get_random_datetime(); } else { if ($refund_flag == 1) { $refund_record->status = '2'; // 退款成功 $refund_record->approval_at = $this->get_random_datetime(); } else { $refund_record->status = '4'; // 退款失败 $refund_record->approval_at = $this->get_random_datetime(); } } $refund_record->save(); } } } echo 'Done' . PHP_EOL; }