流量池同步

This commit is contained in:
邓皓元 2019-04-26 03:01:43 +08:00
parent bd88acc8f4
commit 3fadc9588e

View File

@ -26,7 +26,9 @@ class FlowPoolMonthSync extends Command
$array = [];
$query = DB::connection('vd_old')->table('ckb_data_pool_statis_item')->select(['td_pool_sn', 'sim', 'vd_package_sn', 'flows_used'])->orderBy('dpci_id');
$query = DB::connection('vd_old')->table('ckb_data_pool_statis_item')->select([
'td_pool_sn', 'sim', 'vd_package_sn', 'flows_used', 'year_month'
])->orderBy('dpci_id');
$total = $query->count();
@ -34,17 +36,17 @@ class FlowPoolMonthSync extends Command
$query->chunk(10000, function ($chunk) use (&$array, $flowPoolsKeyByName, $realFlowPools, $flowPools, $packages) {
echo '.';
foreach ($chunk as $value) {
$value = (array)$value;
foreach ($chunk as $item) {
$item = (array)$item;
$pool_id = 0;
if (strpos($value['td_pool_sn'], 'vd-') === 0) {
$pool_id = $flowPoolsKeyByName[str_replace('vd-', '', $value['td_pool_sn'])]['id'];
if (strpos($item['td_pool_sn'], 'vd-') === 0) {
$pool_id = $flowPoolsKeyByName[str_replace('vd-', '', $item['td_pool_sn'])]['id'];
} else {
$real_pool_id = $realFlowPools[$value['td_pool_sn']]['id'];
$real_pool_id = $realFlowPools[$item['td_pool_sn']]['id'];
if (!$real_pool_id) {
throw new NotExistException('未找到RD流量池 #:' . $value['td_pool_sn']);
throw new NotExistException('未找到RD流量池 #:' . $item['td_pool_sn']);
}
foreach ($flowPools as $key => $value) {
@ -56,18 +58,19 @@ class FlowPoolMonthSync extends Command
}
if (!$pool_id) {
throw new NotExistException('未找到对应VD流量池 #:' . $value['td_pool_sn']);
throw new NotExistException('未找到对应VD流量池 #:' . $item['td_pool_sn']);
}
$sim = intval($value['sim']);
$key = $sim . '-' . $value['year_month'];
$sim = intval($item['sim']);
$i = $sim . '-' . $item['year_month'];
$mebibyte = isset($array[$i]) ? $array[$i]['mebibyte'] + floatval($item['flows_used']) : floatval($item['flows_used']);
$array[$key] = [
'month' => $value['year_month'],
$array[$i] = [
'month' => $item['year_month'],
'sim' => $sim,
'package_id' => $packages[$value['vd_package_sn']]['id'],
'package_id' => $packages[$item['vd_package_sn']]['id'],
'pool_id' => $pool_id,
'mebibyte' => isset($array[$key]) ? $array[$key]['mebibyte'] + floatval($value['flows_used']) : floatval($value['flows_used']),
'mebibyte' => $mebibyte,
];
}
});