2372 lines
74 KiB
PHP
Executable File
2372 lines
74 KiB
PHP
Executable File
<?php
|
||
//-----------本文件是omc php模块的函数库文件,包含一些常用的自定义函数----------
|
||
require("../../inc/config.inc");
|
||
|
||
function sftp_connect($remote_ip)
|
||
{
|
||
$connection = ssh2_connect($remote_ip, 22);
|
||
if (!$connection)
|
||
echo "sftp_connect:Connect server[$remote_ip] failed<br>";
|
||
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<br>";
|
||
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<br>";
|
||
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<br>";
|
||
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<br>";
|
||
return FALSE;
|
||
}
|
||
|
||
$content=stream_get_contents($stream);
|
||
fwrite($handle,$content);
|
||
|
||
fclose($handle);
|
||
fclose($stream);
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
function checkWritePrivilege()
|
||
{
|
||
global $userInfo;
|
||
// echo "<pre>";
|
||
// print_r($userInfo);
|
||
// echo "<pre>";
|
||
|
||
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 "<br>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 "<br>Invailed privilege";
|
||
return (-1);
|
||
}
|
||
|
||
|
||
//对比判断该编号对应的权限能否访问该目录
|
||
for ($p = 0; $p < sizeof($dirAccessDefArr[$privilege]); $p++) {
|
||
$tmpDir = $dirAccessDefArr[$privilege][$p];
|
||
$tmpLen = strlen($tmpDir);
|
||
if ($funcDebug) echo "<br>$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 "<br>$tmpDir == $thisDir";
|
||
if ($tmpDir == $thisDir && $tmpLen > 0) {
|
||
return (1);
|
||
}
|
||
}
|
||
}
|
||
if ($funcDebug) echo "<br>??";
|
||
|
||
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 "<br>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 "<br>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 "<br>$sel_sql";
|
||
$result = mysqli_query($pubConn, $sel_sql);
|
||
if ($result > 0) {
|
||
$result_rows = mysqli_fetch_array($result);
|
||
//echo "<br>result_rows[sysTypeNo]=$result_rows[sysTypeNo]";
|
||
return ($result_rows[sysTypeNo]);
|
||
} else {
|
||
echo mysqli_error($pubConn);
|
||
echo "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>del_sql=$del_sql";
|
||
$result = mysqli_query($pubConn, $del_sql);
|
||
//echo "<br>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 "<br>field_sql=$field_sql";
|
||
$field_result = mysqli_query($pubConn, $field_sql);
|
||
|
||
//-------------check the data file's fields-------------
|
||
//echo "<br>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 "<br>field_line=$field_line";
|
||
if (substr($field_line, 0, 1) != $remark_style[sign]) {
|
||
echo "the remark sign not exist"; //注释符错误
|
||
return (-1);
|
||
} else {
|
||
//echo "<br>field_line=$field_line";
|
||
$file_fields_line = substr($field_line, 1);
|
||
//echo "<br>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 "<br>fields_num=$fields_num";
|
||
for ($i = 0; $i < $fields_num; $i++) {
|
||
$this_field = mysql_field_name($field_result, $i);
|
||
//echo "<br>$file_fields_rows[$i] -- $this_field";
|
||
if ($file_fields_rows[$i] != $this_field && $this_field != '') {
|
||
echo "<br>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 "<br>sel_sql=$sel_sql<br>";
|
||
$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; $j<mysql_num_fields($result);$j++){
|
||
$schema_insert .= mysql_field_name($result,$j).$sep;
|
||
//echo "<br>schema_insert=$schema_insert<br>";
|
||
}
|
||
$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 "<br><font color=\"#FF0000\" size=\"3\"><b>$warning_words</b></font>";
|
||
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 "<br>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 "<br>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 "<br>";
|
||
echo "\n";
|
||
echo "<table width=$big_width border=0 cellpadding=0 cellspacing=0 ><tr><td>";
|
||
echo "<font color=000000>$strProgressIsShowedAsFollowing</font>";
|
||
echo "</td></tr></table>";
|
||
echo "\n<table border=0 cellpadding=0 cellspacing=0 width=$big_width bgcolor=#0000FF>";
|
||
echo "\n<tr><td width=$big_width height=$height colspan=3><p align=center><font color=#FFFFFF>";
|
||
echo "\n$quoNum%";
|
||
echo "\n</font></td></tr>";
|
||
echo "\n<tr><td width=$border></td><td width=$lit_width height=$height bgcolor=#FFFFFF>";
|
||
$lineNum = $quoNum * 3;
|
||
echo "\n<table border=1 cellpadding=0 cellspacing=0 width=$lineNum height=$height bordercolor=#FF0000 bgcolor=#FFCC00>";
|
||
echo "\n<tr><td></td></tr></table> </td><td width=$border></td></tr>";
|
||
echo "\n<tr><td width=$big_width height=$height colspan=3></td></tr></table> ";
|
||
//echo "\n<br>";
|
||
}
|
||
|
||
|
||
//****************************************************************
|
||
//函 数 名: 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 "<BR>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 "<br>selectedSysId=$selectedSysId";
|
||
if ($DEBUG) echo "<br>selectedSysNo=$selectedSysNo";
|
||
if ($DEBUG) echo "<br>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 "<br>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 "<br>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 "<br>check command sql = $chkSql";
|
||
$chkResult = mysqli_query($pubConn, $chkSql);
|
||
echo mysqli_error($pubConn);
|
||
$rowsNum = @mysqli_num_rows($chkResult);
|
||
if ($rowsNum > 0) {
|
||
echo "<script language=\"javascript\"> ";
|
||
echo "alert('Command object is being operated by others,please try it later!'); ";
|
||
echo "</script>";
|
||
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 "<br>selSql=$selSql";
|
||
exit();
|
||
}
|
||
$selResult = mysqli_query($pubConn, $selSql);
|
||
$selRowsNum = mysqli_num_rows($selResult);
|
||
|
||
if ($selRowsNum + $existNum > 64) {
|
||
echo "<script language=\"javascript\"> ";
|
||
echo "alert('The command buffer is full,please try it later!'); ";
|
||
echo "</script>";
|
||
return (-1);
|
||
}
|
||
//echo "<br>$selRowsNum<br>";
|
||
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 "<br>send command sql = $sendSql";
|
||
$sendResult = mysqli_query($pubConn, $sendSql);
|
||
echo mysqli_error($pubConn);
|
||
}
|
||
} else {
|
||
echo "<br><font size=3 color=red><b>Error:This canot get this system's IP</b></font>";
|
||
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"<br>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"<br>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"<br>send command sql = $sendSql";
|
||
$sendResult=mysqli_query($pubConn,$sendSql);
|
||
echo mysqli_error($pubConn);
|
||
}
|
||
}else{
|
||
echo "<br><font size=3 color=red><b>Error:This canot get this system's IP</b></font>";
|
||
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"<br>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 "<br>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 "<script language=\"javascript\"> ";
|
||
echo "alert('This system have not been installed'); ";
|
||
echo "</script>";
|
||
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<br>";
|
||
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<br>";
|
||
$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<br>";
|
||
$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<br>";
|
||
exit();
|
||
}
|
||
$DEBUG = 0;
|
||
//add end by lilong 2004-6-11
|
||
}
|
||
|
||
if (1 + $existNum > 64) {
|
||
echo "<script language=\"javascript\"> ";
|
||
echo "alert('The command buffer is full,please try it later!'); ";
|
||
echo "</script>";
|
||
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 "<br>send command sql = $sendSql";
|
||
$sendResult = mysqli_query($pubConn, $sendSql);
|
||
echo mysqli_error($pubConn);
|
||
}
|
||
|
||
//step 4:Return commIdStr
|
||
if ($DEBUG) echo "<br>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 "<br>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 "<br>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 "<br>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 "<br>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 "<br>$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';
|
||
}
|
||
|
||
|
||
//修改对应的参数值
|
||
$setParamValueSql = "UPDATE $paramTable
|
||
SET initValue='$newValue',readValue=''
|
||
WHERE subSysNo = '$subSysNo' AND instanceNo = '$instanceNo'
|
||
AND $objWhereStr
|
||
";
|
||
if ($DEBUG) echo "<br> $setParamValueSql <br>";
|
||
$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 "<br>$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 "<br> $getParamValueSql <br>";
|
||
$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 "<br>hexStr=$hexStr";
|
||
if ($DEBUG) echo "<br>offset=$offset";
|
||
$tmpArr = explode('-', $offset);
|
||
$tmpBgnArr = explode('.', $tmpArr[0]);
|
||
$bgnByteOffset = $tmpBgnArr[0];
|
||
$bgnBitOffset = $tmpBgnArr[1];
|
||
if ($DEBUG) echo "<br>bgnByteOffset=$bgnByteOffset";
|
||
if ($DEBUG) echo "<br>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 "<br>selByte=$selByte";
|
||
$tmpDec = HexDec($selByte);
|
||
$binStr = DecBin($tmpDec);
|
||
for ($i = strlen($binStr); $i < strlen($selByte) * 4; $i++) {
|
||
$binStr = '0' . $binStr;
|
||
}
|
||
if ($DEBUG) echo "<br>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 "<br>selByte=$selByte";
|
||
$tmpDec = HexDec($selByte);
|
||
$binStr = DecBin($tmpDec);
|
||
if ($DEBUG) echo "<br>binStr=$binStr";
|
||
$binStrLen = strlen($binStr);
|
||
if ($bgnBitOffset >= $binStrLen) {
|
||
return (0);
|
||
} else {
|
||
$tmpLen = 0 - $bgnBitOffset - 1;
|
||
$selBit = substr($binStr, $tmpLen, 1);
|
||
if ($DEBUG) echo "<br>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 "<br>====================";
|
||
if ($DEBUG) echo "<br>hexStr=$hexStr";
|
||
if ($DEBUG) echo "<br>offset=$offset";
|
||
$tmpArr = explode('-', $offset);
|
||
$tmpBgnArr = explode('.', $tmpArr[0]);
|
||
$bgnByteOffset = $tmpBgnArr[0];
|
||
$bgnBitOffset = $tmpBgnArr[1];
|
||
if ($DEBUG) echo "<br>bgnByteOffset=$bgnByteOffset";
|
||
if ($DEBUG) echo "<br>bgnBitOffset=$bgnBitOffset";
|
||
if (sizeof($tmpArr) > 1) {
|
||
$tmpEndArr = explode('.', $tmpArr[1]);
|
||
$endByteOffset = $tmpEndArr[0];
|
||
$endBitOffset = $tmpEndArr[1];
|
||
if ($DEBUG) echo "<br>endByteOffset=$endByteOffset";
|
||
if ($DEBUG) echo "<br>endBitOffset=$endBitOffset";
|
||
if ($bgnBitOffset == 0 && $endBitOffset == 7) {
|
||
//这时,$bitValue是16进值字符串,其他情况下,都是二进制字符串
|
||
$tmpByte_1 = substr($hexStr, 0, $bgnByteOffset * 2);
|
||
if ($DEBUG) echo "<br>tmpByte_1=$tmpByte_1";
|
||
$tmpByte_2 = substr($hexStr, ($endByteOffset + 1) * 2);
|
||
if ($DEBUG) echo "<br>tmpByte_2=$tmpByte_2";
|
||
$tmpHexStr = $tmpByte_1 . $bitValue . $tmpByte_2;
|
||
if ($DEBUG) echo "<br>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 "<br>selByte=$selByte";
|
||
$tmpDec = HexDec($selByte);
|
||
$binStr = DecBin($tmpDec);
|
||
for ($i = strlen($binStr); $i < strlen($selByte) * 4; $i++) {
|
||
$binStr = '0' . $binStr;
|
||
}
|
||
if ($DEBUG) echo "<br>binStr=$binStr";
|
||
|
||
$tmpBit_1 = substr($binStr, 0, 8 - $endBitOffset - 1);
|
||
if ($DEBUG) echo "<br>tmpBit_1=$tmpBit_1";
|
||
if ($bgnBitOffset == 0) {
|
||
$tmpBit_2 = '';
|
||
} else {
|
||
$tmpBit_2 = substr($binStr, -($bgnBitOffset));
|
||
}
|
||
if ($DEBUG) echo "<br>tmpBit_2=$tmpBit_2";
|
||
$tmpBit = $tmpBit_1 . $bitValue . $tmpBit_2;
|
||
if ($DEBUG) echo "<br>tmpBit=$tmpBit";
|
||
$tmpByte = dechex(BinDec($tmpBit));
|
||
if ($DEBUG) echo "<br>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 "<br>selByte=$selByte";
|
||
$tmpDec = HexDec($selByte);
|
||
$binStr = DecBin($tmpDec);
|
||
$binStr = omc_keep_length($binStr, '0', '8', '1');
|
||
if ($DEBUG) echo "<br>binStr=$binStr";
|
||
$tmpLen = 7 - $bgnBitOffset;
|
||
$tmpBit_1 = substr($binStr, 0, $tmpLen);
|
||
if ($DEBUG) echo "<br>tmpBit_1=$tmpBit_1=substr($binStr,0,$tmpLen)";
|
||
$tmpLen = 8 - $bgnBitOffset;
|
||
$tmpBit_2 = substr($binStr, $tmpLen);
|
||
if ($DEBUG) echo "<br>tmpBit_2=$tmpBit_2=substr($binStr,$tmpLen) ";
|
||
$newBitStr = $tmpBit_1 . $bitValue . $tmpBit_2;
|
||
if ($DEBUG) echo "<br>newBitStr=$newBitStr";
|
||
$tmpDec = BinDec($newBitStr);
|
||
$selByte = DecHex($tmpDec);
|
||
$selByte = omc_keep_length($selByte, '0', '2', '1');
|
||
if ($DEBUG) echo "<br>selByte=$selByte";
|
||
$tmpHexStr_1 = substr($hexStr, 0, $bgnByteOffset * 2);
|
||
$tmpHexStr_2 = substr($hexStr, $bgnByteOffset * 2 + 2);
|
||
if ($DEBUG) echo "<br>tmpHexStr_1=$tmpHexStr_1 / tmpHexStr_2=$tmpHexStr_2 ";
|
||
$tmpHexStr = $tmpHexStr_1 . $selByte . $tmpHexStr_2;
|
||
if ($DEBUG) echo "<br>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 "<br>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 "<a href=\"javascript:openHelp('$helpId');\"><img id=\"helpId\" align=absBottom border=0 src=../../images/help.gif></a>";
|
||
//echo "<div onClick=\"openHelp('$helpId');\" style=\"cursor:hand\"><img align=absBottom border=0 src=../../images/help.gif></div>";
|
||
}
|
||
|
||
|
||
//****************************************************************
|
||
//函数:
|
||
// 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 "<br>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 "<br>ttlSerial=$ttlSerial<br>";
|
||
|
||
$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 "<br>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 "<br>sysTypeNo=$sysTypeNo";
|
||
if ($DEBUG) echo "<br>sysNo=$sysNo";
|
||
$detailStat = $selRow['detailStat'];
|
||
if ($DEBUG) echo "<br>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 "<br>srlArr[$arrNum][$sysNo] = {$srlArr[$arrNum][$sysNo]}<br> ";
|
||
if ($srlArr[$arrNum][$sysNo]['number'] != $ttlSerial) {
|
||
$srlArr[$arrNum][$sysNo]['color'] = "#FF0000";
|
||
$noSrlStt = 1;
|
||
}
|
||
if ($DEBUG) echo "<br>noSrlStt=$noSrlStt";
|
||
|
||
} while ($selRow = mysqli_fetch_array($selRes));
|
||
|
||
|
||
if ($DEBUG) echo "<br>ttlSerial=$ttlSerial";
|
||
if ($noSrlStt)
|
||
$ttlSrlClr = "#FF0000";
|
||
else
|
||
$ttlSrlClr = "#000000";
|
||
if ($DEBUG) echo "<br>ttlSrlClr=$ttlSrlClr<br>";
|
||
|
||
|
||
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<br>";
|
||
$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 "<BR>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<br>";
|
||
$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 "<script LANGUAGE=\"JavaScript\">";
|
||
echo "\n alert('$msg');";
|
||
echo "\n window.history.go(-1);";
|
||
echo "\n </script>";
|
||
exit();
|
||
}
|
||
|
||
//注意:下面的"? >"后面不能有空行,否则cvs数据下载时,会出错。
|
||
?>
|
||
|