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'=>'0','tip_msg'=>'没有排号']; if(empty($data['orderId'])){ $defaulRes['tip_msg'] = '请输入订单id'; exit(json_encode($defaulRes)); } if($data['reqNo']) { Order::where('id',intval($data['orderId']))->update(['is_ticket'=>1]); $defaulRes['server_handle_result'] = '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['st']) ){ $defaulRes['tip_msg'] = '请输入时间信息'; exit(json_encode($defaulRes)); } $sign = md5($data['id'].$data['telephone'].$data['barcode'].$data['st'].$data['area'].'2018'); if(isset($data['sign']) && $data['sign'] == 1) dd($sign); if($data['sig'] != $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']) ->where('is_ticket','!=',1) ->where('product_type',4) ->select('id','order_sn','user_id','patient_id','is_ticket') ->with('orderPatient:order_id,appoint_start_time,appoint_end_time') ->with('patient:id,name'); if($data['st']){ $order = $order->whereHas('orderPatient',function ($query) use ($data){ $query->whereBetween('appoint_end_time',[time(),strtotime('tomorrow')]); }); } $order_list =$order->first(); if(isset($data['sql']) && $data['sql'] == 1) dd(DB::getQueryLog()); if(empty($order_list)){ $defaulRes['tip_msg'] = '无预约'; exit(json_encode($defaulRes)); } $order = $order_list->toArray(); $defaulRes['orderId'] = strval($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 < time() ){ $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; } else { $defaulRes['reserve_check_result'] = '1'; $defaulRes['allow_post_ticket'] = '0'; $defaulRes['tip_msg'] = '此订单已取号'; } $defaulRes['reserve_name'] = $order['patient']['name'] ?? ''; exit(json_encode($defaulRes)); } } public function orverTime() { $st = strtotime('2020-02-25 18:00:00'); $orders = Order::select('id') ->where(['product_type'=>4,'order_status'=>7]) ->where('appoint_end_time','<',$st)->get(); foreach ($orders as $order){ Order::where('id',$order->id)->update(['order_status'=>4]); } } }