214 lines
8.8 KiB
PHP
214 lines
8.8 KiB
PHP
<?php
|
|
require("../../inc/lib.inc");
|
|
|
|
global $OMC_server;
|
|
$sysTypeNo=$_GET['sysTypeNo'];
|
|
$pssDbConn=mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], 'PPS_DB');
|
|
$objDbConn=mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], 'OBJ_'.$sysTypeNo);
|
|
// $page_id=$_GET['page_id'];
|
|
// $sel_date_from=$_GET['sel_date_from'];
|
|
// $sel_date_to=$_GET['sel_date_to'];
|
|
// $show_type=$_GET['show_type'];
|
|
|
|
$query_year=$_REQUEST['query_year'];
|
|
$query_month=$_REQUEST['query_month'];
|
|
$query_day=$_REQUEST['query_day'];
|
|
$bgnDay=$_REQUEST['bgnDay'];
|
|
$endDay=$_REQUEST['endDay'];
|
|
$flag=$_REQUEST['flag'];
|
|
if(!$query_year){
|
|
$query_year=date("Y",mktime(0,0,0,date("m"),date("d")-1,date("Y")));
|
|
$query_month=date("m",mktime(0,0,0,date("m"),date("d")-1,date("Y")));
|
|
$query_day=date("d",mktime(0,0,0,date("m"),date("d")-1,date("Y")));
|
|
}
|
|
$defaultDate="$query_year-$query_month-$query_day";
|
|
$selectedDate=$_REQUEST['selectedDate']?$_REQUEST['selectedDate']:$defaultDate;
|
|
|
|
switch($sysTypeNo){
|
|
case '360':
|
|
$title = ['Index','USSD Code','Session Num','Session Duration','Error Timeout','Error System','Error Message','Average Duration','TPS']; // 获取字段名
|
|
|
|
$sumSql="SELECT
|
|
ussd_code_1,
|
|
session_num_1,
|
|
session_duration_1,
|
|
error_timeout_1,
|
|
error_system_1,
|
|
error_message_1,
|
|
ussd_code_2,
|
|
session_num_2,
|
|
session_duration_2,
|
|
error_timeout_2,
|
|
error_system_2,
|
|
error_message_2,
|
|
ussd_code_3,
|
|
session_num_3,
|
|
session_duration_3,
|
|
error_timeout_3,
|
|
error_system_3,
|
|
error_message_3,
|
|
ussd_code_4,
|
|
session_num_4,
|
|
session_duration_4,
|
|
error_timeout_4,
|
|
error_system_4,
|
|
error_message_4,
|
|
ussd_code_5,
|
|
session_num_5,
|
|
session_duration_5,
|
|
error_timeout_5,
|
|
error_system_5,
|
|
error_message_5,
|
|
ussd_code_6,
|
|
session_num_6,
|
|
session_duration_6,
|
|
error_timeout_6,
|
|
error_system_6,
|
|
error_message_6,
|
|
ussd_code_7,
|
|
session_num_7,
|
|
session_duration_7,
|
|
error_timeout_7,
|
|
error_system_7,
|
|
error_message_7,
|
|
ussd_code_8,
|
|
session_num_8,
|
|
session_duration_8,
|
|
error_timeout_8,
|
|
error_system_8,
|
|
error_message_8
|
|
FROM
|
|
PPS_DB.daily_report
|
|
WHERE ";
|
|
|
|
if($flag=='month'){
|
|
$result = $sumSql." date >='$bgnDay' and date<= '$endDay' order by date ASC";
|
|
//echo "sumSql=$sumSql";
|
|
$res=mysqli_query($pssDbConn,$result);
|
|
//echo mysqli_error($pssDbConn);
|
|
$num=mysqli_num_rows($res);
|
|
$allUssdCodes = []; // 用于存储所有记录的 ussd_code
|
|
|
|
do{
|
|
if(!count($allUssdCodes)){ // 代表是第一条记录
|
|
// 初始化数组
|
|
for ($i = 1; $i <= 8; $i++) {
|
|
$allUssdCodes[$i] = $selRow['ussd_code_' . $i];
|
|
$thisMonthTotalSessionNum[$i] = $selRow['session_num_' . $i];
|
|
$thisMonthTotalSessionDuration[$i] = $selRow['session_duration_'. $i];
|
|
$thisMonthTotalErrorTimeout[$i] = $selRow['error_timeout_'. $i];
|
|
$thisMonthTotalErrorSystem[$i] = $selRow['error_system_'. $i];
|
|
$thisMonthTotalErrorMessage[$i] = $selRow['error_message_'. $i];
|
|
}
|
|
} else { // 剩余记录
|
|
// 创建USSD索引的映射
|
|
$codeToIndexMap = array_flip(array_filter($allUssdCodes));
|
|
|
|
for ($j = 1; $j <= 8; $j++) {
|
|
$currentCode = $selRow['ussd_code_' . $j];
|
|
if (!$currentCode) continue; // 跳过空代码
|
|
echo "currentCode===$currentCode";
|
|
if (isset($codeToIndexMap[$currentCode])) {
|
|
// 已存在的代码,累加统计数据
|
|
$index = $codeToIndexMap[$currentCode];
|
|
$thisMonthTotalSessionNum[$index] += $selRow['session_num_' . $j];
|
|
$thisMonthTotalSessionDuration[$index] += $selRow['session_duration_'. $j];
|
|
$thisMonthTotalErrorTimeout[$index] += $selRow['error_timeout_'. $j];
|
|
$thisMonthTotalErrorSystem[$index] += $selRow['error_system_'. $j];
|
|
$thisMonthTotalErrorMessage[$index] += $selRow['error_message_'. $j];
|
|
} else {
|
|
//找一个空位存放
|
|
foreach ($allUssdCodes as $key => $value) {
|
|
if (!$value) {
|
|
$allUssdCodes[$key] = $currentCode;
|
|
$codeToIndexMap[$currentCode] = $key;
|
|
$thisMonthTotalSessionNum[$key] = $selRow['session_num_' . $j];
|
|
$thisMonthTotalSessionDuration[$key] = $selRow['session_duration_'. $j];
|
|
$thisMonthTotalErrorTimeout[$key] = $selRow['error_timeout_'. $j];
|
|
$thisMonthTotalErrorSystem[$key] = $selRow['error_system_'. $j];
|
|
$thisMonthTotalErrorMessage[$key] = $selRow['error_message_'. $j];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}while($selRow=mysqli_fetch_array($res));
|
|
|
|
$file_name = 'PPS-USSD-Month.csv';
|
|
$file = fopen($file_name, 'w');
|
|
fputcsv($file, $title); // 写入标题行
|
|
for ($i = 1; $i <= 8; $i++) {
|
|
$average=$thisMonthTotalSessionNum[$i]?$thisMonthTotalSessionDuration[$i]/$thisMonthTotalSessionNum[$i]:0;
|
|
$tps=$thisMonthTotalSessionNum[$i]/(3600*24);
|
|
fputcsv($file, [$i,$allUssdCodes[$i],$thisMonthTotalSessionNum[$i], $thisMonthTotalSessionDuration[$i],$thisMonthTotalErrorTimeout[$i], $thisMonthTotalErrorSystem[$i] ,$thisMonthTotalErrorMessage[$i],$average,$tps]);
|
|
}
|
|
|
|
fclose($file);
|
|
// 检查文件是否存在
|
|
if (file_exists($file_name)) {
|
|
header("Content-type: application/csv");
|
|
//use for download csv in https
|
|
header('Expires: 0');
|
|
header('Pragma: public');
|
|
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
|
header('Cache-Control: public');
|
|
header("Content-Disposition: attachment; filename=$file_name");
|
|
readfile($file_name);
|
|
unlink($file_name);
|
|
|
|
} else {
|
|
// 文件不存在时的处理
|
|
echo "Error: File does not exist.";
|
|
}
|
|
|
|
}
|
|
else{
|
|
$result= $sumSql." date = '$selectedDate'";
|
|
//echo "sumSql=$sumSql";
|
|
$res=mysqli_query($pssDbConn,$result);
|
|
echo mysqli_error($pssDbConn);
|
|
$num=mysqli_num_rows($res);
|
|
|
|
// 检查是否有记录
|
|
if ($num > 0) {
|
|
// 读取第一条记录
|
|
$row = mysqli_fetch_array($res, MYSQLI_ASSOC);
|
|
|
|
// 处理标题
|
|
$file_name = 'PPS-USSD.csv';
|
|
$file = fopen($file_name, 'w');
|
|
fputcsv($file, $title); // 写入标题行
|
|
|
|
for ($i = 1; $i <= 8; $i++) {
|
|
$average=$row['session_num_' . $i]?$row['session_duration_' . $i]/$row['session_num_' . $i]:0;
|
|
$tps=$row['session_num_' . $i]/(3600*24);
|
|
fputcsv($file, [$i,$row['ussd_code_' . $i],$row['session_num_' . $i],$row['session_duration_' . $i],$row['error_timeout_' . $i],$row['error_system_' . $i],$row['error_message_' . $i],$average,$tps]);
|
|
}
|
|
|
|
fclose($file);
|
|
// 检查文件是否存在
|
|
if (file_exists($file_name)) {
|
|
header("Content-type: application/csv");
|
|
//use for download csv in https
|
|
header('Expires: 0');
|
|
header('Pragma: public');
|
|
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
|
header('Cache-Control: public');
|
|
header("Content-Disposition: attachment; filename=$file_name");
|
|
readfile($file_name);
|
|
unlink($file_name);
|
|
|
|
} else {
|
|
// 文件不存在时的处理
|
|
echo "Error: File does not exist.";
|
|
}
|
|
}
|
|
}
|
|
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
?>
|