优化流量池同步
This commit is contained in:
parent
a6cc1c50dc
commit
f1aea73335
@ -73,24 +73,35 @@ class FlowPoolMonthSync extends Command
|
|||||||
|
|
||||||
$this->line('插入数据,条数 #:' . count($array));
|
$this->line('插入数据,条数 #:' . count($array));
|
||||||
|
|
||||||
foreach (array_groupBy($array, 'month') as $month => $group) {
|
$array = array_groupBy($array, 'month');
|
||||||
$news = [];
|
|
||||||
|
|
||||||
|
foreach ($array as $month => $group) {
|
||||||
$group = array_groupBy($group, 'sim');
|
$group = array_groupBy($group, 'sim');
|
||||||
|
|
||||||
|
$news = [];
|
||||||
|
|
||||||
foreach ($group as $sim => $item) {
|
foreach ($group as $sim => $item) {
|
||||||
if (count($item) > 1) {
|
if (count($item) > 1) {
|
||||||
$temp = $item[0];
|
$temp = $item[0];
|
||||||
$temp['mebibyte'] = array_sum(array_pluck($item, 'mebibyte'));
|
$mebibyte = 0;
|
||||||
$group[$sim] = [$temp];
|
|
||||||
|
foreach ($item as $key => $value) {
|
||||||
|
$mebibyte += $value['mebibyte'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$temp['mebibyte'] = $mebibyte;
|
||||||
|
$news[$sim] = $temp;
|
||||||
|
}else {
|
||||||
|
$news[$sim] = $item[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$news = array_merge($news, array_collapse($group));
|
$array[$month] = array_values($news);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($array as $month => $items) {
|
||||||
$table = FlowPoolService::checkTable($month);
|
$table = FlowPoolService::checkTable($month);
|
||||||
|
foreach (array_chunk($items, 1000) as $values) {
|
||||||
foreach (array_chunk($news, 1000) as $values) {
|
|
||||||
echo '.';
|
echo '.';
|
||||||
app(FlowPoolMonth::class)->setTable($table)->upsert($values, ['sim', 'month']);
|
app(FlowPoolMonth::class)->setTable($table)->upsert($values, ['sim', 'month']);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user