$params['title'], 'template_id' => $params['template_id'], 'company_id' => $params['company_id'], // 'admin_id' => $params['admin_id'], 'start_time' => strtotime($params['start_time']), 'end_time' => strtotime($params['end_time']), 'director_uid' => $params['director_uid'], 'type' => $params['type'], 'status' => $params['status'], 'content' => $params['content'], 'extend' => json_encode($params['extend']) ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * 定时添加任务 */ public static function CronAdd(array $v,$datas): bool { try { $time=strtotime(date('Y-m-d')); $TaskSchedulingPlan_data=[ 'create_user_id' => 0, 'company_id' => $v['company_id'], 'template_id' => $v['id'], 'scheduling_id' => $v['task_scheduling'], 'start_time' => $time, 'end_time' => $time+86399, 'sn' =>User::createUserSn(), 'status' => 1 ]; //入股任务 if($v['type']==35){ $user_ids=User::where('company_id', $v['company_id'])->where('is_captain',1)->field('id,nickname')->select(); if($user_ids){ foreach($user_ids as $u_k=>$u_v){ $find_35=Task::where('company_id', $v['company_id'])->where('id', $v['id'])->where('type',35)->where('director_uid',$u_v['id'])->where('status',3)->find(); if(!$find_35){ $TaskSchedulingPlan=TaskSchedulingPlan::create($TaskSchedulingPlan_data); $arr = [ 'template_id' => $v['id'], 'scheduling_plan_id' => $TaskSchedulingPlan['id'], 'company_id' => $v['company_id'], 'title' => $v['title'], 'money' => $v['money'], 'type' => $v['type'], 'content' => $v['content'], 'start_time' => $time, 'end_time' => $time+86399, 'create_time' => time(), 'update_time' => time(), ]; $data = $arr; $data['money'] = 0; $data['extend'] = json_encode(['shareholder'=>['money'=>$v['recharge'],'over_decimal'=>$v['over_decimal'],'count_money'=>$v['recharge']*count($user_ids)]]); $data['type'] = 35; $data['title'] = $u_v['nickname'].'的入股任务'; $data['status'] = 2; $data['director_uid'] = $u_v['id']; $task_id = (new Task())->insertGetId($data); TaskSchedulingPlan::where('id', $TaskSchedulingPlan['id'])->update(['task_id' => $task_id, 'is_execute' => 1]); } } return true; }else{ Log::info('没有队长,任务下发失败'. json_encode($v)); return false; } } $TaskSchedulingPlan=TaskSchedulingPlan::create($TaskSchedulingPlan_data); $arr = [ 'template_id' => $v['id'], 'scheduling_plan_id' => $TaskSchedulingPlan['id'], 'company_id' => $v['company_id'], 'title' => $v['title'], 'money' => $v['money'], 'type' => $v['type'], 'content' => $v['content'], 'start_time' => $time, 'end_time' => $time+86399, 'create_time' => time(), 'update_time' => time(), ]; $data = $arr; $data['money'] = self::task_money($v,$datas); $data['extend'] = json_encode($v['extend']); //信息更新 if ($v['type'] == 31) { $finds=TaskTemplate::where('id', $v['id'])->field('information_count,information_day_count')->find(); $update=0; if($finds['information_count']>$finds['information_day_count']){ $day_count=$finds['information_count']-$finds['information_day_count']; if($day_count>=5){ $update=5; }else{ $update=$day_count; } } $data["extend"] = json_encode(['informationg' => ['count' => 5, 'update' => $update]]); TaskTemplate::where('id', $v['id'])->inc('information_day_count', 5)->update(); } if ($v['type'] == 32) { $data['director_uid'] = $datas['company_info']['user_id']; } $task_id = (new Task())->insertGetId($data); TaskSchedulingPlan::where('id', $TaskSchedulingPlan['id'])->update(['task_id' => $task_id, 'is_execute' => 1]); // TaskTemplate::where('id', $v['id'])->update(['cron_time' => time()]); return true; } catch (\Exception $e) { Log::error('定时任务添加失败', [$e->getMessage()]); return false; } } //任务金额 private static function task_money($v,$datas) { if ($v['types'] == 1 || $v['types'] == 3) { if ($datas['company_info'] && $datas['company_info']['day_count'] <= $v['stage_day_one']) { return $v['money']; } else { return $v['money_two']; } } elseif ($v['types'] == 2) { if ($datas['company_info']['day_count'] <= $v['stage_day_one']) { return $v['money']; } elseif ($datas['company_info']['day_count'] <= $v['stage_day_two']) { return $v['money_two']; } else { return $v['money_three']; } } else { if ( $datas['company_info']['day_count'] <= $v['stage_day_one']) { $a = $v['money']; } else { $a = $v['money_two']; } if ($datas['company_info'] && $datas['company_info']['day_count'] >= $v['stage_day_two']) { TaskTemplate::where('id', $v['id'])->update(['status' => 0]); } return $a; } } /** * @notes 更新任务状态 * @param array $params * @return bool * @author likeadmin * @date 2023/08/05 13:39 */ public static function edit(array $params): bool { Db::startTrans(); try { Task::where('id', $params['id'])->update(['status' => 3, 'update_time' => time()]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除任务 * @param array $params * @return bool * @author likeadmin * @date 2023/08/05 13:39 */ public static function delete(array $params): bool { return Task::destroy($params['id']); } /** * @notes 获取任务详情 * @param $params * @return array * @author likeadmin * @date 2023/08/05 13:39 */ public static function detail($params): array { $task = Task::findOrEmpty($params['id'])->toArray(); if ($task) { if (isset($task['extend']['informationg'])) { $task['extend']['informationg'] = UserInformationg::where('id', $task['extend']['informationg'])->field('name,phone,sex,age,update_time') ->find()->toArray(); } } return $task; } }