'') { //到检通知 $orderInfo = DB::table('orders')->where('appointment_number', $serve_id)->orderBy('id', 'desc')->first(); 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'), 'check_read_status'=>1 ]); return \Yz::Return(true, "", ['id' => $orderInfo->id]); } else { 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 = [ 'hospital_id'=>1, 'title' => $data['套餐名称'], 'type' => $data['单位名称'] == '个人' ? 1 : 2, 'source' => '体检推送', 'name' => $data['姓名'], 'id_number' => $data['证件号码'], 'person_id'=>0, 'buy_info' => json_encode($buyInfo, JSON_UNESCAPED_UNICODE), 'status' => 4, 'plan_number' => $data['分诊信息'], 'appointment_date' => explode('T', $data['登记时间'])[0], 'tj_number' => $exam_id, '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("根据体检号查询用户信息出错,结果非预期"); } } else { return \Yz::echoError1("体检号不能为空"); } } public function GetH5Order() { $appointment_number = request('appointment_number');//思信预约完成后的id if (!isset($appointment_number) || empty($appointment_number)) return \Yz::echoError1('预约id 不能为空'); $order_info = DB::table('orders')->where(['appointment_number' => $appointment_number, 'status' => 2, 'check_status' => 1])->first(); if (!!$order_info) { $order_info->buy_info = json_decode($order_info->buy_info, true); $order_info->erxian_appointment_info = json_decode($order_info->erxian_appointment_info, true); } else { return \Yz::echoError1('未找到有效订单'); } return \Yz::Return(true, '获取成功', [ 'info' => $order_info ]); } }