From c7587538b61e939040ba9242be6eade24f1f60ea Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Thu, 21 Sep 2023 16:54:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=BB=84=E6=9C=8D=E5=8A=A1=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=201=E4=B8=8B=E5=8F=91=E5=8D=95=E6=AC=A1=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=97=B6=EF=BC=8C=E5=B0=86=E4=BB=BB=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=9A=84=E4=BB=BB=E5=8A=A1=E7=B4=AF=E8=AE=A1=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=A4=A9=E6=95=B0+1=EF=BC=8C=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E6=97=B6=E7=94=A8=E4=BA=8E=E5=88=A4=E6=96=AD=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E8=B6=85=E6=97=B6=202=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E6=97=B6=E5=88=A4=E6=96=AD=E3=80=90=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E4=BB=BB=E5=8A=A1=E3=80=91=E6=9C=AA=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E8=A6=81=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E4=BB=BB=E5=8A=A1=E7=9A=84=E5=BC=80=E5=A7=8B=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E9=97=B4=E3=80=82=E8=B6=85=E6=97=B6=E5=88=99?= =?UTF-8?q?=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/logic/task/TaskLogic.php | 22 +++++++++++++++- app/job/TaskInformationJob.php | 40 ++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/app/common/logic/task/TaskLogic.php b/app/common/logic/task/TaskLogic.php index b983cedf2..e6ceca0a9 100644 --- a/app/common/logic/task/TaskLogic.php +++ b/app/common/logic/task/TaskLogic.php @@ -79,6 +79,8 @@ class TaskLogic extends BaseLogic if ($v['types'] == 3) { $task = Task::where('template_id', $v['id'])->find(); if ($task) { + // 累计任务进行天数,单次任务结算时,用于判断任务是否超时 + TaskTemplate::where('id', $v['id'])->inc('day_count')->update(); // Task::where('template_id', $v['id'])->update(['start_time' => strtotime($task['start_time']) + 86400, 'end_time' => strtotime($task['end_time']) + 86400]); // TaskTemplate::where('id', $v['id'])->inc('day_count')->update(); return true; @@ -400,7 +402,7 @@ class TaskLogic extends BaseLogic self::dealTownTask1($taskSchedulePlan); break; case 'town_task_type_2': - // 协助总负责人开展工作任务 + // 协助总负责人开展工作任务 单次任务 周期内未完成要刷新任务的时间 self::dealTownTask2($taskSchedulePlan); break; case 'town_task_type_3': @@ -474,6 +476,24 @@ class TaskLogic extends BaseLogic { $taskTemplateInfo = $taskSchedulePlan['template_info']; $taskScheduleInfo = $taskSchedulePlan['scheduling']; + $day = $taskTemplateInfo['stage_day_one'] + $taskTemplateInfo['stage_day_two']; + if($taskTemplateInfo['day_count']>$day){ + Task::where('id', $taskSchedulePlan['task_id'])->update(['status' =>5]); + Log::info($taskTemplateInfo['title'] . '结算失败,任务为超时:' . json_encode($taskSchedulePlan)); + return false; + } + + $task = Task::where('id', $taskSchedulePlan['task_id'])->field('director_uid,status,money,start_time,end_time')->with('director_info')->find(); + if($taskTemplateInfo['day_count'] <= $day){ + TaskSchedulingPlan::where('id', $taskSchedulePlan['id'])->update(['is_pay' => 0]); + try{ + Task::where('id', $taskSchedulePlan['task_id'])->update(['create_time' => $task['start_time']+86400,'update_time' =>time(),'start_time'=>$task['start_time']+86400,'end_time'=>$task['start_time']+86400+86399]); + }catch(\Exception $e){ + $start_time = strtotime(date('Y-m-d')); + Task::where('id', $taskSchedulePlan['task_id'])->update(['create_time' => $start_time+86400,'update_time' =>time(),'start_time'=>$start_time+86400,'end_time'=> $start_time + 86400+86399]); + } + } + } private static function dealTownTask3($taskSchedulePlan) diff --git a/app/job/TaskInformationJob.php b/app/job/TaskInformationJob.php index 3b399b32a..9506d352b 100644 --- a/app/job/TaskInformationJob.php +++ b/app/job/TaskInformationJob.php @@ -93,6 +93,11 @@ class TaskInformationJob $arr['money'] = $task_35['money']; $arr['company_account_type'] = 2; }else{ + /** + * 判断入股任务 单次类型 是否超时 + * 未超时时刷新开始结束时间 + * 超时则关闭 + */ if($data['template_info']['day_count']<=$day){ TaskSchedulingPlan::where('id', $data['id'])->update(['is_pay' => 0]); try{ @@ -100,10 +105,10 @@ class TaskInformationJob }catch(\Exception $e){ $start_time = strtotime(date('Y-m-d')); Task::where('id', $data['task_id'])->update(['create_time' => $start_time+86400,'update_time' =>time(),'start_time'=>$start_time+86400,'end_time'=> $start_time + 86400+86399]); - } return false; } + if($data['template_info']['day_count']>$day){ Task::where('id', $data['task_id'])->update(['status' =>5]); Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data)); @@ -117,15 +122,32 @@ class TaskInformationJob } else { //其他类型任务 - $task_count = Task::where('id', $data['task_id'])->field('director_uid,money')->where('status', 3)->with('director_info')->find(); - if (empty($task_count)) { - Log::info('其他任务 ' . $data['template_info']['title'] . '结算失败,任务为空:' . json_encode($data)); - Task::where('id', $data['task_id'])->update(['status' => 5]); - return false; + $task = Task::where('id', $data['task_id'])->with('director_info')->find(); + if ($task['status'] == 3) { + $name = $task['director_info']['nickname']; + $arr['status'] = 1; + $arr['money'] = $task['money']; + } else if ($task['status'] == 2) { + // 是否超时 + $day= $data['template_info']['stage_day_one'] + $data['template_info']['stage_day_two']; + + if($data['template_info']['day_count'] >= $day){ + Task::where('id', $data['task_id'])->update(['status' =>5]); + Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data)); + return false; + } + + if($data['template_info']['day_count'] < $day){ + TaskSchedulingPlan::where('id', $data['id'])->update(['is_pay' => 0]); + try{ + Task::where('id', $data['task_id'])->update(['create_time' => $task['start_time']+86400,'update_time' =>time(),'start_time'=>$task['start_time']+86400,'end_time'=>$task['start_time']+86400+86399]); + }catch(\Exception $e){ + $start_time = strtotime(date('Y-m-d')); + Task::where('id', $data['task_id'])->update(['create_time' => $start_time+86400,'update_time' =>time(),'start_time'=>$start_time+86400,'end_time'=> $start_time + 86400+86399]); + } + return false; + } } - $name = $task_count['director_info']['nickname']; - $arr['status'] = 1; - $arr['money'] = $task_count['money']; } } catch (\Exception $e) { Log::error('line:'.$e->getLine().'异常报错:任务结算失败:' . $data['template_info']['title'] . $e->getMessage() . json_encode($data));