attempts() > 1) { // //通过这个方法可以检查这个任务已经重试了几次了 // } $company = Company::where('id', $data['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade')->find(); // 可能要判断预存金是否满足 $arr['status']=0; if ($data['template_info']['type'] == 31) { $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); return false; } 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['status']=1; }else{ Log::error('任务结算失败,任务id:' . $task_id); return false; } }else{ $task_count = Task::where('id', $data['task_id'])->field('director_uid')->with('director_info')->find(); if (empty($task_count)) { Log::error('任务结算失败,任务id:' . $data['task_id']); return false; } $name = $task_count['director_info']['nickname']; $arr['status']=1; } if ($data['template_info']['type'] == 32) { $yesterday = date('Y-m-d', strtotime('-1 day', time())); // "brigade_id" => "3", // "city_code" => "510500", // "district_code" => "510502", // "street_code" => "510502106", // "village_code" => "510502106201", $parmas = [ "start_date" => $yesterday, "end_date" => $yesterday ]; switch ($company['company_type']) { case 18: $parmas['brigade_id'] = $company['brigade']; $parmas['village_code'] = $company['village']; $parmas['street_code'] = $company['street']; $parmas['district_code'] = $company['area']; $parmas['city_code'] = $company['city']; break; case 17: $parmas['village_code'] = $company['village']; $parmas['street_code'] = $company['street']; $parmas['district_code'] = $company['area']; $parmas['city_code'] = $company['city']; break; case 16: $parmas['street_code'] = $company['street']; $parmas['district_code'] = $company['area']; $parmas['city_code'] = $company['city']; break; case 15: $parmas['district_code'] = $company['area']; $parmas['city_code'] = $company['city']; break; case 14: $parmas['city_code'] = $company['city']; break; default: Log::error('任务结算失败,公司类型错误:' . $company['company_type']); return false; } try { $res = HttpClient::create()->request('GET', 'https://crmeb-test.shop.lihaink.cn/api/order/statistics', [ 'query' => $parmas, ]); $json = json_decode($res->getContent(), true); if ($json['status'] == 200) { $arr['total_price'] = $json['data']['total_price']; if($json['data']['total_price']>100){ $arr['status']=1; } } else { $arr['total_price'] = 0; Log::error('获取订单金额失败:' . $json . '参数:' . json_encode($parmas)); } } catch (\Exception $e) { Log::error('获取订单金额失败:' . $e->getMessage() . '参数:' . json_encode($parmas)); return false; } } try{ $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']; } catch (\Exception $e) { Log::error('任务结算失败:' . $e->getMessage().json_encode($data)); return false; } (new ShareProfit())->first($arr, $company); //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法 $job->delete(); } public function failed($data) { Log::error('任务结算失败' . $data); // ...任务达到最大重试次数后,失败了 } }