diff --git a/Laravel/app/Http/Controllers/API/Internal/OrderController.php b/Laravel/app/Http/Controllers/API/Internal/OrderController.php index 95e05eb..732d6eb 100644 --- a/Laravel/app/Http/Controllers/API/Internal/OrderController.php +++ b/Laravel/app/Http/Controllers/API/Internal/OrderController.php @@ -15,13 +15,13 @@ class OrderController extends Controller $password = request('password'); $serve_id = request('serve_id'); $exam_id = request('exam_id'); - if(!isset($exam_id) or empty($exam_id)) return \Yz::echoError1("体检号不能为空"); + if (!isset($exam_id) or empty($exam_id)) return \Yz::echoError1("体检号不能为空"); if ($password !== 'YRtA1rx1iWgbpYKX') return \Yz::echoError1("校验密码失败"); if (isset($serve_id) and !empty($serve_id) and $serve_id <> '') { //到检通知 $orderInfo = DB::table('orders')->where('appointment_number', $serve_id)->orderBy('id', 'desc')->first(); - if (!$orderInfo){ + if (!$orderInfo) { return $this->CreateOrder($exam_id); - }else{ + } else { if (!!$exam_id) { if ($orderInfo->status == 1) return \Yz::echoError1("订单未付款"); if ($orderInfo->status == 3) return \Yz::echoError1("订单已取消"); @@ -39,7 +39,7 @@ class OrderController extends Controller 'tj_number' => $exam_id, 'check_status' => 2, 'check_time' => date('Y-m-d H:i:s'), - 'check_read_status'=>1 + 'check_read_status' => 1 ]); return \Yz::Return(true, "", ['id' => $orderInfo->id]); } else { @@ -51,6 +51,7 @@ class OrderController extends Controller return $this->CreateOrder($exam_id); } } + //根据体检号拉取数据进行存储 public function CreateOrder($exam_id) { @@ -65,36 +66,36 @@ class OrderController extends Controller $reports = $peis::Post('体检报告查询', 1, $data); if (isset($reports['data'][0]['收费项目列表'])) { $data = $reports['data'][0]; - $items=[]; + $items = []; foreach ($data['收费项目列表'] as $it) { - $items[]=[ + $items[] = [ 'id' => $it['收费项目Id'], 'name' => $it['收费项目名称'], 'price' => '', ]; } - $buyInfo=[ - 'combo'=>[ - 'id'=>0, - 'name'=>'', - 'price'=>'' + $buyInfo = [ + 'combo' => [ + 'id' => 0, + 'name' => '', + 'price' => '' ], - 'items'=>$items, - 'group'=>[ - 'id'=>'', + 'items' => $items, + 'group' => [ + 'id' => '', ] ]; $sex = 0; if ($data['性别'] == '男') $sex = 1; if ($data['性别'] == '女') $sex = 2; $dataInfo = [ - 'hospital_id'=>1, + 'hospital_id' => 1, 'title' => $data['套餐名称'], 'type' => $data['单位名称'] == '个人' ? 1 : 2, 'source' => '体检推送', 'name' => $data['姓名'], 'id_number' => $data['证件号码'], - 'person_id'=>0, + 'person_id' => 0, 'buy_info' => json_encode($buyInfo, JSON_UNESCAPED_UNICODE), 'status' => 4, 'plan_number' => $data['分诊信息'], @@ -106,10 +107,10 @@ class OrderController extends Controller 'check_status' => 2, 'check_time' => $data['登记时间'], ]; - $insert=DB::table('orders')->insert($dataInfo); - if($insert){ + $insert = DB::table('orders')->insert($dataInfo); + if ($insert) { return \Yz::Return(true, "创建成功", ['id' => $insert]); - }else{ + } else { return \Yz::echoError1("创建失败"); } } else { @@ -136,4 +137,86 @@ class OrderController extends Controller 'info' => $order_info ]); } + + //线下预约完后,未支付,未到检,推送过来订单,由H5进行后续流程,支付改约等 + public function OfflineOrderPush() + { + $password = request('password'); + if ($password !== 'YRtA1rx1iWgbpYKX') return \Yz::echoErrorJson("校验密码失败"); + $hospital_id = request('hospital_id'); //秀英院区1,府城院区4 + $appointment_number = request('appointment_number'); + $plan_id = request('plan_id'); + if (!isset($plan_id) or empty($plan_id)) return \Yz::echoErrorJson("占用的号源id不能为空"); + $plan_info=DB::table('plans')->where('id', $plan_id)->first(); + $data = [ + "证件号码" => null, + "电话号码" => null, + "预约Id" => $appointment_number, + ]; + $peis = new PEISApiController(); + $info = $peis::Post('个检预约查询', $hospital_id, $data); + if (isset($info['data'][0])) { + $res = $info['data'][0]; + $checkup_type_id = null; + $checkup_type = DB::table('checkup_type')->where('name', $res['体检类型'])->first(); + if(!!$checkup_type) $checkup_type_id = $checkup_type->id; +// $title=$res['项目列表']; +// if(empty($res['项目列表']) and $res['总计金额']==0){ +// $title='空号源'; +// } + $items = []; + foreach ($res['项目列表'] as $it) { + $items[] = [ + 'id' => $it['Id'], + 'name' => $it['名称'], + 'price' => $it['价格'], + ]; + } + $buyInfo = [ + 'combo' => [ + 'id' => 0, + 'name' => '', + 'price' => '' + ], + 'items' => $items, + 'group' => [ + 'id' => '', + ] + ]; + $orderController= new \App\Http\Controllers\API\H5\OrderController(); + $save_data = [ + 'title' => $res['套餐名称'], + 'type' => 1, + 'source' => count($items)==0?'线下体检预约-空号源':'线下体检预约-项目', + 'checkup_type_id' => $checkup_type_id, + 'person_id' => 0, + 'name' => $res['姓名'], + 'id_number' => $res['证件号码'], + 'buy_info' => json_encode($buyInfo, JSON_UNESCAPED_UNICODE), + 'price' => $res['总计金额'], + 'true_price' => $res['总计金额'], + 'order_number' =>$orderController->generateOrderNumber(), + 'status' =>1, + 'appointment_date' =>$plan_info->date, + 'appointment_time' =>$plan_info->time, + 'appointment_number' =>$res['预约Id'], + 'appointment_back_info' => json_encode($res, JSON_UNESCAPED_UNICODE), + 'plan_id' =>$plan_info->id, + 'plan_number' =>$plan_info->plan_number, + 'hospital_id' =>$hospital_id, + 'phone' =>$res['电话号码'], + 'sex' =>null, + 'birthday' =>null, + 'married' =>4, + ]; + $insert = DB::table('orders')->insert($save_data); + if ($insert) { + return \Yz::Return(true, "创建成功", ['id' => $insert]); + } else { + return \Yz::echoErrorJson("创建失败"); + } + } else { + return \Yz::echoErrorJson("未获取到预约信息"); + } + } } diff --git a/Laravel/routes/web.php b/Laravel/routes/web.php index df37f0d..2518617 100644 --- a/Laravel/routes/web.php +++ b/Laravel/routes/web.php @@ -115,7 +115,8 @@ Route::group(['middleware' => ['log'],'prefix' => 'api/Web'], function () { //对外------ Route::any('/TJPushInfo', 'App\Http\Controllers\API\Internal\SiXinPushController@PushInfo');//接收思信推送 -Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck')->middleware('log');//到检 +Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck')->middleware('log');//到检通知 +Route::any('/OfflineOrderPush', 'App\Http\Controllers\API\Internal\OrderController@OfflineOrderPush')->middleware('log');//线下预约完后,推送过来订单 Route::any('/OrderBatchCancel', 'App\Http\Controllers\API\H5\OrderController@BatchCancel');//批量取消 Route::any('/CancelZhuanZeng', 'App\Http\Controllers\API\H5\OrderNewController@CancelZhuanZeng')->middleware('log');//取消转赠