"; return $connection; } function sftp_login($connection, $logName, $logPass) { ssh2_auth_password($connection, $logName, $logPass); $sftp_key = ssh2_sftp($connection); return $sftp_key; } define("SFTP_ASCII", 0); define("SFTP_BINARY", 1); function sftp_put($key, $remote_file, $local_file, $mode) { $read_mode = "r"; $write_mode = "w"; if ($mode == SFTP_BINARY) { $open_mode .= "b"; $write_mode .= "b"; } $handle = fopen($local_file, $read_mode); if (!$handle) { echo "sftp_put:Can not open $local_file
"; return FALSE; } //echo "fopen(ssh2.sftp://".intval($key).$remote_file."a=$write_mode)"; $stream=fopen("ssh2.sftp://".intval($key).$remote_file, $write_mode); if (!$stream) { echo "sftp_put:Can not open $remote_file
"; return FALSE; } $content = stream_get_contents($handle); fwrite($stream, $content); fclose($handle); fclose($stream); return TRUE; } function sftp_get($connection, $local_file, $remote_file, $mode) { $remoteStream = ssh2_scp_recv($connection, $remote_file, $local_file); if (!$remoteStream) { $error = error_get_last(); echo "ssh2_scp_recv error: " . $error['message'] . "\n"; return FALSE; } fclose($remoteStream); // close remote download stream //echo "ssh2_scp_recv sucessful" . "\n"; return TRUE; } function sftp_get_org($key, $local_file, $remote_file, $mode) { $read_mode="r"; $write_mode="w"; if($mode == SFTP_BINARY) { $open_mode.="b"; $write_mode.="b"; } $handle=fopen($local_file,$write_mode); if(!$handle) { echo "sftp_put:Can not open $local_file
"; return FALSE; } echo "$remote_file=$read_mode"; $stream=fopen("ssh2.sftp://$key"."$remote_file", $read_mode); if(!$stream) { echo "sftp_put:Can not open $remote_file
"; return FALSE; } $content=stream_get_contents($stream); fwrite($handle,$content); fclose($handle); fclose($stream); return TRUE; } function checkWritePrivilege() { global $userInfo; // echo "
";
    // print_r($userInfo);
    // echo "
";

    if ($userInfo['privilege'] > 2)
        return 1;
    else
        return 0;
}


function debug_log($file, $info)
{
    $handle = fopen($file, "a+");
    if ($handle == false)
        return;
    fwrite($handle, $info . "\n");
    fclose($handle);
}



function get2GCLicenseAccount()
{
	global $pubConn;
	$default_user_name="agtuser";
	$default_password="admin123";
	$sql="select pubVarValue from OMC_PUB.omcPubVarConf where pubVarName='NeLicenseUser' ";
	$res=mysqli_query($pubConn,$sql);
	$row=mysqli_fetch_array($res);
	if(strlen(trim($row['pubVarValue'])) > 0)
		$ftpInfo['UserName']=$row['pubVarValue'];
		else
			$ftpInfo['UserName']=$default_user_name;
			
	$sql="select pubVarValue from OMC_PUB.omcPubVarConf where pubVarName='NELicensePwd' ";
	$res=mysqli_query($pubConn,$sql);
	$row=mysqli_fetch_array($res);
	if(strlen(trim($row['pubVarValue'])) > 0)
		$ftpInfo['Password']=$row['pubVarValue'];
		else
			$ftpInfo['Password']=$default_password;
	//echo "$ftpInfo[UserName], $ftpInfo[Password]";
	return $ftpInfo;
}

//****************************************************************
//函数4 pageAccessChk($pageURL)
//函数说明:
//	检测用户是否可进入本页, 
//	如果用户的权限包含$page_url所对应的权限,则可进入该页面。
//
//变量说明: 
//	$page_url                                       
//                                                             
//返回值: 1 = 可 -1 = 否
//
//作者: 
//      
//修改注释:      
//NO.1      
//姓名:           
//时间:2002-03-26      
//修改说明:修改了权限定义方式,该函数改变了大部分
//NO.2      
//姓名:          
//时间:2002-04-09      
//修改说明:修改了权限定义方式,该函数改变了大部分
//----------------------------------------------------------

