📄 cispub.cpp
字号:
memset(effdata , 0, sizeof(effdata ) ); memset(efftype , 0, sizeof(efftype ) ); memset(changedata , 0, sizeof(changedata ) ); memset(effflag , 0, sizeof(effflag ) ); //int count=0; int sumCount=0; //int retCount=0; int totalLen=0; char sqlCmd[1024]; memset(sqlCmd, 0, sizeof(sqlCmd)); sprintf(sqlCmd, "select datcode " ",datname" ",datvalue" ",wdatvalue " ",effdata" ",efftype" ",changedata" ",effflag from cis407"); filelog(CIS_SRV_LOG, "sqlCmd=[%d][%s]\n", strlen(sqlCmd), sqlCmd); clsSybCommand.Select(sqlCmd); strcpy(Result, "{Body:ColumnName:[datcode|datname|datvalue|wdatvalue|effdata|efftype|changedata|effflag]:ColumnValue:"); for(int i=0; ; i++) { // printf("\ni=[%d]",i); if(totalLen >= MAX_MBFE_BUFFER-79-HEADLEN) { filelog(CIS_SRV_LOG, "Query data is too big and break"); break; } memset(datcode , 0, sizeof(datcode) ); memset(datname , 0, sizeof(datname) ); memset(datvalue , 0, sizeof(datvalue) ); memset(wdatvalue , 0, sizeof(wdatvalue) ); memset(effdata , 0, sizeof(effdata) ); memset(efftype , 0, sizeof(efftype) ); memset(changedata , 0, sizeof(changedata) ); memset(effflag , 0, sizeof(effflag) ); clsSybCommand.MapColumn( 1, datcode , NTBSTRINGBIND); clsSybCommand.MapColumn( 2, datname , NTBSTRINGBIND); clsSybCommand.MapColumn( 3, datvalue , NTBSTRINGBIND); clsSybCommand.MapColumn( 4, wdatvalue , NTBSTRINGBIND); clsSybCommand.MapColumn( 5, effdata , NTBSTRINGBIND); clsSybCommand.MapColumn( 6, efftype , NTBSTRINGBIND); clsSybCommand.MapColumn( 7, changedata , NTBSTRINGBIND); clsSybCommand.MapColumn( 8, effflag , NTBSTRINGBIND); int retCode=clsSybCommand.GetData(); if(retCode > 0) { strcat(Result, "["); strcat(Result, datcode); strcat(Result, "|"); strcat(Result, datname); strcat(Result, "|"); strcat(Result, datvalue); strcat(Result, "|"); strcat(Result, wdatvalue); strcat(Result, "|"); strcat(Result, effdata ); strcat(Result, "|"); strcat(Result, efftype ); strcat(Result, "|"); strcat(Result, changedata); strcat(Result, "|"); strcat(Result, effflag); strcat(Result, "]"); sumCount++; totalLen=strlen(Result);// printf("Result=[%s]",Result); sumCount++; } else { if (!clsSybCommand.HasNextResultSet()) { filelog(CIS_SRV_LOG, "Get total=%d record\n", sumCount); filelog(CIS_SRV_LOG, "Database operator return[%d][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext, __FILE__, __LINE__); break; } } } filelog(CIS_SRV_LOG, "Get main info set is:%s\n", sResDesc); filelog(CIS_SRV_LOG, "Exit 30502::查询公共参数\n"); strcat(Result, ":}"); return TRUE;}/*********************函数说明 add by hanyun*从cis409表中查询数据*/BOOL BepsPub::Tr30503(char *RecvBuf , char *Result,char *sResDesc){ filelog(CIS_SRV_LOG, "\nEnter Tr30503::查询业务权限\n"); if(NULL == RecvBuf || NULL == Result || NULL == sResDesc) { filelog(CIS_SRV_LOG, "Error:parameter invalid in file=%s at line=%d\n", __FILE__, __LINE__); strcpy(Result, "002"); strcpy(sResDesc, "参数非法"); return FALSE; } // //create table cis409 //( // netcode char(12) not null, --票交所代码 // sendgrant char(255) not null, --发起业务权限列表 // recvgrant char(255) not null, --接收业务权限列表 // //) // // // //) // //) //定义保存数据库查询结果的变量 char netcode [12 +1]; char sendgrant [255+1]; char recvgrant [255+1]; memset(netcode , 0, sizeof(netcode ) ); memset(sendgrant, 0, sizeof(sendgrant ) ); memset(recvgrant, 0, sizeof(recvgrant ) ); //int count=0; int sumCount=0; //int retCount=0; int totalLen=0; char sqlCmd[1024]; memset(sqlCmd, 0, sizeof(sqlCmd)); sprintf(sqlCmd, "select " " netcode" ",sendgrant " ",recvgrant " "from cis409"); filelog(CIS_SRV_LOG, "sqlCmd=[%d][%s]\n", strlen(sqlCmd), sqlCmd); clsSybCommand.Select(sqlCmd); strcpy(Result, "{Body:ColumnName:[netcode|sendgrant|recvgrant]:ColumnValue:"); for(int i=0; ; i++) { // printf("\ni=[%d]",i); if(totalLen >= MAX_MBFE_BUFFER-79-HEADLEN) { filelog(CIS_SRV_LOG, "Query data is too big and break"); break; } memset(netcode , 0, sizeof(netcode ) ); memset(sendgrant , 0, sizeof(sendgrant ) ); memset(recvgrant , 0, sizeof(recvgrant ) ); clsSybCommand.MapColumn( 1, netcode , NTBSTRINGBIND); clsSybCommand.MapColumn( 2, sendgrant , NTBSTRINGBIND); clsSybCommand.MapColumn( 3, recvgrant , NTBSTRINGBIND); int retCode=clsSybCommand.GetData(); if(retCode > 0) { strcat(Result, "["); strcat(Result, netcode ); strcat(Result, "|"); strcat(Result, sendgrant ); strcat(Result, "|"); strcat(Result, recvgrant ); strcat(Result, "]"); sumCount++; totalLen=strlen(Result);// printf("Result=[%s]",Result); sumCount++; } else { if (!clsSybCommand.HasNextResultSet()) { filelog(CIS_SRV_LOG, "Get total=%d record\n", sumCount); filelog(CIS_SRV_LOG, "Database operator return[%d][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext, __FILE__, __LINE__); break; } } } filelog(CIS_SRV_LOG, "Get main info set is:%s\n", sResDesc); filelog(CIS_SRV_LOG, "Exit 30503::查询业务权限\n"); strcat(Result, ":}"); return TRUE;}/****************************************************************************函数说明:从收到的信息中分离出业务要素信息*输入参数:char *trxNo :接收信息中的交易号 char *recvBuf:接收到的行内的请求信息*输出参数:MainInfo *mainInfo:保存行内请求信息中的业务要素* * *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-09-30****************************************************************************/BOOL BepsPub::InitUserStatus(char *UserNo){ filelog(CIS_SRV_LOG, "Enter BepsPub::InitUserStatus");/* if(strlen(m_UserNo)<3 || strlen(m_UserName)<3) { filelog(CIS_SRV_LOG, "This instance isn't login"); return TRUE; }*/ char sqlCmd[8096]; memset(sqlCmd, 0, sizeof(sqlCmd)); //modify by limh 0606 使用用户代码判断 //sprintf(sqlCmd, "update userinfo set userstatus='0' where IpAddress='%s'", sprintf(sqlCmd, "update userinfo set userstatus='00' where userno='%s' and userstatus='01'", UserNo); BeginTrans(); if(0>=clsSybCommand.Update(sqlCmd)) {// printf("InitUser error[%s]!\n",sqlCmd); filelog(CIS_SRV_LOG, "Database operator return[%d][%s][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,sqlCmd, __FILE__, __LINE__); RollbackTrans(); return FALSE; }// printf("InitUser success!\n"); CommitTrans(); filelog(CIS_SRV_LOG, "Exit BepsPub::InitUserStatus"); return TRUE;}/****************************************************************************函数说明:从收到的信息中分离出业务要素信息*输入参数:char *trxNo :接收信息中的交易号 char *recvBuf:接收到的行内的请求信息*输出参数:MainInfo *mainInfo:保存行内请求信息中的业务要素* * *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-09-30****************************************************************************/BOOL BepsPub::PreserRevcBankInfo(char *RecvBuf, char* RecvAcc, char* RecvName, char* strSumMoney, char* strTicketNo, char* strPicName, char* SendAcc, char* SendName){ filelog(CIS_SRV_LOG, "Enter PreserRevcBankInfo"); if(NULL == RecvBuf || NULL == RecvAcc || NULL == RecvName || NULL ==strSumMoney || NULL == strTicketNo || NULL == strPicName || NULL ==SendAcc || NULL == SendName) { filelog(CIS_SRV_LOG, "Error:parameter invalid in file=%s at line=%d\n", __FILE__, __LINE__); return FALSE; } int len = 0; char *strFind=NULL; char *strFindEnd=NULL; char *recvAccStart=NULL; char *recvNameStart=NULL; char *sumMoneyStart=NULL; char *picNameStart=NULL; char *sendAccStart=NULL; char *sendNameStart=NULL; char *ticketNoStart=NULL; //filelog(CIS_SRV_LOG, "RecvBuf=[%d][%s]", strlen(RecvBuf), RecvBuf); //分析收款行账号 if(NULL!=(strFind=strstr(RecvBuf, ":59C:"))) { sendAccStart=strFind+5; } else { filelog(CIS_SRV_LOG, "RevcBuf is not :59C>>sendBankAcc"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-sendAccStart; memcpy(SendAcc, sendAccStart, len); } else { filelog(CIS_SRV_LOG, "Tag :59C: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析收款人名称 if(NULL!=(strFind=strstr(RecvBuf, ":59A:"))) { sendNameStart=strFind+5; } else { filelog(CIS_SRV_LOG, "RevcBuf is not :59A>>sendBankName"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-sendNameStart; memcpy(SendName, sendNameStart, len); } else { filelog(CIS_SRV_LOG, "Tag :59A: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析付款行账号 if(NULL!=(strFind=strstr(RecvBuf, ":D23:"))) { recvAccStart=strFind+5; } else { filelog(CIS_SRV_LOG, "RevcBuf is not :D23>>recvAcc"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-recvAccStart; memcpy(RecvAcc, recvAccStart, len); } else { filelog(CIS_SRV_LOG, "Tag :D23: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析付款行名称 if(NULL!=(strFind=strstr(RecvBuf, ":D22:"))) { recvNameStart=strFind+5; } else { filelog(CIS_SRV_LOG, "RevcBuf is not :D22>>recvName"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-recvNameStart; memcpy(RecvName, recvNameStart, len); } else { filelog(CIS_SRV_LOG, "Tag :D22: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析票据金额 if(NULL!=(strFind=strstr(RecvBuf, ":32A:"))) { sumMoneyStart = strFind+5; } else { filelog(CIS_SRV_LOG, "RecvBuf is not :32A>>sumMoney"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-sumMoneyStart; memcpy(strSumMoney, sumMoneyStart+3, len-3);//去掉RMB字符 } else { filelog(CIS_SRV_LOG, "Tag :32A: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析支票号码 if(NULL!=(strFind=strstr(RecvBuf, ":D01:"))) { ticketNoStart = strFind+5; } else { filelog(CIS_SRV_LOG, "RecvBuf is not :D01>>ticketNo"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-ticketNoStart; memcpy(strTicketNo, ticketNoStart, len); } else { filelog(CIS_SRV_LOG, "Tag :D01: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析支票正面文件名 if(NULL!=(strFind=strstr(RecvBuf, ":72E:"))) { picNameStart = strFind+5; } else { filelog(CIS_SRV_LOG, "RecvBuf is not :72E>>picFrontName"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-picNameStart; memcpy(strPicName, picNameStart, len); } else { filelog(CIS_SRV_LOG, "Tag :72E: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; filelog(CIS_SRV_LOG, "recvBankAcc=[%d][%s] recvBankName=[%d][%s]", strlen(RecvAcc), RecvAcc, strlen(RecvName), RecvName); filelog(CIS_SRV_LOG, "sumMoeny=[%d][%s] ticketNo=[%d][%s]", strlen(strSumMoney), strSumMoney, strlen(strTicketNo), strTicketNo); filelog(CIS_SRV_LOG, "sendBankAcc=[%d][%s] sendBankName=[%d][%s]", strlen(SendAcc), SendAcc, strlen(SendName), SendName); filelog(CIS_SRV_LOG, "fronPicName=[%d][%s]", strlen(strPicName), strPicName); filelog(CIS_SRV_LOG, "Exit PreserRevcBankInfo"); return TRUE;}/****************************************************************************函数说明:从收到的信息中分离出业务要素信息*输入参数:char *trxNo :接收信息中的交易号 char *recvBuf:接收到的行内的请求信息*输出参数:MainInfo *mainInfo:保存行内请求信息中的业务要素* * *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-09-30************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -