|
...
|
...
|
@@ -294,17 +294,21 @@ class RelayInquiry extends Command |
|
|
|
$this->output('没有独立站转发对象');
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
//是否有必选的
|
|
|
|
$require_data = [];
|
|
|
|
foreach ($task['target'] as $item){
|
|
|
|
if(!empty($item['is_require'])){
|
|
|
|
$require_data[] = $item;
|
|
|
|
//是否有必选的渠道 渠道有一个及以上必选 就在组内随机一个
|
|
|
|
$require_agent_group = [];
|
|
|
|
foreach ($task['target'] as $item) {
|
|
|
|
if (!empty($item['is_require'])) {
|
|
|
|
$require_agent_group[] = $item['agent_group'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$require_agent_group_data = collect($task['target'])->whereIn('agent_group', $require_agent_group)->groupBy('agent_group');
|
|
|
|
$require_data = $require_agent_group_data->keys()->random(count($require_agent_group))->map(function ($group) use ($require_agent_group_data) {
|
|
|
|
return $require_agent_group_data[$group]->random();
|
|
|
|
})->all();
|
|
|
|
//代理商组 一个组只发一个
|
|
|
|
$agent_group = collect($task['target'])->whereNotIn('agent_group', array_column($require_data, 'agent_group'))->groupBy('agent_group');
|
|
|
|
$agent_group = collect($task['target'])->whereNotIn('agent_group', $require_agent_group)->groupBy('agent_group');
|
|
|
|
// 获取转发对象 重置num数量, array_rand数量不足会报错
|
|
|
|
$task['num'] = $task['num'] - count($require_data);
|
|
|
|
$task['num'] = $task['num'] - count($require_agent_group);
|
|
|
|
$num = $task['num'] > count($agent_group) ? count($agent_group) : $task['num'];
|
|
|
|
$random_data = $agent_group->keys()->random($num)->map(function ($group) use ($agent_group) {
|
|
|
|
return $agent_group[$group]->random();
|
...
|
...
|
|