diff --git a/Laravel/app/Http/Controllers/API/Internal/OrderController.php b/Laravel/app/Http/Controllers/API/Internal/OrderController.php index 26b5614..8c7f7bf 100644 --- a/Laravel/app/Http/Controllers/API/Internal/OrderController.php +++ b/Laravel/app/Http/Controllers/API/Internal/OrderController.php @@ -15,97 +15,105 @@ 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 ($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) return \Yz::echoError1("未找到有效订单"); - if (!!$exam_id) { - if ($orderInfo->status == 1) return \Yz::echoError1("订单未付款"); - if ($orderInfo->status == 3) return \Yz::echoError1("订单已取消"); - if ($orderInfo->status == 4 || $orderInfo->check_status == 2) return \Yz::echoError1("人员已经到检"); - if ($orderInfo->status == 5) return \Yz::echoError1("订单已退款"); + if (!$orderInfo){ + return $this->CreateOrder($exam_id); + }else{ + if (!!$exam_id) { + if ($orderInfo->status == 1) return \Yz::echoError1("订单未付款"); + if ($orderInfo->status == 3) return \Yz::echoError1("订单已取消"); + if ($orderInfo->status == 4 || $orderInfo->check_status == 2) return \Yz::echoError1("人员已经到检"); + if ($orderInfo->status == 5) return \Yz::echoError1("订单已退款"); // $peis = new PEISApiController(); // $data = [ // "电话号码" => $orderInfo->phone, // "证件号码" => $orderInfo->id_number, // ]; // $info = $peis::Post('分诊查询体检号', $orderInfo->hospital_id,$data); - DB::table('orders')->where('id', $orderInfo->id)->update([ - 'status' => 4, - // 'tj_number'=>$info['data'][0]['体检号'], - 'tj_number' => $exam_id, - 'check_status' => 2, - 'check_time' => date('Y-m-d H:i:s') - ]); - return \Yz::Return(true, "", ['id' => $orderInfo->id]); - } else { - return \Yz::echoError1("体检号不能为空"); - } - } else { //体检直接登记用户信息,没经过h5登记。根据体检号查询信息入库 - if (isset($exam_id)) { - $peis = new PEISApiController(); - $data = [ - '电话号码' => "", - '证件号码' => "", - '体检号' => $exam_id, - '包含内部信息' => true - ]; - $reports = $peis::Post('体检报告查询', 1, $data); - if (isset($reports['data'][0]['收费项目列表'])) { - $data = $reports['data'][0]; - $items=[]; - foreach ($data['收费项目列表'] as $it) { - $items[]=[ - 'id' => $it['收费项目Id'], - 'name' => $it['收费项目名称'], - 'price' => '', - ]; - } - $buyInfo=[ - 'combo'=>[ - 'id'=>0, - 'name'=>'', - 'price'=>'' - ], - 'items'=>$items, - 'group'=>[ - 'id'=>'', - ] - ]; - $sex = 0; - if ($data['性别'] == '男') $sex = 1; - if ($data['性别'] == '女') $sex = 2; - $dataInfo = [ - 'title' => $data['套餐名称'], - 'type' => $data['单位名称'] == '个人' ? 1 : 2, - 'source' => '体检推送', - 'name' => $data['姓名'], - 'id_number' => $data['证件号码'], - 'buy_info' => json_encode($buyInfo, JSON_UNESCAPED_UNICODE), + DB::table('orders')->where('id', $orderInfo->id)->update([ 'status' => 4, - 'plan_number' => $data['分诊信息'], - 'phone' => $data['电话号码'], - 'sex' => $sex, - 'birthday' => explode('T', $data['出生日期'])[0], + // 'tj_number'=>$info['data'][0]['体检号'], + 'tj_number' => $exam_id, 'check_status' => 2, - 'check_time' => $data['登记时间'], - ]; - $insert=DB::table('orders')->insert($dataInfo); - if($insert){ - return \Yz::Return(true, "创建成功", ['id' => $insert]); - }else{ - return \Yz::echoError1("创建失败"); - } + 'check_time' => date('Y-m-d H:i:s') + ]); + return \Yz::Return(true, "", ['id' => $orderInfo->id]); } else { - return \Yz::echoError1("根据体检号查询用户信息出错,结果非预期"); + return \Yz::echoError1("体检号不能为空"); } + } + } else { //体检直接登记用户信息,没经过h5登记。根据体检号查询信息入库 + return $this->CreateOrder($exam_id); + } + } + //根据体检号拉取数据进行存储 + public function CreateOrder($exam_id) + { + if (isset($exam_id)) { + $peis = new PEISApiController(); + $data = [ + '电话号码' => "", + '证件号码' => "", + '体检号' => $exam_id, + '包含内部信息' => true + ]; + $reports = $peis::Post('体检报告查询', 1, $data); + if (isset($reports['data'][0]['收费项目列表'])) { + $data = $reports['data'][0]; + $items=[]; + foreach ($data['收费项目列表'] as $it) { + $items[]=[ + 'id' => $it['收费项目Id'], + 'name' => $it['收费项目名称'], + 'price' => '', + ]; + } + $buyInfo=[ + 'combo'=>[ + 'id'=>0, + 'name'=>'', + 'price'=>'' + ], + 'items'=>$items, + 'group'=>[ + 'id'=>'', + ] + ]; + $sex = 0; + if ($data['性别'] == '男') $sex = 1; + if ($data['性别'] == '女') $sex = 2; + $dataInfo = [ + 'title' => $data['套餐名称'], + 'type' => $data['单位名称'] == '个人' ? 1 : 2, + 'source' => '体检推送', + 'name' => $data['姓名'], + 'id_number' => $data['证件号码'], + 'buy_info' => json_encode($buyInfo, JSON_UNESCAPED_UNICODE), + 'status' => 4, + 'plan_number' => $data['分诊信息'], + 'phone' => $data['电话号码'], + 'sex' => $sex, + 'birthday' => explode('T', $data['出生日期'])[0], + 'check_status' => 2, + 'check_time' => $data['登记时间'], + ]; + $insert=DB::table('orders')->insert($dataInfo); + if($insert){ + return \Yz::Return(true, "创建成功", ['id' => $insert]); + }else{ + return \Yz::echoError1("创建失败"); + } } else { - return \Yz::echoError1("体检号不能为空"); + return \Yz::echoError1("根据体检号查询用户信息出错,结果非预期"); } - } - + } else { + return \Yz::echoError1("体检号不能为空"); + } } public function GetH5Order()