📄 db_zhenzhou.cpp
字号:
return 0;
}
void printPublicInfo(UserInterface uiPublic)
{
if(CGlobal::Instance()->m_debugLevel < 5) return;
PString sMsg;
sMsg = "------UserAccount Information------";
sMsg = sMsg + "\n serviceId[18] =" + uiPublic.serviceId;
sMsg = sMsg + "\n userGroup[4] =" + uiPublic.userGroup;
sMsg = sMsg + "\n areaNo[6] =" + uiPublic.areaNo;
sMsg = sMsg + "\n teleNumber[13] =" + uiPublic.teleNumber;
sMsg = sMsg + "\n oldTeleNum[13] =" + uiPublic.oldTeleNum;
char strTmp[8];
sprintf(strTmp, "%d", uiPublic.operateType);
sMsg = sMsg + "\n operateType =" + strTmp;
sMsg = sMsg + "\n genTime[20] =" + uiPublic.genTime;
sMsg = sMsg + "\n sendTime[20] =" + uiPublic.sendTime;
sMsg = sMsg + "\n backTime[20] =" + uiPublic.backTime;
sMsg = sMsg + "\n endTime[20] =" + uiPublic.endTime;
sMsg = sMsg + "\n userType[2] =" + uiPublic.userType;
sMsg = sMsg + "\n password[17] =" + uiPublic.password;
sprintf(strTmp, "%d", uiPublic.flag);
sMsg = sMsg + "\n flag =" + strTmp;
sprintf(strTmp, "%d", uiPublic.remainTime);
sMsg = sMsg + "\n remainTime =" + strTmp;
sMsg = sMsg + "\n aCLICP[33] =" + uiPublic.aCLICP;
sMsg = sMsg + "\n aCLContent[33] =" + uiPublic.aCLContent;
sprintf(strTmp, "%d", uiPublic.sendRecv);
sMsg = sMsg + "\n sendRecv =" + PString(strTmp);
sMsg = sMsg + "\n addString[256] =" + uiPublic.addString;
RTRACE(5, "\n" << sMsg);
return;
}
int UpdateAAA(COdbcFunc* odbc, UserInterface & uiPublic, UserInterface_ZZ & ui)
{
void printPublicInfo(UserInterface);
int SaveDB(UserInterface *);
printPublicInfo(uiPublic);
int iFlag = SaveDB(&uiPublic);
/*char now[21];
NowDateTime(now);*/
char sqlcmdTmp[SQL_SIZE], sqlcmd[SQL_SIZE];
strcpy(sqlcmdTmp, "update JK_Sheet_Control set CheckFlag = '%s',EchoInfo = '%s', ");
strcat(sqlcmdTmp, "ChangeTime = sysdate, FinishTime = sysdate ");
strcat(sqlcmdTmp, "where CheckFlag = 'B' and SerialNo = '%s' and PortType = '%s' and FlowNo = '%s' ");
//iFlag:
// 0: success
// -1: Operate database failed
// -2: OperateType not exists
// -3: UserType not exists
// -4: Change Telephone number from one to the other. But old telephone number not exists
// -5: Change Telephone number from one to the other. But new telephone number has been used.
// -6: User Group not exist
// -7: User exists and status is 1(Normal).
// -8: End time is illegal (the formation of endtime is 'YYYY-MM-DD HH:MI:SS')
// -9: Can not rollback operation. Bacause time expire.
// -10: User not exist when deleting the user.
// -11: User's status is wrong when deleting the user.
// -12: The error status for rollback changing user number.
// -100 Maybe the AAA database disconnect
switch(iFlag)
{
case 0: // operate database successfully
{
RTRACE(3, "Operate AAA database successfully!");
sprintf(sqlcmd, sqlcmdTmp, "C", "Success", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "C");
strcpy(ui.Bz, "Success");
break;
}
case -1: // operate database failed. Error in database
{
RTRACE(3, "operate database failed!");
sprintf(sqlcmd, sqlcmdTmp, "E", "Operate database failed", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "E");
strcpy(ui.Bz, "Operate database failed!");
break;
}
case -2: // operate type not exists
{
RTRACE(3, "operate type not exists!");
sprintf(sqlcmd, sqlcmdTmp, "D", "operate type not exists!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "operate type not exists!");
break;
}
case -3: // UserType not exists
{
RTRACE(3, "UserType not exists!");
sprintf(sqlcmd, sqlcmdTmp, "D", "UserType not exists!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "UserType not exists!");
break;
}
case -4: // Change Telephone number, But old telephone number not exists
{
RTRACE(3, "Change Telephone number, But old telephone number not exists!");
sprintf(sqlcmd, sqlcmdTmp, "D", "Change teleNo,but old telNo not exists! ", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "Change teleNo,but old telNo not exists!");
break;
}
case -5: // Change Telephone number, But new telephone number already exists
{
RTRACE(3, "Change Telephone number, But new telephone number already exists!");
sprintf(sqlcmd, sqlcmdTmp, "D", "Change teleNo,but new telNo already exists! ", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "Change teleNo,but new telNo already exists!");
break;
}
case -6: // Usergroup not exists
{
RTRACE(3, "Usergroup not exists!");
sprintf(sqlcmd, sqlcmdTmp, "D", "Usergroup not exists!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "Usergroup not exists!");
break;
}
case -7: // NewOpen accounts,but account is already exists
{
RTRACE(3, "NewOpen accounts,but account is already exists!");
sprintf(sqlcmd, sqlcmdTmp, "D", "NewOpen accounts,but account is already exists!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "NewOpen accounts,but account is already exists!");
break;
}
case -8: // Endtime is illegal
{
RTRACE(3, "Endtime is illegal!");
sprintf(sqlcmd, sqlcmdTmp, "D", "Endtime is illegal!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "Endtime is illegal!");
break;
}
case -10: //User not exist when deleting the user
{
RTRACE(3, "User not exist when deleting the user!");
sprintf(sqlcmd, sqlcmdTmp, "D", "User not exist when deleting the user!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "User not exist when deleting the user!");
break;
}
case -11: //User's status is wrong when deleting the user
{
RTRACE(3, "User status is wrong when deleting the user!");
sprintf(sqlcmd, sqlcmdTmp, "D", "User status is wrong when deleting the user!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "D");
strcpy(ui.Bz, "User status is wrong when deleting the user!");
break;
}
case -100: //Maybe the AAA database disconnect
{
RTRACE(3, "Maybe the AAA database disconnect!");
sprintf(sqlcmd, sqlcmdTmp, "E", "Maybe the AAA database disconnect!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "E");
strcpy(ui.Bz, "Maybe the AAA database disconnect!");
break;
}
default:
{
RTRACE(3, "Unkonwn error!");
sprintf(sqlcmd, sqlcmdTmp, "E", "Unkonwn error!", ui.SerialNo, ui.PortType, ui.FlowNo);
strcpy(ui.CheckFlag, "E");
strcpy(ui.Bz, "Unkonwn error!");
break;
}
}
if (UpdateJK_Sheet_Control(odbc, sqlcmd, ui, 3) != 0)
{
if (iFlag == 0 )
RTRACE(1, "******Warning: AAA process succeed, but update JK_Sheet_Control or Insert JK_Sheet_Log failed!******"
<< "SerialNo=" << ui.SerialNo << " PortType=" << ui.PortType << " PhoneNo=" << ui.PhoneNo);
else
RTRACE(1, "******Warning: Update JK_Sheet_Control or Insert JK_Sheet_Log failed!******"
<< "SerialNo=" << ui.SerialNo << " PortType=" << ui.PortType << " PhoneNo=" << ui.PhoneNo);
}
return iFlag;
}
int UpdateJK_Sheet_Control(COdbcFunc* odbc, char* sqlcmd, UserInterface_ZZ ui, int iHandleOrder)
{
RTRACE(5, sqlcmd);
odbc->AddResult(iHandleOrder);
odbc->AddResult(iHandleOrder + 1);
int iRet = odbc->ExecSQL(sqlcmd, iHandleOrder);
if (iRet != 0)
{
while(odbc->Next(iHandleOrder) == 0);
odbc->ExecSQL("rollback", iHandleOrder);
odbc->FreeResult(iHandleOrder);
return iRet;
}
while(odbc->Next(iHandleOrder) == 0);
if(iRet == 0)
{
iRet = InsertJK_Sheet_Log(odbc, ui, iHandleOrder+1);
while(odbc->Next(iHandleOrder+1) == 0);
}
if (iRet != 0)
{
odbc->ExecSQL("rollback", iHandleOrder+1);
while(odbc->Next(iHandleOrder+1) == 0);
odbc->FreeResult(iHandleOrder+1);
return iRet;
}
else
{
iRet = odbc->ExecSQL("commit", iHandleOrder+1);
if (iRet)
RTRACE(1, "commit failed! iRet=" << iRet);
while(odbc->Next(iHandleOrder+1) == 0);
}
odbc->CancelResult(iHandleOrder + 1);
odbc->FreeResult(iHandleOrder + 1);
odbc->CancelResult(iHandleOrder);
odbc->FreeResult(iHandleOrder);
return iRet;
}
int InsertJK_Sheet_Log(COdbcFunc* odbc, UserInterface_ZZ ui, int iHandleOrder)
{
char sqlcmd[SQL_SIZE], sqlcmdTmp[SQL_SIZE];
strcpy(sqlcmdTmp, "insert into JK_Sheet_Log(PortType, AreaNo, SerialNo, FlowNo, CheckFlag, ChangeTime, Bz) ");
strcat(sqlcmdTmp, "values('%s', '%s', '%s', '%s', '%s', sysdate, '%s' )");
sprintf(sqlcmd, sqlcmdTmp, ui.PortType, ui.AreaNo, ui.SerialNo, ui.FlowNo, ui.CheckFlag, ui.Bz);
RTRACE(5, sqlcmd);
//odbc->AddResult(iHandleOrder);
int iRet = odbc->ExecSQL(sqlcmd, iHandleOrder);
odbc->AbortQuery(iHandleOrder);
return iRet;
}
//int SaveDB(PStringArray line);
/*
int HandleFtp()
{
RTRACE(2, "Begin ftp loop");
if ( CGlobal::Instance()->m_isShutdown == 1 )
return -1;
PFTPClient ftp;
int j = 0;
// RTRACE(5, "FtpSrv NUMBER:" << CGlobal::Instance()->m_ftpNum);
for(int i=0;i<CGlobal::Instance()->m_oradbNum;i++)
{
try
{
if ( ftp.Connect(PIPSocket::Address(CGlobal::Instance()->m_negGkList[i].m_ip),
CGlobal::Instance()->m_negGkList[i].m_port) == false )
{
RTRACE(2, "Connect fail");
continue;
//return 0;
}
if ( ftp.LogIn(CGlobal::Instance()->m_username[i], CGlobal::Instance()->m_password[i]) == false )
{
RTRACE(2, "Login fail");
continue;
//return 0;
}
PStringArray fileArray = ftp.GetDirectoryNames(PFTP::ShortNames); //, PFTP::NormalPort);
RTRACE(5, "Files: " << fileArray);
// treat those files.
for ( j=0; j<fileArray.GetSize(); j++) {
// begin to get every file, and save it to local disk
// CGlobal::Instance()->m_serviceType = 700;
// CGlobal::Instance()->GetServiceTypeFromFileName(fileArray[j]);
// RTRACE(5, fileArray[j] << " FileType:" << CGlobal::Instance()->m_serviceType);
PTCPSocket * pSock = ftp.GetFile(fileArray[j]); //, PFTP::NormalPort);
if ( pSock == NULL )
{
RTRACE(2, "Read file: " << fileArray[j] << " fail!");
continue;
}
PString str;
int count = 0;
while(pSock->Read(str.GetPointer(count+1000)+count, 1000))
count += pSock->GetLastReadCount();
str.SetSize(count+1);
delete pSock;
RTRACE(5, "Response:" << ftp.ReadResponse());
PFile save;
PString pfileName;
pfileName = CGlobal::Instance()->m_localDir;
pfileName += "\\";
pfileName += fileArray[j];
RTRACE(5, pfileName);
save.Open(pfileName, PFile::WriteOnly);
save.WriteString(str);
save.Close();
RTRACE(4, "Read size:" << count+1);
RTRACE(6, ", context:\n" << str);
if ( SaveDB(str.Lines()) == 0 )
{
RTRACE(5, "Get cdr success");
// delete this file.
if ( ftp.ExecuteCommand(PFTP::DELE, fileArray[j])/100 == 2 )
{
RTRACE(5, "Del success: " << fileArray[j]);
}
else
{
RTRACE(2, "Del fail: " << fileArray[j]);
}
}
}
ftp.Close();
}
catch(...)
{
RTRACE(2, "Connect to Ftp Server " << PIPSocket::Address(CGlobal::Instance()->m_negGkList[i].m_ip) << "error");
}
}
return 0;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -