cisproc.cpp
来自「液晶电视完整代码可实现人机界面」· C++ 代码 · 共 2,145 行 · 第 1/5 页
CPP
2,145 行
strCis->billenddate, strCis->billsummoney, strCis->subbillrate, atoi(strCis->totaltrade), strCis->totalbillrate, atoi(strCis->billlistnum), strCis->billlist, pRecvData->msgcontent ); sCis.BeginTrans(); //保存入库 ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg ); if( ret <= 0 ) { printf("保存报文失败!\n"); filelog(CISPROLOG, "保存CIS201报文失败!\n"); filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd ); sCis.RollbackTrans(); return FALSE; } sCis.CommitTrans();//[改]根据配置进行发送行内处理 ret = SendtoMb(); return TRUE;}//解析CIS301查询报文int Parse301( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){ int ret; char Table[20]; char sSqlCmd[1024*10]; CIS301 *strCis = NULL; CIS301 TmpCis; strCis = &TmpCis; memset( Table, 0, sizeof(Table) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memset( &TmpCis , 0 , sizeof( TmpCis)); pTagMML->mmlInfo = pRecvData->msgcontent; pTagMML->mmlInfoLen = strlen( pRecvData->msgcontent ); if(FALSE == pTagMML->parserMmlcmd()) { filelog( CISPROLOG, "Parser file content failed\n"); return FALSE; } //得到委托日期 if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CJ9:", strCis->querydate)) { strcpy( RetMsg, "Can't find TAG:[:CJ9:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":056:", strCis->querybookno)) { strcpy( RetMsg, "Can't find TAG:[:056:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01C:", strCis->querybankno)) { strcpy( RetMsg, "Can't find TAG:[:01C:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01D:", strCis->acceptbankno)) { strcpy( RetMsg, "Can't find TAG:[:01D:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":02D:", strCis->srcmessagetype)) { strcpy( RetMsg, "Can't find TAG:[:02D:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":051:", strCis->srcpredate)) { strcpy( RetMsg, "Can't find TAG:[:051:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":005:", strCis->srcbusinessno)) { strcpy( RetMsg, "Can't find TAG:[:005:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CC1:", strCis->srcrecvbankno)) { strcpy( RetMsg, "Can't find TAG:[:CC1:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CND:", strCis->srcmoneysum)) { strcpy( RetMsg, "Can't find TAG:[:CND:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D33:", strCis->srcbilltype)) { strcpy( RetMsg, "Can't find TAG:[:D33:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D08:", strCis->srcbillno)) { strcpy( RetMsg, "Can't find TAG:[:D08:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":053:", strCis->querycontent)) { strcpy( RetMsg, "Can't find TAG:[:053:]!\n" ); return FALSE; } char org[12+1]; char parvalue[1+1]; memset( parvalue, 0, sizeof(parvalue)); memset( org, 0, sizeof(org)); if( !sCis.GetCisSysCtlPar("026", parvalue, RetMsg) ) { strcpy(RetMsg, "获取系统参数失败!!!\n"); return FALSE; } if( strcmp(parvalue, "0") == 0 ) strcpy( org, strCis->acceptbankno ); else sprintf(org, "%s", getenv("BANKCODE")); strcpy( Table, "cis301302" ); printf("strCis->srcbusinessno=[%s]",strCis->srcbusinessno); sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", Table, org, USERNO, LFLAG, CISDATASTATE_SUC, SPACE, strCis->querydate, strCis->querybookno, strCis->querybankno, strCis->srcmessagetype, strCis->srcpredate, atoi(strCis->srcbusinessno), strCis->srcrecvbankno, strCis->srcmoneysum, strCis->srcbilltype, strCis->srcbillno, strCis->querycontent, "",//strCis->acceptdate, "",//strCis->acceptbookno, strCis->acceptbankno, "",//strCis->acceptcontent, pRecvData->msgcontent ); sCis.BeginTrans(); //保存入库 ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg ); if( ret <= 0 ) { printf("保存报文失败!\n"); filelog(CISPROLOG, "保存301查询报文失败!\n" ); filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd ); sCis.RollbackTrans(); return FALSE; } sCis.CommitTrans();//[改]根据配置进行发送行内处理 ret = SendtoMb(); return TRUE;}//解析CIS302查复报文int Parse302( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){ int ret; int nFlag; char Table[20]; char sSqlCmd[1024*10]; CIS302 *strCis = NULL; CIS302 TmpCis; strCis = &TmpCis; memset( Table, 0, sizeof(Table) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memset( &TmpCis, 0, sizeof(TmpCis) ); pTagMML->mmlInfo = pRecvData->msgcontent; pTagMML->mmlInfoLen = strlen( pRecvData->msgcontent ); if(FALSE == pTagMML->parserMmlcmd()) { filelog( CISPROLOG, "Parser file content failed\n"); return FALSE; } //得到委托日期 if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CJ1:", strCis->acceptdate)) { strcpy( RetMsg, "Can't find TAG:[:CJ9:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":043:", strCis->acceptbookno)) { strcpy( RetMsg, "Can't find TAG:[:056:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01D:", strCis->acceptbankno)) { strcpy( RetMsg, "Can't find TAG:[:01C:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CJA:", strCis->orgquerydate)) { strcpy( RetMsg, "Can't find TAG:[:01D:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CP1:", strCis->orgquerybookno)) { strcpy( RetMsg, "Can't find TAG:[:02D:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01C:", strCis->orgquerybankno)) { strcpy( RetMsg, "Can't find TAG:[:051:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":054:", strCis->acceptcontent)) { strcpy( RetMsg, "Can't find TAG:[:005:]!\n" ); return FALSE; } strcpy( Table, "cis301302" ); sprintf( sSqlCmd, "SELECT count(*) FROM %s WHERE querydate='%s' and querybookno='%04s' and querybankno='%s' and msgtype='0'", Table, strCis->orgquerydate, strCis->orgquerybookno, strCis->orgquerybankno); printf("sSqlCmd=[%s]",sSqlCmd); sCis.BeginTrans(); ret = sCis.FindCisData( Table, sSqlCmd, &nFlag, RetMsg ); if( ret != 1 || nFlag != 1 ) { printf("匹配查询报文失败!\n"); filelog(CISPROLOG, "查复报文匹配原查询报文失败!\n" ); filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd ); sCis.RollbackTrans(); return FALSE; } memset(sSqlCmd, 0, sizeof(sSqlCmd) ); sprintf( sSqlCmd, "UPDATE %s SET status='02', acceptdate='%s', acceptbookno='%s', acceptbankno='%s', acceptcontent='%s',message='%s' WHERE querydate='%s' and querybookno='%04s' and querybankno='%s' and msgtype='0'", Table, strCis->acceptdate, strCis->acceptbookno, strCis->acceptbankno, strCis->acceptcontent, pRecvData->msgcontent, strCis->orgquerydate, strCis->orgquerybookno, strCis->orgquerybankno); //保存入库 ret = sCis.UpCisData ( Table, sSqlCmd, RetMsg ); if( ret <= 0 ) { printf("保存报文失败!\n"); filelog(CISPROLOG, "保存查复报文失败!\n" ); filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd ); sCis.RollbackTrans(); return FALSE; } //视情况进行发送行内操作 sCis.CommitTrans();//[改]根据配置进行发送行内处理 ret = SendtoMb(); return TRUE;}//解析CIS303自由格式报文int Parse303( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){ int ret; char Table[20]; char sSqlCmd[1024*10]; CIS303 *strCis; CIS303 TmpCis; strCis = &TmpCis; memset( Table, 0, sizeof(Table) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memset( &TmpCis, 0, sizeof(TmpCis) ); pTagMML->mmlInfo = pRecvData->msgcontent; pTagMML->mmlInfoLen = strlen( pRecvData->msgcontent ); if(FALSE == pTagMML->parserMmlcmd()) { filelog( CISPROLOG, "Parser file content failed\n"); return FALSE; } //得到委托日期 if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D06:", strCis->sendcentercode)) { strcpy( RetMsg, "Can't find TAG:[:D06:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D02:", strCis->sendbillplaceno)) { strcpy( RetMsg, "Can't find TAG:[:D02:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D04:", strCis->sendbillorgno)) { strcpy( RetMsg, "Can't find TAG:[:D04:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":30A:", strCis->precativedate)) { strcpy( RetMsg, "Can't find TAG:[:30A:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":0BA:", strCis->messageno)) { strcpy( RetMsg, "Can't find TAG:[:0BA:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D07:", strCis->recvcentercode)) { strcpy( RetMsg, "Can't find TAG:[:D07:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D03:", strCis->recvbillplaceno)) { strcpy( RetMsg, "Can't find TAG:[:D03:]!\n" ); } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D05:", strCis->recvbillorgno)) { strcpy( RetMsg, "Can't find TAG:[:D05:]!\n" ); } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":BS7:", strCis->dispatchflag)) { strcpy( RetMsg, "Can't find TAG:[:BS7:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":055:", strCis->content)) { strcpy( RetMsg, "Can't find TAG:[:055:]!\n" ); return FALSE; } char org[12+1]; char parvalue[1+1]; memset( parvalue, 0, sizeof(parvalue)); memset( org, 0, sizeof(org)); if( !sCis.GetCisSysCtlPar("026", parvalue, RetMsg) ) { strcpy(RetMsg, "获取系统参数失败!!!\n"); return FALSE; } if( strcmp(parvalue, "0") == 0 ) strcpy( org, strCis->recvbillorgno ); else sprintf(org, "%s", getenv("BANKCODE")); strcpy( Table, "cis303" ); sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", Table, org, USERNO, LFLAG, CISDATASTATE_SUC, SPACE, strCis->sendcentercode, strCis->sendbillplaceno, strCis->sendbillorgno, strCis->precativedate, strCis->messageno, strCis->recvcentercode, strCis->recvbillplaceno, strCis->recvbillorgno, strCis->dispatchflag, strCis->content, pRecvData->msgcontent); sCis.BeginTrans(); //保存入库 ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg ); if( ret <= 0 ) { printf("保存报文失败!\n"); filelog(CISPROLOG, "保存自由格式报文失败!\n" ); filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd ); sCis.RollbackTrans(); return FALSE; } sCis.CommitTrans();//[改]根据配置进行发送行内处理 ret = SendtoMb(); return TRUE;}//解析CIS305业务状态查询应答报文int Parse305( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){ int ret, nFlag; char Table[20]; char sSqlCmd[1024*10]; CIS305 *strCis; CIS305 TmpCis; strCis = &TmpCis; memset( Table, 0, sizeof(Table) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memset( &TmpCis, 0, sizeof(TmpCis) ); pTagMML->mmlInfo = pRecvData->msgcontent; pTagMML->mmlInfoLen = strlen( pRecvData->msgcontent ); if(FALSE == pTagMML->parserMmlcmd()) { filelog( CISPROLOG, "Parser file content failed\n"); return FALSE; } //得到委托日期 if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":30A:", strCis->precativedate)) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?