where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray(); // halt($all); $all=TaskSchedulingPlan::whereDay('end_time')->where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray(); foreach($all as $k=>$v){ queue(TaskInformationJob::class,$v); } halt(1); //,'yesterday' $all=TaskSchedulingPlan::whereDay('end_time')->where('is_pay',0)->with(['template_info','scheduling'])->select(); foreach($all as $k=>$data){ $task_id=explode(',',$data['task_id']); $task_count=Task::where('id','in',$task_id)->field('director_uid')->with('director_info')->select(); if(empty($task_count)){ Log::error('任务结算失败,任务id:'.$task_id); continue; } if(count($task_count)==count($task_id)){ $name_arr=[]; foreach ($task_count as $key => $value) { $name_arr[$key]=$value['director_info']['nickname']; } $name=implode(',',$name_arr); $arr['money']=$data['template_info']['money']; $arr['company_id']=$data['scheduling']['company_id']; $arr['msg']='来自任务【'.$data['template_info']['title'].'】,执行人:'.$name.',的任务结算'; $arr['proportion_one']=$data['template_info']['proportion_one']; $arr['proportion_two']=$data['template_info']['proportion_two']; $arr['sn']=$data['sn']; $arr['id']=$data['id']; (new ShareProfit())->first($arr); } } halt(2); } public function ceshi(){ $parmas=[ 'car_id'=>3, 'start_time'=>'2023-08-18', 'end_time'=>'2023-08-18 23:59:59', ]; $res = HttpClient::create()->request('GET', 'http://logistics.lihaink.cn/api/getCarHistory', [ 'query' => $parmas, ]); $json=json_decode($res->getContent(),true); $points=$json['data']; $target =[ "lat"=> 28.917378, "lon"=> 105.443005 ]; $closestPoint = $this->getClosestPoint($points, $target); halt($this->calculateDistance($target['lon'], $target['lat'], $closestPoint[0]['lon'], $closestPoint[0]['lat'],1)); halt($closestPoint); $time=strtotime(date('Y-m-d')); // $time=strtotime(date('Y-m-d')); // $tiem_end=$time+86399; $all=TaskTemplate::where('cron_time','<',$time)->where('status',1)->with('company')->select()->toArray(); // $all=TaskTemplate::where('id',60)->with('company')->select()->toArray(); // $all=TaskSchedulingPlan::where('start_time','between',[$time,$tiem_end])->where('is_execute',0)->with(['template_info','scheduling'])->select()->toArray(); $company_id=0; foreach($all as $k=>$v){ TaskLogic::CronAdd($v); $company_id=$v['company_id']; } } function getClosestPoint($points, $target) { $minDistance = PHP_INT_MAX; $closestPoint = null; foreach ($points as $point) { // halt($point,$target); $distance = sqrt(pow(($point['lat'] - $target['lat']), 2) + pow(($point['lon'] - $target['lon']), 2)); if ($distance < $minDistance) { $minDistance = $distance; $closestPoint = $point; } } return [$closestPoint,$distance]; } function calculateDistance( $longitude1,$latitude1, $longitude2,$latitude2 ) { $earthRadius = 6371; // 地球半径,单位为公里 $dLat = deg2rad($latitude2 - $latitude1); $dLon = deg2rad($longitude2 - $longitude1); $a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * sin($dLon/2) * sin($dLon/2); $c = 2 * asin(sqrt($a)); return $earthRadius * $c*1000; } }