where('date',$date)->whereIn('status',[1]) ->whereRaw('CONCAT(date, " ", time) >?', [$currentDateTime]) ->whereNull('bind_work_unit_id') ->where(function($query) use ($checkup_type_id) { foreach ($checkup_type_id as $id) { $query->orWhereRaw('JSON_CONTAINS(checkup_type_id, CAST(? AS JSON), "$")', [$id]); } }) ->where(['hospital_id'=>$hospital_id,'type'=>1,'is_del'=>0]) ->where('is_vip','=',$is_vip); $list=$list->orderBy('time','asc')->get(); return \Yz::Return(true,"查询完成",['list'=>$list]); } //给自助机用接口 //占用号源 public function UsePlan(){ $id =request('id'); $plan=DB::table('plans')->where('id',$id)->first(); if(!$plan) return \Yz::echoError1("该号源不存在"); if($plan->status<>1) return \Yz::echoError1("该号源已被占用,请重新选择"); $u=DB::table('plans')->where(['id'=>$id,'status'=>1,'is_del'=>0])->update(['status'=>2]); if($u){ return \Yz::Return(true,'占用成功',['id'=>$id]); }else{ return \Yz::echoError1("操作失败"); } } public function CancelUsePlan() { $id =request('id'); $appointment_number = request('appointment_number'); $plan=DB::table('plans')->where('id',$id)->first(); if(!$plan) return \Yz::echoError1("该号源不存在"); if($plan->status<>2) return \Yz::echoError1("该号源未被占用,无需撤销"); $order=DB::table('orders')->where(['plan_id'=>$id,'status'=>2])->whereNull('source')->first(); if($order){ if($order->type ==1){ return \Yz::echoError1("该预约来自小程序,请顾客在小程序操作,或到号源后台取消订单"); } if($order->type ==2){ return \Yz::echoError1("该预约来自小程序,请到号源后台取消订单"); } } $u=DB::table('plans')->where(['id'=>$id])->update(['status'=>1]); if($u){ $msg='撤销占用成功'; if(isset($appointment_number) and !empty($appointment_number)){ $tj_del= $this->TjDelete($appointment_number); $msg=isset($tj_del['msg'])?$msg.'. 附带通知删除订单:'.$tj_del['msg']:$msg; } return \Yz::Return(true,$msg,['id'=>$id]); }else{ return \Yz::echoError1("操作失败"); } } public function TjDelete($appointment_number) { $order=DB::table('orders')->where(['appointment_number' => $appointment_number])->first(); if(!!$order){ if(strpos($order->source, '线下体检预约') === false){ return ['status'=>false,'msg'=>'非线下预约订单,不能进行删除','data'=>null]; } if($order->status !==1){ return ['status'=>false,'msg'=>'订单非待预约状态,禁止删除','data'=>null]; } $orderJson = json_encode($order, JSON_UNESCAPED_UNICODE); $insert=DB::table('orders_delete')->insert(['order_info' =>$orderJson]); if($insert){ $del=DB::table('orders')->where(['id' => $order->id])->delete(); if($del){ return ['status'=>true,'msg'=>'通知删除成功','data'=>['appointment_number' => $appointment_number]]; }else{ return ['status'=>false,'msg'=>'删除失败','data'=>null]; } } }else{ return ['status'=>false,'msg'=>'预约Id不存在','data'=>null]; } } }