function pageAccessChk($pageURL)
{
    global $userInfo, $privilegeDefArr, $dirAccessDefArr;
    $funcDebug = 0;
    $privilege = $userInfo['privilege'];

    if ($funcDebug) echo "
privilege:$privilege"; if (strlen($privilege) > 0) { //判断已登录的用户 //检查该权限编号是否存在 $isPass = 0; for ($k = 0; $k < sizeof($privilegeDefArr); $k++) { if ($privilege == $privilegeDefArr[$k]['permit']) { $isPass = 1; break; } } if ($isPass == 0) { if ($funcDebug) echo "
Invailed privilege"; return (-1); } //对比判断该编号对应的权限能否访问该目录 for ($p = 0; $p < sizeof($dirAccessDefArr[$privilege]); $p++) { $tmpDir = $dirAccessDefArr[$privilege][$p]; $tmpLen = strlen($tmpDir); if ($funcDebug) echo "
$tmpDir == substr($pageURL,0,$tmpLen)"; if ($tmpDir == substr($pageURL, 0, $tmpLen) && $tmpLen > 0) { return (1); } } //找不到,清掉这个无效权限代码 if ($funcDebug) echo "1:$userInfo[privilege]"; $userInfo['privilege'] = 0; if ($funcDebug) echo "2:$userInfo[privilege]"; return (-1); } else {//判断未登录的用户 for ($p = 0; $p < sizeof($dirAccessDefArr[0]); $p++) { $tmpDir = $dirAccessDefArr[0][$p]; $tmpLen = strlen($tmpDir); $thisDir = substr($pageURL, 0, $tmpLen); if ($funcDebug) echo "
$tmpDir == $thisDir"; if ($tmpDir == $thisDir && $tmpLen > 0) { return (1); } } } if ($funcDebug) echo "
??"; return (1); } //**************************************************************** //函数5 // function insertLog($operDesc,$operTypeNo='0',$OperNo='0') //函数说明: // 该函数用于记录日志 // //变量说明: // $operDesc ->操作说明 // $operTypeNo ->操作类型编号 // $OperNo ->操作代码 // //返回值: // 无 // //作者: // //修改注释: //NO.1 //姓名: //时间:2003-04-09 //修改说明:简化输入参数,缺省操作类型为unknown //---------------------------------------------------------- function insertLog($operDesc, $operTypeNo = '0', $OperNo = '0') { global $userInfo, $link, $pubConn; $userName = $userInfo['ID']; $operDesc = isset($operDesc) ? stripslashes($operDesc) : ''; //解码 $operDesc = addslashes($operDesc); //解码 $insertLogSql = "INSERT INTO sysOperLog (operTypeNo,OperNo,remark,userName,datetime) VALUES ('$operTypeNo','$OperNo','$operDesc','$userName',CURRENT_TIMESTAMP) "; //echo "$insertLogSql"; $result = mysqli_query($pubConn, $insertLogSql); //echo mysqli_error($pubConn); if ($result < 0) { echo "Error:Insert the log failed"; } } //**************************************************************** //函数6 // change_percent($num) //函数说明: // 该函数用于把两个数相除后得到的小数变为精确到百分位的百分数 // 如把0.91233456790变为91.23% // //变量说明: // $num <= 1 // //返回值: // 一个带百分号的字符 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function change_percent($num) { if ($num >= 1) { $num = 100; } else { $num = $num * 1000000; $num = round($num); $num = $num / 10000; } $string = $num . '%'; return ($string); } //**************************************************************** //函数7 // omc_keep_length($value,$add_value='0',$length='2',$position='1') //函数说明: // 该函数用于在字符串$value左边添$add_value,直到补足所需位数$length // 例如:omc_keep_length(2,0,2)变为02 // 常用于获取系统编号。 // //变量说明: // $value 需要补足位数的字符 // $add_value 需要用什么去补足位数,默认为'0' // $length 需要补足到多少位,默认为'2'系统编号的长度 // //返回值: // 被补足位数的字符串 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_keep_length($value, $add_value = '0', $length = '2', $position = '1') { while (strlen($value) < $length) { if ($position) $value = $add_value . $value; else $value = $value . $add_value; } //echo "
value=$value"; return ($value); } //**************************************************************** //函数8 // omc_table_name($sys_type,$table_type) //函数说明: // 该函数通过$sys_type,$table_type生成该系统的各种相关表名 // 根据$sys_id确定系统编号 // 根据$table_type确定要返回的表名: // 1、csta-h -->(每小时)话务统计表 // 2、csta-q -->(每15分钟)话务统计表 // // // //变量说明: // $sys_type 需要获取表名的系统 // $table_type 该表名的类型字符串 // //返回值: // 所需的表名字符串 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_table_name($sys_type, $table_type) { switch ($table_type) { case 'csta-h': $sys_type = strtolower($sys_type); $table_name = $sys_type . 'Sum'; break; case 'csta-q': $sys_type = strtolower($sys_type); $table_name = $sys_type . 'Detail'; break; default: echo "
database's table name can not be maked,please check table type"; break; } if ($table_name) { return ($table_name); } else { exit(); } } //**************************************************************** //函数9 // omc_sys_type2code($sys_type) //函数说明: // 由系统简写获取系统编号,通过查询系统定义表$sysconf_table获取 // 例:omc_sys_type2code(TS) = '04' // //变量说明: // $sys_type // //返回值: // 成功: 系统编号 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_sys_type2code($sysTypeName) { global $omc_db, $sysconf_table; $sel_sql = "SELECT sysTypeNo FROM $sysconf_table WHERE sysTypeName = '$sysTypeName'"; //echo "
$sel_sql"; $result = mysqli_query($pubConn, $sel_sql); if ($result > 0) { $result_rows = mysqli_fetch_array($result); //echo "
result_rows[sysTypeNo]=$result_rows[sysTypeNo]"; return ($result_rows[sysTypeNo]); } else { echo mysqli_error($pubConn); echo "
Can not get this device's code by omc_sys_type2code($sysTypeName)"; return (-1); } } //**************************************************************** //函数10 // omc_sys_code2type($sys_code) //函数说明: // 由系统编号获取系统简写,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_code // //返回值: // 成功: 系统简写 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_sys_code2type($sysTypeNo) { global $omc_db, $sysconf_table; $sel_sql = "SELECT sysTypeName FROM $sysconf_table WHERE sysTypeNo = '$sysTypeNo'"; //echo "$sel_sql"; $result = mysqli_query($pubConn, $sel_sql); if ($result > 0) { $result_rows = mysqli_fetch_array($result); return ($result_rows[sysTypeName]); } else { echo mysqli_error($pubConn); echo "
Can not get this device's code by omc_sys_code2type($sysTypeNo)"; return (-1); } } //**************************************************************** //函数11 // get_subsys_total($sys_type) //函数说明: // 由系统类型获取系统每个系统的子系统总数,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type:系统类型 // //返回值: // 成功: 系统子系统个数 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_subsys_total($sys_type) { global $omc_db, $sysconf_table; $sel_sql = "SELECT maxSubsysNum FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; $result = mysqli_query($pubConn, $sel_sql); if ($result > 0) { $result_rows = mysqli_fetch_array($result); return ($result_rows[maxSubsysNum]); } else { echo mysqli_error($pubConn); echo "
Can not get this system's subsystem quantity by get_subsys_total($sys_type)"; return (-1); } } //**************************************************************** //函数12 // get_e1_total($sys_type) //函数说明: // 由系统类型获取系统每个系统的e1总数,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type:系统类型 // //返回值: // 成功: 系统子系统个数 // 失败: -1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_e1_total($sys_type) { global $omc_db, $sysconf_table; $sel_sql = "SELECT maxE1Num FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; //echo "
sel_sql=$sel_sql"; $result = mysqli_query($pubConn, $sel_sql); if ($result > 0) { $result_rows = mysqli_fetch_array($result); return ($result_rows[maxE1Num]); } else { echo mysqli_error($pubConn); echo "
Can not get this system's e1 quantity by get_e1_total($sys_type)"; return (-1); } } //**************************************************************** //函数13 // get_sys_total($sys_type) //函数说明: // 由系统类型获取系统系统总数,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type:系统类型 // //返回值: // 成功: 系统总数 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: 2002-5-14 //修改说明: 表名、字段有变 //---------------------------------------------------------- function get_sys_total($sys_type) { global $omc_db, $sysconf_table; $sel_sql = "SELECT maxSysNum FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; //echo "
sel_sql=$sel_sql"; $result = mysqli_query($pubConn, $sel_sql); if ($result > 0) { $result_rows = mysqli_fetch_array($result); return ($result_rows[maxSysNum]); } else { echo mysqli_error($pubConn); echo "
Can not get this system's system quantity by get_sys_total($sys_type)"; return (-1); } } //**************************************************************** //函数14 // get_sys_offset($sys_type) //函数说明: // 由系统类型获取该类系统的顺序编号offset,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type :系统类型 // //返回值: // 成功: 系统顺序编号 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_sys_offset($sys_type) { global $omc_db, $sysconf_table; $sel_sql = "SELECT ledOffset FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; $result = mysqli_query($pubConn, $sel_sql); if ($result > 0) { $result_rows = mysqli_fetch_array($result); return ($result_rows[0]); } else { echo mysqli_error($pubConn); echo "
Can not get this system's offset by get_sys_offset($sys_type)"; return (-1); } } //**************************************************************** //函数15 // omc_sys_id_info($sys_id,$info_type) //函数说明: // 该函数通过$sys_id的分析,取得相应信息 // 例:由 "TS00_01" 可得系统编号为"00" // //变量说明: // 参数$info_type对应要取得的信息 // sys_type -->系统类型 // sys_num -->系统编号 // subsys_num -->子系统编号 // led_num -->led offset // //返回值: // 成功: 要取得的信息 // 失败: -1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_sys_id_info($sys_id, $info_type) { global $sysconf_table, $omc_db; $db = $omc_db; $pieces = explode('_', $sys_id); $sys_type = $pieces[0]; $sys_num = $pieces[1]; $subsys_num = $pieces[2]; //echo "
sys_type=$sys_type"; switch ($info_type) { case 'sys_type': $info = $sys_type; break; case 'sys_num': $info = $sys_num; break; case 'subsys_num': $info = $subsys_num; break; case 'led_num': $sysTypeNo = omc_sys_type2code($sys_type); $ledSql = " SELECT ledOffset FROM $sysconf_table WHERE sysTypeNo = '$sysTypeNo' "; $ledRes = @mysqli_query($pubConn, $ledSql); $ledRow = @mysqli_fetch_array($ledRes); $info = $ledRow[0]; break; default: echo "
the $sys_id information can not be get,please check parameter: info_typ!"; break; } if ($info) { return ($info); } else { return (0); } } //**************************************************************** //函数16 // omc_uninstall_device($sys_id) //函数说明: // 删除系统 // //变量说明: // 删除系统的系统编号$sys_id // //返回值: // 成功: 1 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间:2002-5-17 //修改说明: //---------------------------------------------------------------------------------- function omc_uninstall_device($sys_id) { global $omc_db, $sysStat_table; //echo "
sys_id=$sys_id"; $sysType = omc_sys_id_info($sys_id, sys_type); $sysTypeNo = omc_sys_type2code($sysType); $sysNo = omc_sys_id_info($sys_id, sys_num); $subSysNo = omc_sys_id_info($sys_id, subsys_num); $del_sql = "DELETE FROM $sysStat_table WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND subSysNo='$subSysNo'"; if ($sys_id = 'all') { $del_sql = " DELETE FROM $sysStat_table "; } //echo "
del_sql=$del_sql"; $result = mysqli_query($pubConn, $del_sql); //echo "
result=$result"; if ($result) { return (1); } else { return (-1); } } //**************************************************************** //函数17 // omc_chk_load_in($file_info,$remark_style) //函数说明: // 导入文件检查函数 // 根据需导入文件的信息(包括文件名,需导入的服务器,数据库,表),导入文件的注释信息(指出该文的字段名列表所在行) // 方法:一一比较数据库中表的字段和注释中列出的字段,如果互相匹配,返回成功 // //变量说明: // $file_info 所需导入文件的信息数组,包括: // $file_info[db] 所需导入的数据库名 // $file_info[table] 所需导入的数据库中的表名 // $file_info[name] 所需导入数据库的文件名 // $remark_style 数据文件注释风格 // $remark_style[fields_seek] 文件开头,需要忽略的行数,一般为1 // $remark_style[sign] 注释符,一般为'#' // $remark_style[fields_by] 字段分割符,一般为';' // //返回值: // 成功: 1 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_chk_load_in($file_info, $remark_style) { //-------------1.get database's information--------------- global $link; $field_sql = "SELECT * FROM {$file_info[table]} LIMIT 0,1"; //echo "
field_sql=$field_sql"; $field_result = mysqli_query($pubConn, $field_sql); //-------------check the data file's fields------------- //echo "
name={$file_info[name]}"; $fp = fopen($file_info[name], r); for ($i = 1; $i <= $remark_style[fields_seek]; $i++) { $field_line = fgets($fp, 4096); //4096 is a constant } //echo "
field_line=$field_line"; if (substr($field_line, 0, 1) != $remark_style[sign]) { echo "the remark sign not exist"; //注释符错误 return (-1); } else { //echo "
field_line=$field_line"; $file_fields_line = substr($field_line, 1); //echo "
file_fields_line=$file_fields_line"; $file_fields_rows = explode($remark_style[fields_by], $file_fields_line); $fields_num = mysql_num_fields($field_result); //echo "
fields_num=$fields_num"; for ($i = 0; $i < $fields_num; $i++) { $this_field = mysql_field_name($field_result, $i); //echo "
$file_fields_rows[$i] -- $this_field"; if ($file_fields_rows[$i] != $this_field && $this_field != '') { echo "
error: fields is not matching.";//字段名不匹配 return (-1); } } fclose($fp); return (1); } } //******************************************************************* //函数18 // Get the content of $table as a CSV output. // $sep contains the separation string. // After every row, a custom callback function $handler gets called. // $handler must accept one parameter ($sql_insert); function get_table_csv($server_link, $db_name, $table, $where, $handler) { global $separator; $sep = $separator; if (strlen($where) > 1) { $sel_sql = "SELECT * FROM $table $where"; $sel_sql = stripslashes($sel_sql); } else { $sel_sql = "SELECT * FROM $table "; } //echo "
sel_sql=$sel_sql
"; $result = mysqli_query($pubConn, $sel_sql, $server_link); if ($result < 0) { echo "$sel_sql /n"; echo mysqli_error($pubConn); exit(); } /* //输出字段名 $schema_insert = "#"; for($j=0; $jschema_insert=$schema_insert
"; } $handler(trim($schema_insert));//按某种方式处理后,输出一行 */ $i = 0; while ($row = mysqli_fetch_row($result)) { set_time_limit(60); // HaRa $schema_insert = ""; for ($j = 0; $j < mysql_num_fields($result); $j++) { if (!isset($row[$j])) $schema_insert .= "NULL" . $sep; elseif ($row[$j] != "") $schema_insert .= "$row[$j]" . $sep; else $schema_insert .= "" . $sep; } $schema_insert = str_replace($sep . "$", "", $schema_insert); $handler(trim($schema_insert)); $i++; } return (true); } //**************************************************************** //函数19 // omc_die($warning_words) //函数说明: // 输出错误信息,退出 // //变量说明: // $warning_words 警告说明 // //返回值: // 无 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_die($warning_words) { echo "
$warning_words"; exit(); } //**************************************************************** //函数20 // change2point($number) //函数说明: // 将该数字按保留小数点后两位的规则转换,常用于货币的统一标示 // //变量说明: // $number ->所需转换的数字 // //返回值: // 成功: 返回转换后的字符 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间:2003-07-10 //修改说明:干了蠢事,一句话的事,用了一个函数。 //---------------------------------------------------------- function change2point($number) { /* $num = explode(".",$number); $num_1 = $num[0]; $num_2 = substr($num[1],0,2); if(strlen($num_2) < 2){ if(strlen($num_2) == 0){ $num_2 = '00'; }else{ $num_2 = $num_2.'0'; } } if($num_1==0 && $num_2 == 0){ $number = 0; }else{ $number = $num_1.'.'.$num_2; } */ $number = sprintf("%01.2f", $number); return ($number); } //**************************************************************** //函数21 // Second2format($number) //函数说明: // 把秒数变成标准时间显示如:17秒->00:00:17 // //变量说明: // $number 秒数 // //返回值: // 成功: 返回标准时间 // 失败: 返回0 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- // function Second2format($number) { if ($number > 0) { $number_h = floor($number / 3600); if (strlen($number_h) < 2) { $number_h = "0" . $number_h; } $number_ms = $number % 3600; $number_m = floor($number_ms / 60); if (strlen($number_m) < 2) { $number_m = "0" . $number_m; } $number_s = $number_ms % 60; if (strlen($number_s) < 2) { $number_s = "0" . $number_s; } $format = $number_h . ":" . $number_m . ":" . $number_s; return ($format); } else { return (0); } } //**************************************************************** //函数22 // getDetailedStatus($sysTypeNo,$sysNo,$subSysNo,$getType) // 得到详细状态信息或刷新时间 // //变量说明: // $sysTypeNo系统类型编号 // $sysNo系统编号 // $subSysNo子系统编号 // $getType详细状态(status)或刷新时间(time) // //返回值: // 成功: 返回状态或时间 // 失败: 返回-1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- // function getDetailedStatus($sysTypeNo, $sysNo, $subSysNo, $getType = 'time') { global $omc_db, $sysStat_table; $db = $omc_db; $DEBUG = 0; $sel_mes_sql = "SELECT detailStat,updateTime FROM $sysStat_table WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' "; if ($DEBUG) echo "
sel_mes_sql=$sel_mes_sql"; $sel_mes_res = mysqli_query($pubConn, $sel_mes_sql); $sel_mes_row = @mysqli_fetch_array($sel_mes_res); if ($getType == 'Time') { $value = $sel_mes_row[detailStat]; } else { $value = $sel_mes_row[updateTime]; } if ($DEBUG) echo "
value=$value"; if (!$sel_mes_row) { return (-1); } else { return ($value); } } //**************************************************************** //函数23 omc_get_sysAlias($sysTypeNo,$sysNo,$subSysNo) // //功能说明:根据指定系统编号获取系统别名 // //变量说明: // //返回值: // 成功: 系统别名字符串 // 失败:-1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_get_sysAlias($sysTypeNo, $sysNo, $subSysNo) { $sysAliasSql = "SELECT sysAlias FROM sysInfo WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo'AND subSysNo='$subSysNo' ORDER BY sysTypeNo,sysNo,subSysNo "; $sysAliasResult = mysqli_query($pubConn, $sysAliasSql); echo mysqli_error($pubConn); $sysAliasRows = @mysqli_fetch_array($sysAliasResult); $sysAlias = $sysAliasRows[sysAlias]; if (strlen($sysAlias) > 0) { return ($sysAlias); } else { return (-1); } } //**************************************************************** //函 数 名: omcProgressBar($allNum,$doneNum) //功能说明: 显示进度条 //变量说明: $allNum总数,$doneNum已完成的数目 //返 回 值: 无 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omcProgressBar($allNum, $doneNum) { if ($allNum > 0) { if ($doneNum >= $allNum) { $quoNum = 100; } else { $quoNum = $doneNum / $allNum * 100; $quoNum = round($quoNum); } } else { echo "omcProgressBar() Error:allNum cannot < 0!"; exit(); } $big_width = 320; $border = 10; $lit_width = $big_width - 2 * $border; $height = 10; echo "
"; echo "\n"; echo "
"; echo "$strProgressIsShowedAsFollowing"; echo "
"; echo "\n"; echo "\n"; echo "\n"; echo "\n

"; echo "\n$quoNum%"; echo "\n

"; $lineNum = $quoNum * 3; echo "\n"; echo "\n
"; //echo "\n
"; } //**************************************************************** //函 数 名: sysCommSend($sysId,$commType,$objIdStr,$selectedSysId=-1) //功能说明: 系统参数维护发送命令 //变量说明: 略 //返 回 值: // 成功: 命令编号字符串 // 失败: -1 // // // //修改注释: //NO.1 //姓名:cuiticun //时间:2005-7-13 //修改说明:check the exist command num in the buffer //---------------------------------------------------------- function sysCommSend($sysId, $commType, $objIdStr, $selectedSysId = -1, $selectedDPC = 0) { global $OMC_server; $DEBUG = 0; $pubDb = 'OMC_PUB'; $commTable = 'parameterComm'; $nGetComm = 0; $nSetComm = 3; $nSubSysParam = 0; $nGlobalSubSysParam = 1; $nGlobalSysParam = 2; $sysIdArr = explode('_', $sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $objConn = mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], 'OBJ_'.$sysTypeNo); $pubConn = mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], "OMC_PUB"); //insert the operation log into the database $logStr = ""; if ($commType == 0) $logStr .= "Get "; else if ($commType == 3) $logStr .= "Set "; //=====get the LevelWhere $levelArr = explode('.', $objIdStr); for ($j = 0; $j < sizeof($levelArr); $j++) { $levelNo = $j + 1; ${"level_$levelNo"} = $levelArr[$j]; if ($DEBUG) echo "
levelArr[$j]={$levelArr[$j]}"; if ($j == 0) { $levelWhere = "level_$levelNo='${"level_$levelNo"}'"; } else { $levelWhere .= " AND level_$levelNo='${"level_$levelNo"}'"; } } $temp = $levelWhere; $database = "OBJ_" . $sysTypeNo; $ssql = "select name_2 from paramConf where $temp "; $resultt = @mysqli_query($objConn, $ssql); $rowss = @mysqli_fetch_array($resultt); //==get the parameter name $p_name = $rowss[name_2]; $p_name = str_replace("Entry", "", $p_name); $sysName = getSystemNameBySysTypeNo($sysTypeNo); $logStr .= "$sysName $p_name's parameter"; $logStr .= $p_name; insertLog($logStr); //end insert operation log if ($sysNo == '99') { $paramType = $nGlobalSysParam; } else if ($subSysNo == '99') { $paramType = $nGlobalSubSysParam; } else { $paramType = $nSubSysParam; } if ($selectedSysId != -1) { $selectedSysIdArr = explode('_', $selectedSysId); $selectedSysTypeNo = $selectedSysIdArr[0]; $selectedSysNo = $selectedSysIdArr[1]; $selectedSubSysNo = $selectedSysIdArr[2]; } if ($DEBUG) echo "
selectedSysId=$selectedSysId"; if ($DEBUG) echo "
selectedSysNo=$selectedSysNo"; if ($DEBUG) echo "
selectedSubSysNo=$selectedSubSysNo"; //step 1: delete overtime and imcompetent command , check the exist command num $overTime = date("Y-m-d H:i:s", mktime(date("H"), date("i") - 1, date("s"), date("m"), date("d"), date("Y"))); $delSql = "DELETE FROM $commTable WHERE commState ='0' OR commState ='3' OR sendTime < '$overTime' "; if ($DEBUG) echo "
delete command sql = $delSql"; mysqli_query($pubConn, $delSql); echo mysqli_error($pubConn); //check the exist command num $chkSql = "SELECT commId FROM $commTable"; if ($DEBUG) echo "
check exist commands sql = $chkSql"; $chkResult = mysqli_query($pubConn, $chkSql); echo mysqli_error($pubConn); $existNum = @mysqli_num_rows($chkResult); //step 2: check the command(不能同时操作同一个子系统,也不能同时读同一个系统的不同子系统的公共参数) if (($paramType != $nSubSysParam) && ($commType == $nGetComm)) { //0=Get,2=response,3=Set if ($selectedSysId == -1) { $chkSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND commType ='$nGetComm' "; } else { //选择指定子系统 $chkSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$selectedSysTypeNo' AND sysNo='$selectedSysNo' AND subSysNo='$selectedSubSysNo' AND commType ='$nGetComm' "; } } else { $chkSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND subSysNo='$subSysNo' "; } if ($DEBUG) echo "
check command sql = $chkSql"; $chkResult = mysqli_query($pubConn, $chkSql); echo mysqli_error($pubConn); $rowsNum = @mysqli_num_rows($chkResult); if ($rowsNum > 0) { echo ""; return (-1); } //step 3:insert commands into command table if (($paramType != $nSubSysParam) && ($commType == $nSetComm)) { //写公共参数 //get maxSubSysNum //$selSql="SELECT maxSysNum, maxSubSysNum FROM sysConf WHERE sysTypeNo = '$sysTypeNo'"; //$selResult=mysqli_query($pubConn,$selSql); //$selRows=mysqli_fetch_array($selResult); //echo mysqli_error($pubConn); //$maxSysNum = $selRows[maxSysNum]; //$maxSubSysNum = $selRows[maxSubSysNum]; if ($selectedSysId == -1) { if ($paramType == $nGlobalSysParam) { if ($sysTypeNo[0] == '2') { if ($sysTypeNo == '222' || $sysTypeNo == '223') {//MTP3,SCCP $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo!='8' AND sysNo!='11' AND DPC = '$selectedDPC' ORDER BY sysNo,subSysNo,baseStat DESC "; } else { $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' AND DPC = '$selectedDPC' ORDER BY sysNo,subSysNo,baseStat DESC "; } } else { $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' ORDER BY sysNo,subSysNo,baseStat DESC "; } } else { $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysNo,subSysNo,baseStat DESC "; } } else { //选择指定子系统 $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$selectedSysTypeNo' AND sysNo ='$selectedSysNo' AND subSysNo='$selectedSubSysNo' ORDER BY baseStat DESC "; } if ($DEBUG) { echo "
selSql=$selSql"; exit(); } $selResult = mysqli_query($pubConn, $selSql); $selRowsNum = mysqli_num_rows($selResult); if ($selRowsNum + $existNum > 64) { echo ""; return (-1); } //echo "
$selRowsNum
"; if ($selRowsNum > 0) { while ($selRows = mysqli_fetch_array($selResult)) { $sysNo = $selRows[sysNo]; $subSysNo = $selRows[subSysNo]; $sendSql = "INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','','1',CURRENT_TIMESTAMP) "; if ($DEBUG) echo "
send command sql = $sendSql"; $sendResult = mysqli_query($pubConn, $sendSql); echo mysqli_error($pubConn); } } else { echo "
Error:This canot get this system's IP"; return (-1); } //写VPS 或PCR 参数 /* }elseif(($sysTypeNo == 120 || $sysTypeNo == 130 || $sysTypeNo == 140) && ($commType == $nSetComm)){ $tmpLevelOne = $sysNo + 1; $tmpLevelTwo = $subSysNo + 1; switch($sysTypeNo){ case 120: $sysParamOidPrefix=$tmpLevelOne.'.'.$tmpLevelTwo.'.7.2.1'; break; case 130: $sysParamOidPrefix=$tmpLevelOne.'.'.$tmpLevelTwo.'.6.2.1'; break; case 140: $sysParamOidPrefix=$tmpLevelOne.'.'.$tmpLevelTwo.'.8.2.1'; break; default: echo "error sysTypeNo"; exit(); } if($DEBUG) echo"
strstr($objIdStr, $sysParamOidPrefix)"; if(strstr($objIdStr, $sysParamOidPrefix)){//写VPS 或PCR的公共参数 //get maxSubSysNum $selSql="SELECT maxSubSysNum FROM sysConf WHERE sysTypeNo = '$sysTypeNo'"; $selResult=mysqli_query($pubConn,$selSql); $selRows=mysqli_fetch_array($selResult); echo mysqli_error($pubConn); $maxSubSysNum = $selRows[maxSubSysNum]; //get alive system $selSql="SELECT DISTINCT subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysNo,subSysNo,baseStat DESC "; $selResult = mysqli_query($pubConn,$selSql); $selRowsNum = mysqli_num_rows($selResult); if($selRowsNum > 0){ while($selRows = mysqli_fetch_array($selResult)){ $subSysNo = $selRows[subSysNo]; $tmpLevelOne = $sysNo + 1; $tmpLevelTwo = $subSysNo + 1; $tmpOidLen = strlen($objIdStr); $tmpSubfixOid = substr($objIdStr,3,$tmpOidLen); $objIdStr = $tmpLevelOne.'.'.$tmpLevelTwo.$tmpSubfixOid; if($DEBUG) echo"
VPS OR PCR'S system parameter Oid:$objIdStr"; $sendSql="INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','0','1',CURRENT_TIMESTAMP) "; if($DEBUG) echo"
send command sql = $sendSql"; $sendResult=mysqli_query($pubConn,$sendSql); echo mysqli_error($pubConn); } }else{ echo "
Error:This canot get this system's IP"; return(-1); } }else{//写VPS,PCR子系统参数 $sendSql="INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','0','1',CURRENT_TIMESTAMP) "; if($DEBUG) echo"
send command sql = $sendSql"; $sendResult=mysqli_query($pubConn,$sendSql); echo mysqli_error($pubConn); } */ } else {//读系统/子系统参数或写子系统参数 if ($paramType != $nSubSysParam) {//读公共参数 if ($selectedSysId == -1) { //get baseStat 0=uninstalled, 1=nomal, 2=warning, 3=error //先按状态排序,再按系统编号,子系统编号排序,同种状态优先选择编号小的 if ($paramType == $nGlobalSysParam) { /*if($sysTypeNo == '222' || $sysTypeNo == '223'){//MTP3,SCCP $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' AND DPC = '$selectedDPC' ORDER BY baseStat DESC,updateTime DESC,sysNo DESC,subSysNo "; }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' ORDER BY baseStat DESC,updateTime DESC,sysNo,subSysNo "; }*/ if ($sysTypeNo[0] == '2') {//Platform $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' ORDER BY baseStat DESC,sysNo DESC,subSysNo,updateTime DESC "; } else { $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' ORDER BY baseStat DESC,updateTime DESC,sysNo,subSysNo "; } } else { $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$sysNo' ORDER BY baseStat DESC,updateTime DESC,sysNo,subSysNo "; } } else { //选择指定子系统 $selSql = "SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$selectedSysNo' AND subSysNo='$selectedSubSysNo' ORDER BY baseStat DESC,updateTime DESC "; } $selResult = mysqli_query($pubConn, $selSql); if ($DEBUG) { echo "
get system info sql = $selSql"; } echo mysqli_error($pubConn); if (@mysqli_num_rows($selResult) > 0) { $selRows = @mysqli_fetch_array($selResult); $sysNo = $selRows[sysNo]; $subSysNo = $selRows[subSysNo]; } else { echo ""; return (-1); } } // special for sccp and mtp3 add by lilong 2004-6-11 if ($selectedSysId == -1) { $DEBUG = 0; if ($DEBUG) echo "sysTypeNo = $sysTypeNo, sysNo = $sysNo
"; if (($sysTypeNo == '222' || $sysTypeNo == '223') && ('8' != $sysNo) && ('11' != $sysNo)) {//MTP3,SCCP $selSql_1 = "SELECT sysNo,subsysNo FROM sysInfo WHERE baseStat=1 AND sysTypeNo=320"; if ($DEBUG) echo "selSql_1 = $selSql_1
"; $selRes_1 = mysqli_query($pubConn, $selSql_1); if (mysqli_num_rows($selRes_1) > 0) { $selRows_1 = @mysqli_fetch_array($selRes_1); $sysNo = 9; $subSysNo = $selRows_1[sysNo]; } else { $selSql_2 = "SELECT sysNo,subsysNo FROM sysInfo WHERE baseStat=1 AND sysTypeNo=0"; if ($DEBUG) echo "selSql_2 = $selSql_2
"; $selRes_2 = mysqli_query($pubConn, $selSql_2); if (mysqli_num_rows($selRes_2) > 0) { $selRows_2 = @mysqli_fetch_array($selRes_2); $sysNo = 0; $subSysNo = $selRows_2[subsysNo]; } } } if ($DEBUG) { echo "sysNo=$sysNo, subSysNo=$subSysNo
"; exit(); } $DEBUG = 0; //add end by lilong 2004-6-11 } if (1 + $existNum > 64) { echo ""; return (-1); } $sendSql = "INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','','1',CURRENT_TIMESTAMP) "; if ($DEBUG) echo "
send command sql = $sendSql"; $sendResult = mysqli_query($pubConn, $sendSql); echo mysqli_error($pubConn); } //step 4:Return commIdStr if ($DEBUG) echo "
if(($paramType != $nSubSysParam) && ($commType == $nSetComm))"; if (($paramType != $nSubSysParam) && ($commType == $nSetComm)) { if ($paramType == $nGlobalSysParam) { $selSql = "SELECT commId FROM $commTable WHERE paramType='$paramType' AND sysTypeNo='$sysTypeNo' ORDER BY sysTypeNo,sysNo,subSysNo"; } else { $selSql = "SELECT commId FROM $commTable WHERE paramType='$paramType' AND sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysTypeNo,sysNo,subSysNo"; } /* //写VPS 或PCR 参数 }elseif(($sysTypeNo == 120 || $sysTypeNo == 130 || $sysTypeNo == 140) && ($commType == $nSetComm)){ $selSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysTypeNo,sysNo,subSysNo"; */ } else { $selSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND subSysNo='$subSysNo'"; } if ($DEBUG) echo "
get command id sql = $selSql"; $selResult = mysqli_query($pubConn, $selSql); echo mysqli_error($pubConn); $commIdStr = ''; while ($selRows = mysqli_fetch_array($selResult)) { $commIdStr .= $selRows[commId] . '-'; } if ($DEBUG) echo "
commIdStr = $commIdStr"; if ($DEBUG) exit(); return ($commIdStr); }//end of function sysSendComm() //**************************************************************** //函 数 名: setSysParamValue($sysId,$objIdStr,$instanceNo,$newValue) //功能说明: 修改设备参数的initValue,为发送命令做准备 //变量说明: 略 //返 回 值: // 成功: 命令编号字符串 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function setSysParamValue($sysId, $objIdStr, $instanceNo, $newValue) { global $paramConf_table,$OMC_server,$pubConn; $DEBUG = 0; if ($DEBUG) echo "
sysId=$sysId"; $tmpSysIdArr = explode('_', $sysId); $sysTypeNo = $tmpSysIdArr[0]; $sysNo = $tmpSysIdArr[1]; $subSysNo = $tmpSysIdArr[2]; $paramDb = 'OBJ_' . $sysTypeNo; $objConn = mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], $paramDb); if ($DEBUG) echo "
paramDb=$paramDb"; //获取参数定义表的表名,根据oid取出参数定义 $tmpObjArr = explode('.', $objIdStr); $objWhereStr = ''; for ($i = 0; $i < sizeof($tmpObjArr); $i++) { $j = $i + 1; $objWhereStr .= ' level_' . $j . "='{$tmpObjArr[$i]}' AND "; } $objWhereStr = substr($objWhereStr, 0, -5); //最后多了一个' AND ',将其去掉 $getParamDefSql = "SELECT paramType FROM $paramConf_table WHERE $objWhereStr"; if ($DEBUG) echo "
$getParamDefSql"; $getParamDefResult = mysqli_query($objConn, $getParamDefSql); //echo mysqli_error($objConn); if (mysqli_num_rows($getParamDefResult) <= 0) { //echo "Cannot find this objId from paramConf"; return (-1); } $getParamDefRows = mysqli_fetch_array($getParamDefResult); $paramType = $getParamDefRows[paramType]; //根据参数类型,推出参数表的表名 if ($paramType == 2) { $paramTable = 'param_99'; } else { $paramTable = 'param_' . $sysNo; } if ($paramType != 0) { $subSysNo = '99'; } //修改对应的参数值 $setParamValueSql = "UPDATE $paramTable SET initValue='$newValue',readValue='' WHERE subSysNo = '$subSysNo' AND instanceNo = '$instanceNo' AND $objWhereStr "; if ($DEBUG) echo "
$setParamValueSql
"; $setResult = mysqli_query($objConn, $setParamValueSql); // echo mysqli_error($objConn); //bug if ($setResult) { return (1); } else { return (-1); } }//end of function setSysParamValue //**************************************************************** //函 数 名: getSysParamValue($sysId,$objIdStr,$instanceNo,$valueName) //功能说明: 获取指定的设备参数 //变量说明: 略 //返 回 值: // 成功: 参数值 // 失败: exit()退出 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getSysParamValue($sysId, $objIdStr, $instanceNo, $valueName) { global $paramConf_table; $DEBUG = 0; $tmpSysIdArr = explode('_', $sysId); $sysTypeNo = $tmpSysIdArr[0]; $sysNo = $tmpSysIdArr[1]; $subSysNo = $tmpSysIdArr[2]; $paramDb = 'OBJ_' . $sysTypeNo; //获取参数定义表的表名,根据oid取出参数定义 $tmpObjArr = explode('.', $objIdStr); $objWhereStr = ''; for ($i = 0; $i < sizeof($tmpObjArr); $i++) { $j = $i + 1; $objWhereStr .= ' level_' . $j . "='{$tmpObjArr[$i]}' AND "; } $objWhereStr = substr($objWhereStr, 0, -5); //最后多了一个' AND ',将其去掉 $getParamDefSql = "SELECT paramType FROM $paramConf_table WHERE $objWhereStr"; if ($DEBUG) echo "
$getParamDefSql"; $getParamDefResult = mysqli_query($pubConn, $getParamDefSql); //echo mysqli_error($pubConn); if (@mysqli_num_rows($getParamDefResult) <= 0) { //echo "Cannot find this objId from paramConf"; return (-1); } $getParamDefRows = mysqli_fetch_array($getParamDefResult); $paramType = $getParamDefRows[paramType]; //根据参数类型,推出参数表的表名 if ($paramType == 2) { $paramTable = 'param_99'; } else { $paramTable = 'param_' . $sysNo; } if ($paramType != 0) { $subSysNo = '99'; } //修改对应的参数值 $getParamValueSql = "SELECT $valueName FROM $paramTable WHERE subSysNo = '$subSysNo' AND instanceNo = '$instanceNo' AND $objWhereStr "; if ($DEBUG) echo "
$getParamValueSql
"; $getResult = mysqli_query($pubConn, $getParamValueSql); //echo mysqli_error($pubConn); if (mysqli_num_rows($getResult) > 0) { $paramRows = mysqli_fetch_array($getResult); $paramValue = $paramRows[0]; return ($paramValue); } else { return (-1); } }//end of function getSysParamValue //**************************************************************** //函数8 // getMoneyPara() //函数说明: // 该函数通过查询PPS系统配置得到显示的货币单位是最小货币单位的倍数 // // // // //变量说明: // 无 // // //返回值: // 显示的货币单位是最小货币单位的倍数 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getMoneyPara() { global $pubConn; $getSql = " SELECT pubVarValue FROM omcPubVarConf WHERE pubVarName='pssCardMinCount'"; $getRes = @mysqli_query($pubConn, $getSql); $getRow = @mysqli_fetch_array($getRes); echo mysqli_error($pubConn); $multiple = $getRow[pubVarValue]; /* if($multiple < 0.1) { $multiple = 100; } elseif($multiple < 1) { $multiple = 10; } */ return ($multiple); } function getMoneyPara_forPpsReport() { global $omc_db,$pubConn; $getSql = " SELECT pubVarValue FROM omcPubVarConf WHERE pubVarName='currency_decimal'"; $getRes = @mysqli_query($pubConn, $getSql); $getRow = @mysqli_fetch_array($getRes); echo mysqli_error($pubConn); $multiple = $getRow[pubVarValue]; /* if($multiple < 0.1) { $multiple = 100; } elseif($multiple < 1) { $multiple = 10; } */ return ($multiple); } //**************************************************************** //函数: // getBitValue($hexStr,$offset) //功能说明: //从一个十六进制字符串$hexStr中取出指定位置$offset的二进制字符 //例: getBitValue('F1','0.1')=1 // getBitValue('F1','1.0')=1 // getBitValue('F1','1.1')=0 //参数说明: // //返回值: // 取出的二进制字符 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getBitValue($hexStr, $offset) { $DEBUG = 0; if ($DEBUG) echo "
hexStr=$hexStr"; if ($DEBUG) echo "
offset=$offset"; $tmpArr = explode('-', $offset); $tmpBgnArr = explode('.', $tmpArr[0]); $bgnByteOffset = $tmpBgnArr[0]; $bgnBitOffset = $tmpBgnArr[1]; if ($DEBUG) echo "
bgnByteOffset=$bgnByteOffset"; if ($DEBUG) echo "
bgnBitOffset=$bgnBitOffset"; if (sizeof($tmpArr) > 1 && $tmpArr[0] != $tmpArr[1]) { $tmpEndArr = explode('.', $tmpArr[1]); $endByteOffset = $tmpEndArr[0]; $endBitOffset = $tmpEndArr[1]; if ($bgnBitOffset == 0 && $endBitOffset == 7) { $byteOffset = $endByteOffset - $bgnByteOffset + 1; $selByte = substr($hexStr, $bgnByteOffset * 2, $byteOffset * 2); return ($selByte); } else { $tmpByte_1 = substr($hexStr, 0, $bgnByteOffset * 2); $tmpByte_2 = substr($hexStr, ($endByteOffset + 1) * 2); $selByte = substr($hexStr, $bgnByteOffset * 2, ($endByteOffset - $bgnByteOffset + 1) * 2); if (strlen($selByte) > 2) {//不能跨byte return (-1); } if ($DEBUG) echo "
selByte=$selByte"; $tmpDec = HexDec($selByte); $binStr = DecBin($tmpDec); for ($i = strlen($binStr); $i < strlen($selByte) * 4; $i++) { $binStr = '0' . $binStr; } if ($DEBUG) echo "
binStr=$binStr"; if ($bgnBitOffset == 0) { $selBit = substr($binStr, -($endBitOffset + 1)); } else { $selBit = substr($binStr, -($endBitOffset + 1), ($endBitOffset - $bgnBitOffset + 1)); } return ($selBit); } } else { if ($bgnByteOffset >= ceil(strlen($hexStr) / 2)) { return (0); } else { $selByte = substr($hexStr, $bgnByteOffset * 2, 2); if ($DEBUG) echo "
selByte=$selByte"; $tmpDec = HexDec($selByte); $binStr = DecBin($tmpDec); if ($DEBUG) echo "
binStr=$binStr"; $binStrLen = strlen($binStr); if ($bgnBitOffset >= $binStrLen) { return (0); } else { $tmpLen = 0 - $bgnBitOffset - 1; $selBit = substr($binStr, $tmpLen, 1); if ($DEBUG) echo "
selBit=$selBit=substr($binStr,$tmpLen,1)"; return ($selBit); } } } } //**************************************************************** //函数: // setBitValue($hexStr,$offset,$bitValue) //功能说明: //将一个十六进制字符串$hexStr中指定位置$offset的二进制字符,设成指定的值$bitValue //例: setBitValue('F1','1.1','1')=F3 // setBitValue('F1','0.1','0')=E1 //参数说明: // //返回值: // 被改过的十六进制字符串$hexStr // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function setBitValue($hexStr, $offset, $bitValue) { $DEBUG = 0; if ($DEBUG) echo "
===================="; if ($DEBUG) echo "
hexStr=$hexStr"; if ($DEBUG) echo "
offset=$offset"; $tmpArr = explode('-', $offset); $tmpBgnArr = explode('.', $tmpArr[0]); $bgnByteOffset = $tmpBgnArr[0]; $bgnBitOffset = $tmpBgnArr[1]; if ($DEBUG) echo "
bgnByteOffset=$bgnByteOffset"; if ($DEBUG) echo "
bgnBitOffset=$bgnBitOffset"; if (sizeof($tmpArr) > 1) { $tmpEndArr = explode('.', $tmpArr[1]); $endByteOffset = $tmpEndArr[0]; $endBitOffset = $tmpEndArr[1]; if ($DEBUG) echo "
endByteOffset=$endByteOffset"; if ($DEBUG) echo "
endBitOffset=$endBitOffset"; if ($bgnBitOffset == 0 && $endBitOffset == 7) { //这时,$bitValue是16进值字符串,其他情况下,都是二进制字符串 $tmpByte_1 = substr($hexStr, 0, $bgnByteOffset * 2); if ($DEBUG) echo "
tmpByte_1=$tmpByte_1"; $tmpByte_2 = substr($hexStr, ($endByteOffset + 1) * 2); if ($DEBUG) echo "
tmpByte_2=$tmpByte_2"; $tmpHexStr = $tmpByte_1 . $bitValue . $tmpByte_2; if ($DEBUG) echo "
tmpHexStr=$tmpHexStr"; return ($tmpHexStr); } else { $tmpByte_1 = substr($hexStr, 0, $bgnByteOffset * 2); $tmpByte_2 = substr($hexStr, ($endByteOffset + 1) * 2); $selByte = substr($hexStr, $bgnByteOffset * 2, ($endByteOffset - $bgnByteOffset + 1) * 2); if (strlen($selByte) > 2) {//不能跨byte return (-1); } if ($DEBUG) echo "
selByte=$selByte"; $tmpDec = HexDec($selByte); $binStr = DecBin($tmpDec); for ($i = strlen($binStr); $i < strlen($selByte) * 4; $i++) { $binStr = '0' . $binStr; } if ($DEBUG) echo "
binStr=$binStr"; $tmpBit_1 = substr($binStr, 0, 8 - $endBitOffset - 1); if ($DEBUG) echo "
tmpBit_1=$tmpBit_1"; if ($bgnBitOffset == 0) { $tmpBit_2 = ''; } else { $tmpBit_2 = substr($binStr, -($bgnBitOffset)); } if ($DEBUG) echo "
tmpBit_2=$tmpBit_2"; $tmpBit = $tmpBit_1 . $bitValue . $tmpBit_2; if ($DEBUG) echo "
tmpBit=$tmpBit"; $tmpByte = dechex(BinDec($tmpBit)); if ($DEBUG) echo "
tmpByte=$tmpByte"; for ($i = strlen($tmpByte); $i < strlen($selByte); $i++) { $tmpByte = '0' . $tmpByte; } $tmpHexStr = $tmpByte_1 . $tmpByte . $tmpByte_2; return ($tmpHexStr); } } else { if ($bgnByteOffset >= ceil(strlen($hexStr) / 2)) { return (-1); } else { $selByte = substr($hexStr, $bgnByteOffset * 2, 2); if ($DEBUG) echo "
selByte=$selByte"; $tmpDec = HexDec($selByte); $binStr = DecBin($tmpDec); $binStr = omc_keep_length($binStr, '0', '8', '1'); if ($DEBUG) echo "
binStr=$binStr"; $tmpLen = 7 - $bgnBitOffset; $tmpBit_1 = substr($binStr, 0, $tmpLen); if ($DEBUG) echo "
tmpBit_1=$tmpBit_1=substr($binStr,0,$tmpLen)"; $tmpLen = 8 - $bgnBitOffset; $tmpBit_2 = substr($binStr, $tmpLen); if ($DEBUG) echo "
tmpBit_2=$tmpBit_2=substr($binStr,$tmpLen) "; $newBitStr = $tmpBit_1 . $bitValue . $tmpBit_2; if ($DEBUG) echo "
newBitStr=$newBitStr"; $tmpDec = BinDec($newBitStr); $selByte = DecHex($tmpDec); $selByte = omc_keep_length($selByte, '0', '2', '1'); if ($DEBUG) echo "
selByte=$selByte"; $tmpHexStr_1 = substr($hexStr, 0, $bgnByteOffset * 2); $tmpHexStr_2 = substr($hexStr, $bgnByteOffset * 2 + 2); if ($DEBUG) echo "
tmpHexStr_1=$tmpHexStr_1 / tmpHexStr_2=$tmpHexStr_2 "; $tmpHexStr = $tmpHexStr_1 . $selByte . $tmpHexStr_2; if ($DEBUG) echo "
tmpHexStr=$tmpHexStr"; return ($tmpHexStr); } } } //**************************************************************** //函数: // getPubVar($pubVarName) //功能说明: //从表OMC_PUB.omcPubVarConf中取出对应变量名的值 //例: getPubVar('pssCardMinCount')=100 //参数说明: // //返回值: // 成功:取出变量名的值,失败:-1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getPubVar($pubVarName) { $DEBUG = 0; global $pubConn; $db = 'OMC_PUB'; $tableName = 'omcPubVarConf'; $sql = " SELECT pubVarValue FROM $tableName WHERE pubVarName='$pubVarName' "; if ($DEBUG) echo "
sql=$sql"; //$res = @mysqli_query($pubConn,$sql); $res = mysqli_query($pubConn, $sql); if (NULL == $res) return (-1); if (mysqli_num_rows($res) > 0) { $row = mysqli_fetch_array($res); return ($row['pubVarValue']); } else { return (-1); } } //**************************************************************** //函数: // showComma($value) //功能说明:如果值大于3位,加逗号显示 // //参数说明: // //返回值: // 成功:转换的值,失败:-1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function showComma($value) { $sValue = explode("-", $value); if (isset($sValue[1])) $pValue = explode(".", $sValue[1]); else $pValue = explode(".", $sValue[0]); $intValue = $pValue[0]; $len = strlen($intValue); $temValue = ''; while ($len > 3) { $value_1 = substr($intValue, -3); $intValue = substr($intValue, 0, -3); $temValue = "," . $value_1 . $temValue; $len = strlen($intValue); } $temValue = $intValue . $temValue; if (isset($pValue[1])) { $temValue = $temValue . "." . $pValue[1]; } if (isset($sValue[1])) $temValue = "-" . $temValue; return $temValue; } //**************************************************************** //函数: // showHelp($helpId) //功能说明:显示帮组文件 // //参数说明: // //返回值: // 成功: // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function showHelp($helpId) { echo " "; echo ""; //echo "
"; } //**************************************************************** //函数: // getSerial() //功能说明:得到各模块的系列号,以及总的系列号. // //参数说明: // //返回值: // 成功: // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getSerial() { $DEBUG = 0; $dbName = 'OMC_PUB'; $tbName = 'sysStat'; global $ttlSerial; global $srlArr; global $noSrlStt, $ttlSrlClr; global $pubConn; $selSql = " SELECT * FROM $tbName WHERE sysTypeNo = 0"; if ($DEBUG) echo "
selSql=$selSql"; $selRes = mysqli_query($pubConn, $selSql); $selRow = mysqli_fetch_array($selRes); $detailStat = $selRow['detailStat']; $ttlSerial = substr($detailStat, 39 * 2, 8); $ttlSrlClr = "#000000"; if ($DEBUG) echo "
ttlSerial=$ttlSerial
"; $selSql = " SELECT * FROM $tbName WHERE sysTypeNo=320 OR sysTypeNo = 330 OR sysTypeNo = 340 OR sysTypeNo = 360 OR sysTypeNo = 380 OR sysTypeNo = 390 OR sysTypeNo = 350 "; if ($DEBUG) echo "
selSql=$selSql"; $selRes = mysqli_query($pubConn, $selSql); $selRow = mysqli_fetch_array($selRes); do { if (!$selRow) break; $sysTypeNo = $selRow['sysTypeNo']; $sysNo = $selRow['sysNo']; if ($DEBUG) echo "
sysTypeNo=$sysTypeNo"; if ($DEBUG) echo "
sysNo=$sysNo"; $detailStat = $selRow['detailStat']; if ($DEBUG) echo "
detailStat=$detailStat"; switch ($sysTypeNo) { case '320': //MSC $arrNum = 0; $subBgn = 39; break; case '330': //HLR $arrNum = 1; $subBgn = 39; break; case '340': //AUC $arrNum = 2; $subBgn = 39; break; case '360': //PPS $arrNum = 3; $subBgn = 39; break; case '380': //EIR $arrNum = 4; $subBgn = 39; break; case '390': //VSS $arrNum = 5; $subBgn = 39; break; case '350': //SMSC $arrNum = 6; $subBgn = 39; break; default: break; } $srlArr[$arrNum][$sysNo]['number'] = substr($detailStat, $subBgn * 2, 8); $srlArr[$arrNum][$sysNo]['color'] = "#000000"; if ($DEBUG) echo "
srlArr[$arrNum][$sysNo] = {$srlArr[$arrNum][$sysNo]}
"; if ($srlArr[$arrNum][$sysNo]['number'] != $ttlSerial) { $srlArr[$arrNum][$sysNo]['color'] = "#FF0000"; $noSrlStt = 1; } if ($DEBUG) echo "
noSrlStt=$noSrlStt"; } while ($selRow = mysqli_fetch_array($selRes)); if ($DEBUG) echo "
ttlSerial=$ttlSerial"; if ($noSrlStt) $ttlSrlClr = "#FF0000"; else $ttlSrlClr = "#000000"; if ($DEBUG) echo "
ttlSrlClr=$ttlSrlClr
"; return 1; } function byte2ip($byteStr) { for ($i = 0; $i < 4; $i++) { $unitIp = substr($byteStr, $i * 2, 2); $unitIp = hexdec($unitIp); if ($i == 0) { $ipStr = $unitIp; } else { $ipStr .= ".$unitIp"; } } return ($ipStr); } function changeByteOrder($hex_byte) { while (strlen($hex_byte) % 2 == 1) $hex_byte = "0" . $hex_byte; $byte_len = strlen($hex_byte) / 2; $res = ""; for ($i = 0; $i < $byte_len; $i++) { $tmpstr = substr($hex_byte, $i * 2, 2); $res = $tmpstr . $res; } return $res; } function getSystemNameBySysTypeNo($sysTypeNo) { global $pubConn; $sqlstr = "select sysTypeName from OMC_PUB.sysConf where sysTypeNo = $sysTypeNo "; $res = @mysqli_query($pubConn, $sqlstr); $row = @mysqli_fetch_array($res); return $row['sysTypeName']; } function getSystemState($sysTypeNo, $byteStart, $length) { global $pubConn; $sql = "select detailStat from OMC_PUB.sysStat where sysTypeNo=$sysTypeNo order by updateTime DESC "; if ($DEBUG) echo "$sql
"; $result = @mysqli_query($pubConn, $sql); $record_num = 0; $record_num = @mysqli_num_rows($result); if ($record_num == 0) return ""; $rows = @mysqli_fetch_array($result); $allbin = $rows['detailStat']; if (strlen($allbin) < $length) return ""; $resbin = substr($allbin, $byteStart, $length); return $resbin; } //**************************************************************** //函数: // getParamOptionArray //功能说明:返回参数选项值的数组 // //参数说明: // sysTypeNo: sysTypeNo // value: parameter oid or name // mode: PARAM_OID PARAM_NAME //返回值: // 成功: // //作者:zhengjianhui // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- define("PARAM_OID", 0); define("PARAM_NAME", 1); function getParamOptionArray($sysTypeNo, $value, $mode) { $db = "OBJ_" . $sysTypeNo; global $objDbConn; if ($mode == PARAM_NAME) { $sql = "select * from OBJ_$sysTypeNo.paramConf where name_2 like '%$value%' "; } else { $levelArr = explode('.', $value); for ($j = 0; $j < sizeof($levelArr); $j++) { $levelNo = $j + 1; ${"level_$levelNo"} = $levelArr[$j]; if ($DEBUG) echo "
levelArr[$j]={$levelArr[$j]}"; if ($j == 0) { $levelWhere = "level_$levelNo='${"level_$levelNo"}'"; } else { $levelWhere .= " AND level_$levelNo='${"level_$levelNo"}'"; } } $sql = "select * from OBJ_$sysTypeNo.paramConf where $levelWhere "; } $res = @mysqli_query($objDbConn, $sql); $row = @mysqli_fetch_array($res); $template = $row['setTemplate_2']; $options = explode(";", $template); for ($i = 0; $i < sizeof($options); $i++) { $tmp = explode("=", $options[$i]); $n = $tmp[0]; $v = $tmp[1] + 0; //echo "value=$v,name=$n
"; $arr[$v] = $n; } return $arr; } function getMSSFtpAccount() { global $pubConn; $default_user_name = "subsManager"; $default_password = "iammanager"; $sql = "select * from OMC_PUB.omcPubVarConf where pubVarName='globalFTPUserName' "; // $res=@mysqli_query($pubConn,$sql); // $num=@mysqli_num_rows($res); $res = @mysqli_query($pubConn, $sql); $num = @mysqli_fetch_array($res); if ($num == 0) { $isql = "insert into OMC_PUB.omcPubVarConf(instance,pubVarName,pubVarValue,remark)values(18,'globalFTPUserName','subsManager','For Import subscriber, download PPS Tarriff, backup MSS subs data and MSS Configuration Synchronization');"; @mysqli_query($pubConn, $isql); $isql = "insert into OMC_PUB.omcPubVarConf(instance,pubVarName,pubVarValue,remark)values(18,'globalFTPPassword','iammanager','For Import subscriber, download PPS Tarriff, backup MSS subs data and MSS Configuration Synchronization');"; @mysqli_query($pubConn, $isql); } $row = @mysqli_fetch_array($res); if (strlen(trim($row['pubVarValue'])) > 0) $ftpInfo['UserName'] = $row['pubVarValue']; else $ftpInfo['UserName'] = $default_user_name; $sql = "select * from OMC_PUB.omcPubVarConf where pubVarName='globalFTPPassword' "; $res = @mysqli_query($pubConn, $sql); $row = @mysqli_fetch_array($res); if (strlen(trim($row['pubVarValue'])) > 0) $ftpInfo['Password'] = $row['pubVarValue']; else $ftpInfo['Password'] = $default_password; return $ftpInfo; } //**************************************************************** //函数: // alertMsgAndGoLastl() //功能说明:使用JS提示一些信息. // //参数说明: // //返回值: // 成功: // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function alertMsgAndGoLast($msg) { echo ""; exit(); } //注意:下面的"? >"后面不能有空行,否则cvs数据下载时,会出错。 ?>