📄 fileintf_js.cpp
字号:
RTRACE(6, "File open");
if(fnew.bad() || !fnew.good())
{
RTRACE(1, "open " << newFile << " error\n");
return -1;
}
if(fold.bad() || !fold.good())
{
RTRACE(1, "open " << oldFile << " error\n");
return -1;
}
int i=0;
while(!fold.eof())
{
fold.getline(tmp, BUFSIZE);
str[i] = PString(tmp);
fnew << str[i] << "\n";
i ++;
}
fold.close();
fnew.close();
RTRACE(6, "context:\n" << str);
if ( SaveDB(str) == 0 )
{
RTRACE(5, "Get cdr success");
// delete this file.
if(PFile::Remove(oldFile))
{
RTRACE(2, "Del success: " << oldFile);
}
else
{
RTRACE(2, "Del fail: " << oldFile);
}
}
*/
return 0;
}
int CFileIntf_JS::GetValueFromLine(PString line)
{
RTRACE(6, "Enter GetValueFromLine");
RTRACE(4, line);
int j = 0, fieldOrder = 0;
// char buffer[FIELD_LEN+1];
PString value = "";
int len = line.GetSize();
memset((void *)&sheet_ChD, 0, sizeof(sheet_ChD));
//读出消息数据
strcpy(sheet_ChD.MsgFlag,line.Mid(1, 1));
if(atoi(sheet_ChD.MsgFlag)!=1)
{
RTRACE(5,"MessageFlag was not 1,Error! ");
return -1;
}
strcpy(sheet_ChD.flowNo, line.Mid(6, 17));
strcpy(sheet_ChD.OperateType, line.Mid(23, 3));
strcpy(sheet_ChD.oldTel, line.Mid(26, 12));
strcpy(sheet_ChD.newTel, line.Mid(38, 12));
strcpy(sheet_ChD.BusinessNo, line.Mid(50, 2));
strcpy(sheet_ChD.nodeCity, line.Mid(52, 2));
STRNCPY(sheet_ChD.protocolType,"1",2,1);
sheet_ChD.GetDate(OUT sheet_ChD.Date);
sheet_ChD.GetTime(OUT sheet_ChD.Time);
return 0;
}
//////////////////////////////////////////////////////////////////////////
///btrmg added for jiangsu socket
//////////////////////////////////////////////////////////////////////////
int GetValueFromMsg(PString line,int socketno)
{
int sendlength,value;
CFileIntf_JS fileIntf;
PString sSuccess="", sFailure="";
sendlength=strlen(line);
fileIntf.GetValueFromLine(line);
if (fileIntf_ChD.SheetToUserInterface() != 0) //该工单数据不合法
{
sFailure = sFailure + line;
sFailure = sFailure + "\tretCode= line inavlid\n";
RTRACE(2, "Get sheet item failed!");
RTRACE(5, line);
return -1;
}
// operate database
int iRes = SaveDB(&fileIntf_ChD.userInterface);
if ( iRes == 0 )
{
// write the right feeback to temp file
sSuccess = sSuccess + line;
sSuccess = sSuccess + "\n";
RTRACE(2, "Get Sheet item successfully!");
RTRACE(2,sSuccess);
RTRACE(5, line);
return 0;
}
else
{
// write the wrong feeback to temp file
char temp[4], msg[80];
sprintf(temp, "%d", iRes);
value=strlen(temp);
Code2Msg(iRes, msg);
sFailure = sFailure + line;
sFailure = sFailure + "\tretCode=" + (PString)temp + (PString)msg + "\n";
RTRACE(2, "Get sheet item failed!");
RTRACE(2,sFailure);
RTRACE(5, line);
return iRes;
}
}
/*
void changetimeformat(char * datetime, char * desDatetime, int size)
{
char * p;
p = datetime;
desDatetime[0] = 0;
memcpy(desDatetime, p, 4);
memcpy(desDatetime+4, "-", 1);
p = p + 4;
memcpy(desDatetime+5, p, 2);
memcpy(desDatetime+7, "-", 1);
p = p + 2;
memcpy(desDatetime+8, p, 2);
if ( size > 9 )
{
memcpy(desDatetime+10, " ", 1);
p = p + 2;
memcpy(desDatetime+11, p, 2);
memcpy(desDatetime+13, ":", 1);
p = p + 2;
memcpy(desDatetime+14, p, 2);
memcpy(desDatetime+16, ":", 1);
p = p + 2;
memcpy(desDatetime+17, p, 2);
}
else
{
memcpy(desDatetime+10, " 00:00:00", 9);
}
desDatetime[19] = 0;
return;
}*/
/*
int GetValueFromMsg(PString line)
{
CSheet_JS sheet;
RTRACE(6, "Enter GetValueFromLine");
RTRACE(4, line);
int j = 0, fieldOrder = 0;
char buffer[FIELD_LEN+1];
PString value = "";
int len = line.GetSize();
memset((void *)&sheet, 0, sizeof(sheet));
for (int i = 0 ; i < len; i++)
{
if (line.Mid(i,1)[0] == '|')
{
switch (fieldOrder)
{
case 0:
strcpy(sheet.businessId, line.Mid(0, i));
break;
case 1:
strcpy(sheet.serviceId, line.Mid(j+1, i-j-1));
break;
case 2:
strcpy(sheet.customType, line.Mid(j+1, i-j-1));
break;
case 3:
strcpy(sheet.areaNo, line.Mid(j+1, i-j-1));
break;
case 4:
strcpy(sheet.teleNumber, line.Mid(j+1, i-j-1));
break;
case 5:
strcpy(sheet.oldTeleNum, line.Mid(j+1, i-j-1));
break;
case 6:
strcpy(sheet.operateType, line.Mid(j+1, i-j-1));
break;
case 7:
strcpy(sheet.productType, line.Mid(j+1, i-j-1));
break;
case 8:
strcpy(sheet.oldProductType, line.Mid(j+1, i-j-1));
break;
case 9:
strcpy(sheet.genTime, line.Mid(j+1, i-j-1));
break;
case 10:
strcpy(sheet.endTime, line.Mid(j+1, i-j-1));
break;
case 11:
strcpy(sheet.flag, line.Mid(j+1, i-j-1));
break;
case 12:
strcpy(sheet.levels, line.Mid(j+1, i-j-1));
//strcpy(sheet.addStrings, line.Mid(i+1, len-i-2)); //hide by zjl 2003-09-03
break;
case 13:
strcpy(sheet.groupList, line.Mid(j+1, i-j-1));
break;
case 14:
strcpy(sheet.protocolType, line.Mid(j+1, i-j-1));
break;
// case 15:
// strcpy(sheet.)
};
j = i;
fieldOrder ++;
}
};
changetimeformat(sheet.genTime, buffer, strlen(sheet.genTime));
strcpy(sheet.genTime, buffer);
sheet.PrintItem();
return 0;
}
*/
// get the back file name
// if the file name is like 'xxxxx.xxx'
// the the back file name is 'xxxxxchr.xxx'
void CFileIntf_JS::SetBackFileName(PString * filename, PString chr)
{
int site = filename->FindLast('.');
filename->Splice(chr, site, 0);
}
void CFileIntf_JS::AddDateDelimiter(char * datetime, char * desDatetime, int size)
{
char * p;
p = datetime;
desDatetime[0] = 0;
memcpy(desDatetime, p, 4);
memcpy(desDatetime+4, "-", 1);
p = p + 4;
memcpy(desDatetime+5, p, 2);
memcpy(desDatetime+7, "-", 1);
p = p + 2;
memcpy(desDatetime+8, p, 2);
if ( size > 9 )
{
memcpy(desDatetime+10, " ", 1);
p = p + 2;
memcpy(desDatetime+11, p, 2);
memcpy(desDatetime+13, ":", 1);
p = p + 2;
memcpy(desDatetime+14, p, 2);
memcpy(desDatetime+16, ":", 1);
p = p + 2;
memcpy(desDatetime+17, p, 2);
}
else
{
memcpy(desDatetime+10, " 00:00:00", 9);
}
desDatetime[19] = 0;
return;
}
int CFileIntf_JS::JudgeTimeType(char * datetime, int size)
{
CGlobal::Instance()->Ltrim(datetime, strlen(datetime));
if(strcmp(datetime, "") == 0)
return 0;
char buffer[5];
int j = 0;
int site = 0;
int year, month, day, hour, minute, second;
// cut datetime
if(strlen(datetime) < 18)
return -1;
datetime[19] = '\0';
// get datetime
strncpy(buffer, datetime, 4);
buffer[4] = 0;
year = atoi(buffer);
strncpy(buffer, datetime+5, 2);
buffer[2] = 0;
month = atoi(buffer);
strncpy(buffer, datetime+8, 2);
buffer[2] = 0;
day = atoi(buffer);
strncpy(buffer, datetime + 11, 2);
buffer[2] = 0;
hour = atoi(buffer);
strncpy(buffer, datetime + 14, 2);
buffer[2] = 0;
minute = atoi(buffer);
strncpy(buffer, datetime + 17, 2);
buffer[2] = 0;
second = atoi(buffer);
if(strlen(datetime) < 19)
return -1;
if(datetime[4] != '-' || datetime[7] != '-' ||
datetime[10] != ' ' || datetime[13] != ':' ||
datetime[16] != ':')
{
RTRACE(5, "Find illeage letter character");
return -1;
}
for(int i=0;i<19;i++)
{
if(i == 4 || i == 7 || i == 10 ||
i == 13 || i == 16)
continue;
else
{
if(datetime[i] > '9' || datetime[i] < '0')
{
RTRACE(5, "Find illeage number character");
return -1;
}
}
}
if(hour >= 60 || hour < 0)
{
RTRACE(5, "Illeage hour formation");
return -1;
}
if(minute >= 60 || minute < 0)
{
RTRACE(5, "Illeage minute formation");
return -1;
}
if(second >= 60 || second < 0)
{
RTRACE(5, "Illeage second formation");
return -1;
}
if(year < 1970 || year > 2100)
{
RTRACE(5, "Illeage year formation");
return -1;
}
if(month > 12 || month < 1)
{
RTRACE(5, "Illeage month formation");
return -1;
}
// big month has 31 days per month
if((month == 1 ||
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12) && (day > 31 || day < 1))
{
RTRACE(5, "Big month has 30 days per month");
return -1;
}
// little month has 31 days per month
if((month == 4 ||
month == 6 ||
month == 9 ||
month == 11) && (day > 30 || day < 1))
{
RTRACE(5, "Little month has 30 days per month");
return -1;
}
if(month == 2)
{
// judgement for leap year
if((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0))
{
if(day > 29 || day < 1)
{
RTRACE(5, "Leap year has 29 days in February ");
return -1;
}
}
else
{
if(day > 28 || day < 1)
{
RTRACE(5, "Normal year has 28 days in February ");
return -1;
}
}
}
return 0;
}
int CFileIntf_JS::SheetToUserInterface(void)
{
/*if (JudgeTimeType(sheet.genTime, strlen(sheet.genTime)) != 0)
return -1;*/
STRNCPY(userInterface.areaNo, sheet.areaNo, sizeof(userInterface.areaNo)-1, sizeof(sheet.areaNo)-1);
STRNCPY(userInterface.teleNumber, sheet.teleNumber, sizeof(userInterface.teleNumber)-1, sizeof(sheet.teleNumber)-1);
STRNCPY(userInterface.oldTeleNum, sheet.oldTeleNum, sizeof(userInterface.oldTeleNum)-1, sizeof(sheet.oldTeleNum)-1);
STRNCPY(userInterface.genTime, sheet.genTime, sizeof(userInterface.genTime)-1, sizeof(sheet.genTime)-1);
STRNCPY(userInterface.addString, sheet.businessId, sizeof(userInterface.addString)-1, sizeof(sheet.businessId)-1);
userInterface.serviceId[0] = 0;
userInterface.aCLContent[0] = 0;
userInterface.aCLICP[0] = 0;
userInterface.sendRecv = 0;
userInterface.flag = 0;
strcpy(userInterface.endTime, "");
userInterface.remainTime = 0;
/*strcpy(userInterface.userGroup, CGlobal::m_instance->m_AccountsType);*/
strcpy(userInterface.userType, CGlobal::m_instance->m_UserType);
if (!strcmp(sheet.productType, "1") || !strcmp(sheet.productType, "0") || !strcmp(sheet.productType, "00") \
|| (sheet.productType[0] == 0) || !strcmp(sheet.productType, " "))
strcpy(userInterface.userGroup, CGlobal::m_instance->m_AccountsType);
else
STRNCPY(userInterface.userGroup, sheet.productType, sizeof(userInterface.userGroup)-1, sizeof(sheet.productType)-1);
strcpy(userInterface.password, "66666");
STRNCPY(userInterface.groupList, sheet.groupList, sizeof(userInterface.groupList)-1, sizeof(sheet.groupList)-1);
STRNCPY(userInterface.protocolType, sheet.protocolType, sizeof(userInterface.protocolType)-1, sizeof(sheet.protocolType)-1);
userInterface.userSource = atoi(sheet.customType);
if (sheet.teleNumber[0] == 0)
{
RTRACE(2, "teleNumber can not be null");
return -1;
}
CGlobal::m_instance->Rtrim(userInterface.areaNo, strlen(userInterface.areaNo));
CGlobal::m_instance->Rtrim(userInterface.teleNumber, strlen(userInterface.teleNumber));
CGlobal::m_instance->Rtrim(userInterface.oldTeleNum, strlen(userInterface.oldTeleNum));
userInterface.operateType = atoi(sheet.operateType);
switch (userInterface.operateType)
{
case '0': //开户
break;
case '1': //消户
break;
case '2': //更改
if (sheet.oldTeleNum[0] == 0)
{
RTRACE(2, "Modify account, but oldTeleNum is null");
return -1;
}
break;
//case '4': //帐号绑定
case '5': //帐号绑定 modi by zjl for new 97 JS
if (sheet.oldTeleNum[0] == 0)
{
RTRACE(2, "Bind account, but bill account is null");
return -1;
}
break;
//case '5': //帐号绑定解除
case '6': //帐号绑定解除 modi by zjl for new 97 JS
if (sheet.oldTeleNum[0] == 0)
{
RTRACE(2, "UNBind account, but bill account is null");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -