作者 赵彬吉

fb询盘

... ... @@ -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();
... ...