all(); $defaulRes = [ 'server_handle_result'=>'0', 'reserve_check_result'=>'0', 'allow_get_ticket'=>'0', 'tip_msg'=>'', 'reserve_service_no'=>'Y', 'reserve_date'=>'', 'reserve_start_time'=>'', 'reserve_end_time'=>'', 'allow_post_ticket'=>'0', 'reserve_name'=>'' ]; if(request()->isMethod('post')){ $defaulRes = ['server_handle_result'=>'1','tip_msg'=>'']; if(empty($data['orderId'])){ $defaulRes['tip_msg'] = '请输入订单id'; exit(json_encode($defaulRes)); } if($data['reqNo']) { Order::where('id',$data['orderId'])->update(['is_ticket'=>1]); $defaulRes['tip_msg'] = 'ok'; } exit(json_encode($defaulRes)); } else { if(empty($data['telephone'])){ $defaulRes['tip_msg'] = '请输入手机号'; exit(json_encode($defaulRes)); } if(empty($data['sig'])){ $defaulRes['tip_msg'] = '请输入sig签名'; exit(json_encode($defaulRes)); } // if(empty($data['secretKey']) || $data['secretKey'] !== '2018'){ // $defaulRes['tip_msg'] = 'secretKey秘钥错误'; // exit(json_encode($defaulRes)); // } if(empty($data['st']) ){ $defaulRes['tip_msg'] = '请输入时间信息'; exit(json_encode($defaulRes)); } $sign = md5($data['id'].$data['telephone'].$data['barcode'].$data['st'].$data['area'].'2018'); if($data['sign'] == 1) dd($sign); if($data['sign'] != $sign){ $defaulRes['tip_msg'] = '签名验证失败'; exit(json_encode($defaulRes)); } //先用患者表找,如果没有就直接查找用户表 $user_id = Patient::where('phone',$data['telephone'])->value('user_id'); if(empty($user_id)){ $user_id = User::where('phone',$data['telephone'])->value('id'); } if(empty($user_id)){ $defaulRes['tip_msg'] = '无效账号'; exit(json_encode($defaulRes)); } DB::enableQueryLog(); $order = Order::where('user_id',$user_id)->where('organization_id',$data['area'])->select('id','order_sn','user_id','patient_id','is_ticket')->with('orderPatient:order_id,appoint_start_time,appoint_end_time,name'); // if($data['st']){ // $order = $order->whereHas('orderPatient',function ($query) use ($data){ // $query->where('appoint_start_time','<=',$data['st']); // $query->where('appoint_end_time','>=',$data['st']); // }); // } //dd(strtotime('2021-01-21 12:00:00')); if($data['st']){ $order = $order->whereHas('orderPatient',function ($query) use ($data){ $query->where('appoint_start_time','>=',$data['st']); }); } $order_list =$order->first(); if($data['sql'] == 1) dd(DB::getQueryLog()); if(empty($order_list)){ $defaulRes['tip_msg'] = '无预约'; exit(json_encode($defaulRes)); } $order = $order_list->toArray(); $defaulRes['orderId'] = $order['id']; $defaulRes['server_handle_result'] = 1; if( $order['is_ticket'] == 0 && !empty($order['order_patient'])){ $start = intval($order['order_patient']['appoint_start_time']); $end = intval($order['order_patient']['appoint_end_time']); $date = date('Y-m-d',intval($order['order_patient']['appoint_start_time'])); if($end < intval($data['st']) ){ $defaulRes['tip_msg'] = '预约已过期,您预约的时间为:'.$date.' '.date('H:i',$start).'~'.date('H:i',$end); exit(json_encode($defaulRes)); } $defaulRes['reserve_start_time'] = date('H:i',$start); $defaulRes['reserve_end_time'] = date('H:i',$end); $defaulRes['allow_post_ticket'] = '1'; $defaulRes['allow_get_ticket'] = '1'; $defaulRes['reserve_check_result'] = '1'; $defaulRes['reserve_date'] = $date; $defaulRes['reserve_name'] = $order['order_patient']['name'] ?? ''; } else { $defaulRes['reserve_check_result'] = '1'; $defaulRes['allow_post_ticket'] = '0'; } exit(json_encode($defaulRes)); } } }