diff --git a/app/Admin/Forms/SelectHorseman.php b/app/Admin/Forms/SelectHorseman.php index fc3cda1..e24fafd 100644 --- a/app/Admin/Forms/SelectHorseman.php +++ b/app/Admin/Forms/SelectHorseman.php @@ -23,10 +23,22 @@ class SelectHorseman extends Form */ protected $orderId; public function handle(array $input) + { + $current_page = $input['current_page'] ?? 1; + if ($this->selectHorseman($input)) { + return $this->success('操作成功',"order?page={$current_page}"); + } else { + return $this->error('操作失败'); + } + } + + /** + * 注:此方法在app/Http/Controllers/GrabOrderController.php中也有调用,修改需要注意 + */ + public function selectHorseman(array $input): bool { $hid = $input['horseman_id']; $oid = $input['order_id']; - $current_page = $input['current_page'] ?? 1; $horseman = LanzuEmployees::getName($hid);//骑手名称 $result = ImsCjdcOrderMain::where('id',$oid)->update(['shipping_type'=>1,'horseman_id'=>$hid,'delivery_start_time'=>time(),'shipping_name'=>$horseman,'updated_at'=>time()]); if ($result){ @@ -39,10 +51,9 @@ class SelectHorseman extends Form $ssdb->set("horseman_coordinate_{$hid}",$coordinate); //>>2.配送开始后,给用户发送消息通知 Rpc::onlineDeliveryStart($row->global_order_id); - - return $this->success('操作成功',"order?page={$current_page}"); - }else{ - return $this->error('操作失败'); + return true; + } else { + return false; } } diff --git a/app/Http/Controllers/GrabOrderController.php b/app/Http/Controllers/GrabOrderController.php index f83662e..7fa9023 100644 --- a/app/Http/Controllers/GrabOrderController.php +++ b/app/Http/Controllers/GrabOrderController.php @@ -40,15 +40,16 @@ class GrabOrderController extends Controller { try { $validator = Validator::make($request->all(), [ - 'order_num' => ['required', 'regex:/^\d+$/'], + 'order_id' => ['required', 'int'], 'name' => 'required|between:2,20', 'tel' => ['required', 'regex:/^1\d{10}$/'], ], [ '*.required' => ':attribute不能为空', '*.regex' => ':attribute格式不正确', + 'order_id.int' => ':attribute错误', 'name.between' => ':attribute输入不正确', ], [ - 'order_num' => '订单号', + 'order_id' => '订单ID', 'name' => '姓名', 'tel' => '手机号', ]); @@ -69,19 +70,18 @@ class GrabOrderController extends Controller throw new \Exception("您还不是骑手,请联系管理员增加骑手权限"); } - $order = ImsCjdcOrderMain::where('order_num', $formData['order_num'])->first(); + $order = ImsCjdcOrderMain::where('id', $formData['order_id'])->first(); if (!$order) { throw new \Exception('订单跑丢了~~'); } else if ($order->state != 3) { throw new \Exception('您来晚啦,订单已经被人接走啦~~'); } - /** - * 抢单逻辑详见: - * @see \App\Admin\Forms\SelectHorseman - */ $SelectHorseman = new \App\Admin\Forms\SelectHorseman; - $result = $SelectHorseman->handle(['horseman_id' => $employee->id, 'order_id' => $order->id]); + $result = $SelectHorseman->selectHorseman(['horseman_id' => $employee->id, 'order_id' => $order->id]); + if (!$result) { + throw new \Exception('服务器开小差,抢单失败~'); + } return self::success('抢单成功,已消息通知客户,请尽快配送'); } catch (\Exception $exception) { @@ -94,6 +94,19 @@ class GrabOrderController extends Controller */ public function orderInfo() { - $order_num = \request('order_num'); + $id = request('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']; + $order = ImsCjdcOrderMain::where('state', 3)->find($id, $fields); + if (!$order) { + return self::error('订单不存在或已配送完成~~'); + } + + if ($order->tel) { + $order->tel = substr_replace($order->tel, '****', 3, 4); + } + + return self::success($order); } } diff --git a/routes/api.php b/routes/api.php index 8d88ca8..acfceff 100644 --- a/routes/api.php +++ b/routes/api.php @@ -21,5 +21,5 @@ Route::middleware('auth:api')->get('/user', function (Request $request) { Route::prefix('grab')->group(function () { Route::post('grab', [GrabOrderController::class, 'grabOrder']); - Route::post('order_info', [GrabOrderController::class, 'orderInfo']); + Route::get('order_info', [GrabOrderController::class, 'orderInfo']); });