diff --git a/app/Http/Controllers/GrabOrderController.php b/app/Http/Controllers/GrabOrderController.php index 9fcb3d6..52b86a5 100644 --- a/app/Http/Controllers/GrabOrderController.php +++ b/app/Http/Controllers/GrabOrderController.php @@ -20,21 +20,26 @@ class GrabOrderController extends Controller public function index(Request $request) { try { - $user = $request->user(); + $user = $request->session()->get('wechat_user'); $id = $request->route('id'); - $fields = ['id', 'order_num', 'refund_time', 'complete_time', 'money', 'tel', 'name', 'address', 'note', 'area', - 'lat', 'lng', 'pay_type', 'order_type', 'market_id', 'total_money', 'created_at', 'pay_time']; - if (!$id || !$order = ImsCjdcOrderMain::where('state', 3)->find($id, $fields)) { + if (!$id || !$order = ImsCjdcOrderMain::with('employees')->where('state', 3)->find($id)) { throw new \Exception('唉呀,来晚啦,订单已经被接走啦~~~'); + } else if (!empty($order->employees->user_id)) { + if ($order->employees->user_id == $user->id) { + $success_msg = '运气太好了吧,订单被您抢到啦~~'; + } else { + unset($order); + throw new \Exception('唉呀,来晚啦,订单已经被接走啦~~~'); + } } - } catch (\Exception $exception) { $error_msg = $exception->getMessage(); } return view('web.grab_order', [ 'error_msg' => $error_msg ?? null, + 'success_msg' => $success_msg ?? null, 'user' => $user ?? null, 'order' => $order ?? [], ]); @@ -55,10 +60,10 @@ class GrabOrderController extends Controller throw new \Exception("您还不是骑手,请联系管理员增加骑手权限"); } - $order = ImsCjdcOrderMain::where('id', $id)->first(); + $order = ImsCjdcOrderMain::with('employees')->where('id', $id)->first(); if (!$order) { throw new \Exception('订单跑丢了~~'); - } else if ($order->state != 3) { + } else if ($order->state != 3 || !empty($order->horseman_id)) { throw new \Exception('您来晚啦,订单已经被人接走啦~~'); } @@ -68,9 +73,9 @@ class GrabOrderController extends Controller throw new \Exception('服务器开小差,抢单失败~'); } - return self::success('抢单成功,已消息通知客户,请尽快配送'); + return self::success([], '抢单成功,已消息通知客户,请尽快配送'); } catch (\Exception $exception) { - return self::error($exception->getMessage()); + return self::error($exception->getMessage(), 1, config('app.debug') ? $exception->getTrace() : null); } } @@ -114,7 +119,7 @@ class GrabOrderController extends Controller $order = ImsCjdcOrderMain::where('id', $formData['order_id'])->first(); if (!$order) { throw new \Exception('订单跑丢了~~'); - } else if ($order->state != 3) { + } else if ($order->state != 3 || !empty($order->horseman_id)) { throw new \Exception('您来晚啦,订单已经被人接走啦~~'); } @@ -124,7 +129,7 @@ class GrabOrderController extends Controller throw new \Exception('服务器开小差,抢单失败~'); } - return self::success('抢单成功,已消息通知客户,请尽快配送'); + return self::success([], '抢单成功,已消息通知客户,请尽快配送'); } catch (\Exception $exception) { return self::error($exception->getMessage()); } diff --git a/resources/views/web/grab_order.blade.php b/resources/views/web/grab_order.blade.php index d51cf1f..312ec4a 100644 --- a/resources/views/web/grab_order.blade.php +++ b/resources/views/web/grab_order.blade.php @@ -46,23 +46,31 @@ .order-info li { margin: .2rem 0; } - h2#error { + h2.msg { font-size: .36rem; color: #f00; text-align: center; + margin-bottom: 1rem; } h2#error:before { content: '😭'; + } + h2#success:before { + content: '😄'; + } + h2.msg:before { display: block; font-size: 2rem; - line-height: 2; - margin: 1rem auto .8rem; + line-height: 1.4; + margin: .4rem auto .6rem; }
@if($error_msg) -