正在显示
1 个修改的文件
包含
11 行增加
和
7 行删除
| @@ -294,17 +294,21 @@ class RelayInquiry extends Command | @@ -294,17 +294,21 @@ class RelayInquiry extends Command | ||
| 294 | $this->output('没有独立站转发对象'); | 294 | $this->output('没有独立站转发对象'); |
| 295 | return 0; | 295 | return 0; |
| 296 | } | 296 | } |
| 297 | - //是否有必选的 | ||
| 298 | - $require_data = []; | ||
| 299 | - foreach ($task['target'] as $item){ | ||
| 300 | - if(!empty($item['is_require'])){ | ||
| 301 | - $require_data[] = $item; | 297 | + //是否有必选的渠道 渠道有一个及以上必选 就在组内随机一个 |
| 298 | + $require_agent_group = []; | ||
| 299 | + foreach ($task['target'] as $item) { | ||
| 300 | + if (!empty($item['is_require'])) { | ||
| 301 | + $require_agent_group[] = $item['agent_group']; | ||
| 302 | } | 302 | } |
| 303 | } | 303 | } |
| 304 | + $require_agent_group_data = collect($task['target'])->whereIn('agent_group', $require_agent_group)->groupBy('agent_group'); | ||
| 305 | + $require_data = $require_agent_group_data->keys()->random(count($require_agent_group))->map(function ($group) use ($require_agent_group_data) { | ||
| 306 | + return $require_agent_group_data[$group]->random(); | ||
| 307 | + })->all(); | ||
| 304 | //代理商组 一个组只发一个 | 308 | //代理商组 一个组只发一个 |
| 305 | - $agent_group = collect($task['target'])->whereNotIn('agent_group', array_column($require_data, 'agent_group'))->groupBy('agent_group'); | 309 | + $agent_group = collect($task['target'])->whereNotIn('agent_group', $require_agent_group)->groupBy('agent_group'); |
| 306 | // 获取转发对象 重置num数量, array_rand数量不足会报错 | 310 | // 获取转发对象 重置num数量, array_rand数量不足会报错 |
| 307 | - $task['num'] = $task['num'] - count($require_data); | 311 | + $task['num'] = $task['num'] - count($require_agent_group); |
| 308 | $num = $task['num'] > count($agent_group) ? count($agent_group) : $task['num']; | 312 | $num = $task['num'] > count($agent_group) ? count($agent_group) : $task['num']; |
| 309 | $random_data = $agent_group->keys()->random($num)->map(function ($group) use ($agent_group) { | 313 | $random_data = $agent_group->keys()->random($num)->map(function ($group) use ($agent_group) { |
| 310 | return $agent_group[$group]->random(); | 314 | return $agent_group[$group]->random(); |
-
请 注册 或 登录 后发表评论