作者 赵彬吉

update

@@ -272,10 +272,15 @@ class RelayInquiry extends Command @@ -272,10 +272,15 @@ class RelayInquiry extends Command
272 public function relayDetail($task, $form) 272 public function relayDetail($task, $form)
273 { 273 {
274 $this->output('获取转发对象'); 274 $this->output('获取转发对象');
  275 +
  276 + //代理商组 一个组只发一个
  277 + $agent_group = collect($task['target'])->groupBy('agent_group');
275 // 获取转发对象 重置num数量, array_rand数量不足会报错 278 // 获取转发对象 重置num数量, array_rand数量不足会报错
276 - $task['num'] = $task['num'] > count($task['target']) ? count($task['target']) : $task['num'];  
277 - $relay_target_key = array_rand($task['target'], $task['num']);  
278 - if (empty($relay_target_key)) { 279 + $num = $task['num'] > count($agent_group) ? count($agent_group) : $task['num'];
  280 + $random_data = $agent_group->keys()->random($num)->map(function ($group) use ($agent_group) {
  281 + return $agent_group[$group]->random();
  282 + })->all();
  283 + if (empty($random_data)) {
279 $this->logChannel()->info('当前任务未发现转发对象!', ['广告任务ID:' . $task['id'], '询盘ID:' . $form->id]); 284 $this->logChannel()->info('当前任务未发现转发对象!', ['广告任务ID:' . $task['id'], '询盘ID:' . $form->id]);
280 $form->status = ReInquiryForm::STATUS_FORGO; 285 $form->status = ReInquiryForm::STATUS_FORGO;
281 $form->remark = '当前任务未发现转发对象,广告ID: ' . $form->ad_id . '!'; 286 $form->remark = '当前任务未发现转发对象,广告ID: ' . $form->ad_id . '!';
@@ -283,10 +288,10 @@ class RelayInquiry extends Command @@ -283,10 +288,10 @@ class RelayInquiry extends Command
283 return false; 288 return false;
284 } 289 }
285 290
286 - foreach ($relay_target_key as $key) { 291 + foreach ($random_data as $item) {
287 // 推送站点 292 // 推送站点
288 - $domain = $task['target'][$key]['url'];  
289 - $is_v6 = $task['target'][$key]['is_v6']; 293 + $domain = $item['url'];
  294 + $is_v6 = $item['is_v6'];
290 $re_website = 'https://' . $domain . '/'; 295 $re_website = 'https://' . $domain . '/';
291 296
292 $this->output('转发对象:' . $domain); 297 $this->output('转发对象:' . $domain);