2023-08-10 17:10:12 +08:00
|
|
|
|
<?php
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
|
|
|
|
use app\common\logic\finance\ShareProfit;
|
|
|
|
|
use app\common\logic\task\TaskLogic;
|
2023-08-14 17:44:55 +08:00
|
|
|
|
use app\common\model\Company;
|
2023-08-10 17:10:12 +08:00
|
|
|
|
use app\common\model\task\Task;
|
|
|
|
|
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
2023-08-18 16:32:41 +08:00
|
|
|
|
use app\common\model\task_template\TaskTemplate;
|
2023-08-14 17:44:55 +08:00
|
|
|
|
use think\facade\Log;
|
2023-08-15 14:38:20 +08:00
|
|
|
|
use app\job\TaskInformationJob;
|
2023-08-10 17:10:12 +08:00
|
|
|
|
|
|
|
|
|
class CeshiController extends BaseApiController
|
|
|
|
|
{
|
|
|
|
|
public array $notNeedLogin = ['index','ceshi'];
|
|
|
|
|
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
2023-08-18 17:29:51 +08:00
|
|
|
|
// $all=TaskSchedulingPlan::whereDay('end_time','yesterday')->where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
|
|
|
|
|
// halt($all);
|
|
|
|
|
$all=TaskSchedulingPlan::where('id',411)->with(['template_info','scheduling'])->select()->toArray();
|
2023-08-15 14:38:20 +08:00
|
|
|
|
foreach($all as $k=>$v){
|
|
|
|
|
queue(TaskInformationJob::class,$v);
|
|
|
|
|
}
|
|
|
|
|
halt(1);
|
2023-08-14 17:44:55 +08:00
|
|
|
|
//,'yesterday'
|
|
|
|
|
$all=TaskSchedulingPlan::whereDay('end_time')->where('is_pay',0)->with(['template_info','scheduling'])->select();
|
2023-08-10 17:10:12 +08:00
|
|
|
|
foreach($all as $k=>$data){
|
|
|
|
|
$task_id=explode(',',$data['task_id']);
|
2023-08-11 16:35:07 +08:00
|
|
|
|
$task_count=Task::where('id','in',$task_id)->field('director_uid')->with('director_info')->select();
|
2023-08-14 17:44:55 +08:00
|
|
|
|
if(empty($task_count)){
|
|
|
|
|
Log::error('任务结算失败,任务id:'.$task_id);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2023-08-10 17:10:12 +08:00
|
|
|
|
if(count($task_count)==count($task_id)){
|
2023-08-11 16:35:07 +08:00
|
|
|
|
$name_arr=[];
|
|
|
|
|
foreach ($task_count as $key => $value) {
|
|
|
|
|
$name_arr[$key]=$value['director_info']['nickname'];
|
|
|
|
|
}
|
|
|
|
|
$name=implode(',',$name_arr);
|
2023-08-10 17:10:12 +08:00
|
|
|
|
$arr['money']=$data['template_info']['money'];
|
|
|
|
|
$arr['company_id']=$data['scheduling']['company_id'];
|
|
|
|
|
$arr['msg']='来自任务【'.$data['template_info']['title'].'】,执行人:'.$name.',的任务结算';
|
2023-08-14 17:44:55 +08:00
|
|
|
|
$arr['proportion_one']=$data['template_info']['proportion_one'];
|
|
|
|
|
$arr['proportion_two']=$data['template_info']['proportion_two'];
|
2023-08-10 17:10:12 +08:00
|
|
|
|
$arr['sn']=$data['sn'];
|
2023-08-14 17:44:55 +08:00
|
|
|
|
$arr['id']=$data['id'];
|
2023-08-10 17:10:12 +08:00
|
|
|
|
(new ShareProfit())->first($arr);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-08-11 16:35:07 +08:00
|
|
|
|
halt(2);
|
2023-08-10 17:10:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function ceshi(){
|
2023-08-18 16:32:41 +08:00
|
|
|
|
|
|
|
|
|
$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'];
|
|
|
|
|
}
|
|
|
|
|
halt(1);
|
2023-08-18 10:12:56 +08:00
|
|
|
|
$points = [
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.914962,
|
|
|
|
|
"lon"=>105.442355
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.915456,
|
|
|
|
|
"lon"=> 105.443891
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917516,
|
|
|
|
|
"lon"=> 105.443371
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917536,
|
|
|
|
|
"lon"=> 105.443415
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917001,
|
|
|
|
|
"lon"=> 105.442421
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917103,
|
|
|
|
|
"lon"=> 105.442291
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.916658,
|
|
|
|
|
"lon"=> 105.442897
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.916428,
|
|
|
|
|
"lon"=> 105.44278
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917073,
|
|
|
|
|
"lon"=> 105.443507
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917073,
|
|
|
|
|
"lon"=> 105.443522
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.916796,
|
|
|
|
|
"lon"=> 105.443466
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.916665,
|
|
|
|
|
"lon"=> 105.443357
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.916674,
|
|
|
|
|
"lon"=> 105.442294
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.916698,
|
|
|
|
|
"lon"=> 105.442268
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917279,
|
|
|
|
|
"lon"=> 105.443006
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"lat"=> 28.917234,
|
|
|
|
|
"lon"=> 105.442979
|
|
|
|
|
]
|
|
|
|
|
];
|
|
|
|
|
$target =[
|
|
|
|
|
"lat"=> 28.917378,
|
|
|
|
|
"lon"=> 105.443005
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$closestPoint = $this->getClosestPoint($points, $target);
|
|
|
|
|
halt($closestPoint);
|
2023-08-10 17:10:12 +08:00
|
|
|
|
// $time=strtotime(date('Y-m-d',strtotime('+1 day')));
|
|
|
|
|
$time=strtotime(date('Y-m-d'));
|
|
|
|
|
$tiem_end=$time+86399;
|
2023-08-14 17:44:55 +08:00
|
|
|
|
$all=TaskSchedulingPlan::where('start_time','between',[$time,$tiem_end])->where('is_execute',0)->with(['template_info','scheduling','company'])->select()->toArray();
|
|
|
|
|
$company_id=0;
|
2023-08-10 17:10:12 +08:00
|
|
|
|
foreach($all as $k=>$v){
|
|
|
|
|
TaskLogic::CronAdd($v);
|
2023-08-14 17:44:55 +08:00
|
|
|
|
$company_id=$v['company_id'];
|
|
|
|
|
}
|
|
|
|
|
if($company_id!=0){
|
|
|
|
|
Company::where('id',$company_id)->inc('day_count')->update();
|
2023-08-10 17:10:12 +08:00
|
|
|
|
}
|
2023-08-11 16:35:07 +08:00
|
|
|
|
halt(TaskLogic::getError());
|
2023-08-10 17:10:12 +08:00
|
|
|
|
}
|
2023-08-18 10:12:56 +08:00
|
|
|
|
|
|
|
|
|
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];
|
|
|
|
|
}
|
2023-08-10 17:10:12 +08:00
|
|
|
|
}
|