更新
This commit is contained in:
parent
fa520f572d
commit
9669673fec
@ -4,10 +4,6 @@ namespace app\job;
|
|||||||
|
|
||||||
use app\common\logic\task\TaskLogic;
|
use app\common\logic\task\TaskLogic;
|
||||||
use think\queue\Job;
|
use think\queue\Job;
|
||||||
use app\common\model\Company;
|
|
||||||
use app\common\model\task\Task;
|
|
||||||
use app\common\model\task_scheduling\TaskScheduling;
|
|
||||||
use app\common\model\task_template\TaskTemplate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务下发执行的具体逻辑
|
* 任务下发执行的具体逻辑
|
||||||
@ -15,12 +11,12 @@ use app\common\model\task_template\TaskTemplate;
|
|||||||
class TaskAdd
|
class TaskAdd
|
||||||
{
|
{
|
||||||
|
|
||||||
public function fire(Job $job, $v)
|
public function fire(Job $job, $data)
|
||||||
{
|
{
|
||||||
if ($job->attempts() > 3) {
|
if ($job->attempts() > 3) {
|
||||||
//通过这个方法可以检查这个任务已经重试了几次了
|
//通过这个方法可以检查这个任务已经重试了几次了
|
||||||
}
|
}
|
||||||
// TaskLogic::CronAdd($v);
|
TaskLogic::CronAdd($data['data'],$data['data_two']);
|
||||||
//如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
|
//如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
|
||||||
$job->delete();
|
$job->delete();
|
||||||
}
|
}
|
||||||
|
@ -10,12 +10,14 @@ use app\common\model\Company;
|
|||||||
use app\common\model\task_template\TaskTemplate;
|
use app\common\model\task_template\TaskTemplate;
|
||||||
use app\common\logic\task\TaskLogic;
|
use app\common\logic\task\TaskLogic;
|
||||||
use app\common\model\task_scheduling\TaskScheduling;
|
use app\common\model\task_scheduling\TaskScheduling;
|
||||||
class TaskCron extends Task{
|
|
||||||
|
class TaskCron extends Task
|
||||||
|
{
|
||||||
|
|
||||||
public function configure()
|
public function configure()
|
||||||
{
|
{
|
||||||
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
|
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
|
||||||
// $this->everyMinute();
|
// $this->everyMinute();//每分钟
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 执行任务
|
* 执行任务
|
||||||
@ -25,85 +27,92 @@ class TaskCron extends Task{
|
|||||||
{
|
{
|
||||||
//任务下发
|
//任务下发
|
||||||
// $time=strtotime(date('Y-m-d',strtotime('-1 day')));
|
// $time=strtotime(date('Y-m-d',strtotime('-1 day')));
|
||||||
$time=strtotime(date('Y-m-d'));
|
$time = strtotime(date('Y-m-d'));
|
||||||
// $tiem_end=$time+86399;
|
// $tiem_end=$time+86399;
|
||||||
$plan_all=TaskScheduling::where('cron_time','<',$time)->where('status',1)->with('company_info')->select()->toArray();
|
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->with('company_info')->select()->toArray();
|
||||||
$plan_ids=[];
|
$plan_ids = [];
|
||||||
foreach($plan_all as $k=>$v){
|
foreach ($plan_all as $k => $v) {
|
||||||
$all=TaskTemplate::where('status',1)->where('task_scheduling',$v['id'])->limit(30)->select()->toArray();
|
$all = TaskTemplate::where('status', 1)->where('task_scheduling', $v['id'])->limit(30)->select()->toArray();
|
||||||
$plan_ids[]=$v['id'];
|
$plan_ids[] = $v['id'];
|
||||||
if($all){
|
if ($all) {
|
||||||
$plan_all[$k]['template']=$all;
|
$plan_all[$k]['template'] = $all;
|
||||||
}else{
|
} else {
|
||||||
unset($plan_all[$k]);
|
unset($plan_all[$k]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$company_id=[];
|
$company_id = [];
|
||||||
foreach($plan_all as $k=>$v){
|
foreach ($plan_all as $k => $v) {
|
||||||
foreach($v['template'] as $kkk=>$vvv){
|
foreach ($v['template'] as $kk => $vv) {
|
||||||
if ($v['types'] == 1 ||$vvv['types'] == 3) {
|
queue(TaskAdd::class,['data'=>$vv,'data_two'=>$v]);
|
||||||
if ($v['company_info'] && $v['company_info']['day_count'] <=$vvv['stage_day_one']) {
|
|
||||||
$res=$this->stage_inspection($v['template'],'moeny','一');
|
|
||||||
if($res==false){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$res=$this->stage_inspection($v['template'],'money_two','二');
|
|
||||||
if($res==false){
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($v['types'] == 2) {
|
$company_id[] = $v['company_id'];
|
||||||
if ($v['company_info']['day_count'] <=$vvv['stage_day_one']) {
|
Company::where('id', 'in', $company_id)->inc('day_count')->update();
|
||||||
$res=$this->stage_inspection($v['template'],'moeny','一');
|
TaskScheduling::where('id', 'in', $plan_ids)->update(['cron_time' => time()]);
|
||||||
if($res==false){
|
Log::error('定时任务下发执行成功' . date('Y-m-d H:i:s'));
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} elseif ($v['company_info']['day_count'] <=$vvv['stage_day_two']) {
|
|
||||||
$res=$this->stage_inspection($v['template'],'money_two','二');
|
|
||||||
if($res==false){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$res=$this->stage_inspection($v['template'],'money_three','三');
|
|
||||||
if($res==false){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ( $v['company_info']['day_count'] <=$vvv['stage_day_one']) {
|
|
||||||
$res=$this->stage_inspection($v['template'],'money_three','三');
|
|
||||||
if($res==false){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$res=$this->stage_inspection($v['template'],'money_two','二');
|
|
||||||
if($res==false){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach($v['template'] as $kk=>$vv){
|
|
||||||
TaskLogic::CronAdd($vv,$v);
|
|
||||||
}
|
|
||||||
$company_id[]=$v['company_id'];
|
|
||||||
}
|
|
||||||
Company::where('id','in',$company_id)->inc('day_count')->update();
|
|
||||||
TaskScheduling::where('id','in',$plan_ids)->update(['cron_time' => time()]);
|
|
||||||
Log::error('定时任务下发执行成功'.date('Y-m-d H:i:s'));
|
|
||||||
//...具体的任务执行
|
//...具体的任务执行
|
||||||
}
|
}
|
||||||
|
|
||||||
public function stage_inspection($v,$moeny_type='moeny',$title='一'){
|
public function stage_inspection($v, $moeny_type = 'moeny', $title = '一')
|
||||||
$count_moeny=0;
|
{
|
||||||
foreach($v['template'] as $kkkk=>$vvvv){
|
$count_moeny = 0;
|
||||||
$count_moeny+=$vvvv[$moeny_type];
|
foreach ($v['template'] as $kkkk => $vvvv) {
|
||||||
|
$count_moeny += $vvvv[$moeny_type];
|
||||||
}
|
}
|
||||||
if($count_moeny>200){
|
if ($count_moeny > 200) {
|
||||||
Log::info($title.'阶段金额大于200无法下达'.json_encode($v['company_info']));
|
Log::info($title . '阶段金额大于200无法下达' . json_encode($v['company_info']));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// foreach($plan_all as $k=>$v){
|
||||||
|
// foreach($v['template'] as $kkk=>$vvv){
|
||||||
|
// if ($v['types'] == 1 ||$vvv['types'] == 3) {
|
||||||
|
// if ($v['company_info'] && $v['company_info']['day_count'] <=$vvv['stage_day_one']) {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'moeny','一');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'money_two','二');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } elseif ($v['types'] == 2) {
|
||||||
|
// if ($v['company_info']['day_count'] <=$vvv['stage_day_one']) {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'moeny','一');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } elseif ($v['company_info']['day_count'] <=$vvv['stage_day_two']) {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'money_two','二');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'money_three','三');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// if ( $v['company_info']['day_count'] <=$vvv['stage_day_one']) {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'money_three','三');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// $res=$this->stage_inspection($v['template'],'money_two','二');
|
||||||
|
// if($res==false){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// foreach($v['template'] as $kk=>$vv){
|
||||||
|
// TaskLogic::CronAdd($vv,$v);
|
||||||
|
// }
|
||||||
|
// $company_id[]=$v['company_id'];
|
||||||
|
// }
|
@ -12,7 +12,7 @@ class TaskSettlementCron extends Task{
|
|||||||
public function configure()
|
public function configure()
|
||||||
{
|
{
|
||||||
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
|
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
|
||||||
// $this->everyMinute();
|
// $this->everyMinute();//每分钟
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 任务结算
|
* 任务结算
|
||||||
|
Loading…
x
Reference in New Issue
Block a user