diff --git a/app/api/controller/CeshiController.php b/app/api/controller/CeshiController.php index 31e31041f..b5ec28fee 100644 --- a/app/api/controller/CeshiController.php +++ b/app/api/controller/CeshiController.php @@ -24,61 +24,15 @@ class CeshiController extends BaseApiController 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=TaskTemplate::where('cron_time','<',$time)->where('status',1)->with('company')->select()->toArray(); + $all=TaskTemplate::where('id',73)->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){ diff --git a/app/api/controller/RemoteController.php b/app/api/controller/RemoteController.php index cf5f851c5..af8f995db 100644 --- a/app/api/controller/RemoteController.php +++ b/app/api/controller/RemoteController.php @@ -92,4 +92,63 @@ class RemoteController extends BaseApiController return false; } } + + /** + * + * 获取坐标的距离 + */ + public function coordinate($parmas,$longitude1,$latitude1){ + + $res = HttpClient::create()->request('GET', 'http://logistics.lihaink.cn/api/getCarHistory', [ + 'query' => $parmas, + ]); + $json=json_decode($res->getContent(),true); + $points=$json['data']; + $target =[ + "lat"=> $latitude1, + "lon"=> $longitude1 + ]; + + $closestPoint = $this->getClosestPoint($points, $target); + return $this->calculateDistance($target['lon'], $target['lat'], $closestPoint[0]['lon'], $closestPoint[0]['lat']); + + } + + /** + * + * 计算两点之间的距离 + */ + 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; + } } diff --git a/app/common/logic/task/TaskLogic.php b/app/common/logic/task/TaskLogic.php index a482c25c0..ef2ec2be9 100644 --- a/app/common/logic/task/TaskLogic.php +++ b/app/common/logic/task/TaskLogic.php @@ -103,8 +103,6 @@ class TaskLogic extends BaseLogic if ($v['type'] == 31) { $data["extend"] = json_encode(['informationg' => ['count' => 5, 'update' => 0]]); TaskTemplate::where('id', $v['id'])->inc('information_day_count', 5)->update(); - } else { - $data["extend"] = json_encode([]); } if ($v['type'] == 32) { $data['director_uid'] = $v['company']['user_id']; diff --git a/app/job/TaskInformationJob.php b/app/job/TaskInformationJob.php index 895016018..0de2f526e 100644 --- a/app/job/TaskInformationJob.php +++ b/app/job/TaskInformationJob.php @@ -47,7 +47,17 @@ class TaskInformationJob } $name = $shang_date_total_price['name']; $arr['status'] = $shang_date_total_price['arr']['status']; - } else { + } elseif + //三轮车 + ($data['template_info']['type'] == 32){ + $task = Task::where('id', $data['task_id'])->field('director_uid')->where('status', 3)->with('director_info')->find(); + if(empty($task)){ + $task_car = Task::where('id', $data['task_id'])->field('director_uid,extend')->where('status', 2)->with('director_info')->find(); + + } + + } + else { //其他类型任务 $task_count = Task::where('id', $data['task_id'])->field('director_uid')->where('status', 3)->with('director_info')->find(); if (empty($task_count)) {