📄 cispub.cpp
字号:
T_CISDATA, db_workDate, db_recvBank); } } } else { if(memcmp(db_sendBank, "000000000000", 12)!=0 && memcmp(db_recvBank, "000000000000", 12)!=0) { if(memcmp(db_workDate, "20001229", 8)==0) { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and RecverBKCD='%s' " "and PayerBKCD='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_sendBank, db_recvBank); } else { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and PreDate='%s' and " "RecverBKCD='%s' and PayerBKCD='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_workDate, db_sendBank, db_recvBank); } } else if(memcmp(db_sendBank, "000000000000", 12)==0 && memcmp(db_recvBank, "000000000000", 12)==0) { if(memcmp(db_workDate, "20001229", 8)==0) { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and rsflag='0'", T_CISDATA, db_oprNo); } else { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and PreDate='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_workDate); } } else if(memcmp(db_sendBank, "000000000000", 12)!=0 && memcmp(db_recvBank, "000000000000", 12)==0) { if(memcmp(db_workDate, "20001229", 8)==0) { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and RecverBKCD='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_sendBank); } else { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and PreDate='%s' and " "RecverBKCD='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_workDate, db_sendBank); } } else if(memcmp(db_sendBank, "000000000000", 12)==0 && memcmp(db_recvBank, "000000000000", 12)!=0) { if(memcmp(db_workDate, "20001229", 8)==0) { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and PayerBKCD='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_recvBank); } else { sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD," "Amount, AccNo, doflag from %s where OprNo='%s' and PreDate='%s' and " "PayerBKCD='%s' and rsflag='0'", T_CISDATA, db_oprNo, db_workDate, db_recvBank); } } } filelog(CIS_INTER_MB, "sqlCmd=[%d][%s]\n", strlen(sqlCmd), sqlCmd); clsSybCommand.Select(sqlCmd); for(int i=0; ; i++) { if(totalLen >= MAX_MBFE_BUFFER-79-HEADLEN) { filelog(CIS_INTER_MB, "Query data is too big and break"); break; } memset(oprNo, 0, 11); memset(preDate, 0, 9); memset(trxNo, 0, 9); memset(sendBank, 0, 13); memset(recvBank, 0, 13); memset(amount, 0, 16); memset(ticketNo, 0, 13); memset(status, 0, 2); //count=0; //clsSybCommand.MapColumn( 1, &count, INTBIND); clsSybCommand.MapColumn( 1, oprNo, NTBSTRINGBIND); clsSybCommand.MapColumn( 2, preDate, NTBSTRINGBIND); clsSybCommand.MapColumn( 3, trxNo, NTBSTRINGBIND); clsSybCommand.MapColumn( 4, sendBank,NTBSTRINGBIND); clsSybCommand.MapColumn( 5, recvBank,NTBSTRINGBIND); clsSybCommand.MapColumn( 6, amount, NTBSTRINGBIND); clsSybCommand.MapColumn( 7, ticketNo,NTBSTRINGBIND); clsSybCommand.MapColumn( 8, status, NTBSTRINGBIND); int retCode=clsSybCommand.GetData(); if(retCode > 0) { //拼装成定长格式的批量包 char strOprNo[11]; memset(strOprNo, 0, 11); memset(strOprNo, ' ', 10); len = strlen(oprNo); memcpy(strOprNo, oprNo, len); memcpy(sResList, strOprNo, 10); sResList += 10; char strPreDate[9]; memset(strPreDate, 0, 9); memset(strPreDate, '0', 8); len = strlen(preDate); memcpy(strPreDate+(8-len), preDate, len); memcpy(sResList, strPreDate, 8); sResList += 8; char strSendBank[13]; memset(strSendBank, 0, 13); memset(strSendBank, '0', 12); len = strlen(sendBank); memcpy(strSendBank+(12-len), sendBank, len); memcpy(sResList, strSendBank, 12); sResList += 12; memset(strSendBank, 0, 13); memset(strSendBank, '0', 12); len = strlen(recvBank); memcpy(strSendBank+(12-len), recvBank, len); memcpy(sResList, strSendBank, 12); sResList += 12; char strTrxNo[9]; memset(strTrxNo, 0, 9); memset(strTrxNo, '0', 8); len = strlen(trxNo); memcpy(strTrxNo+(8-len), trxNo, len); memcpy(sResList, strTrxNo, 8); sResList += 8; char strAmount[16]; memset(strAmount, 0, 16); memset(strAmount, '0', 15); len = strlen(amount); memcpy(strAmount+(15-len), amount, len); memcpy(sResList, strAmount, 15); sResList+=15; char strTicketNo[13]; memset(strTicketNo, 0, 13); memset(strTicketNo, '0', 12); len = strlen(ticketNo); memcpy(strTicketNo+(12-len), ticketNo, len); memcpy(sResList, strTicketNo, 12); sResList += 12; char strStatus[3]; memset(strStatus, 0, 3); memset(strStatus, '0', 2); len = strlen(status); memcpy(strStatus+(2-len), status, len); memcpy(sResList, strStatus, 2); sResList +=2; sumCount++; totalLen+=79; } else { if (!clsSybCommand.HasNextResultSet()) { filelog(CIS_INTER_MB, "Get total=%s record\n", sumCount); filelog(CIS_INTER_MB, "Database operator return[%d][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext, __FILE__, __LINE__); break; } } } filelog(CIS_INTER_MB, "Get total=%s and count(1)=%d\n", sumCount); if(sumCount == 0) { return FALSE; } filelog(CIS_INTER_MB, "Get main info set is:%s\n", sResList); filelog(CIS_INTER_MB, "Exit BepsPub::GetManyCisDataForQuery\n"); return TRUE;}/****************************************************************************函数说明:支票截留系统报文转换为行内报文*输入参数:CURR_INF *curr:转换时需要的配置信息 char *sCisMsg :支票截留系统报文* int iCisLen :支票截留系统报文长度*输出参数:char *sMbMsg :行内报文* int *iMbLen :行内报文长度 *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-10-11****************************************************************************/BOOL BepsPub::CisToMb(CURR_INF *curr, char *sCisMsg, int iCisLen, char *sMbMsg, int *iMbLen){ filelog(CIS_INTER_MB, "Enter BepsPub::CisToMb\n"); filelog(CIS_INTER_MB, "sCisMsg=%s\n", sCisMsg); if(NULL == sCisMsg || NULL == sMbMsg || iCisLen <= 0) { filelog(CIS_INTER_MB, "Error parameter invalid\n"); return FALSE; } memset(sMbMsg, 0, strlen(sMbMsg)); *iMbLen = MAX_MBFE_BUFFER; sprintf(curr->workdir, "%s", getenv("WORKDIR")); sprintf(curr->logfile, "%s/log/CisToMb.log", getenv("WORKDIR")); sprintf(curr->config, "%s/etc/Cis.xml", getenv("WORKDIR")); if(InitParser(curr)) { filelog(CIS_INTER_MB, "Error Init parser function failed in file=%s at " "line=%d\n", __FILE__, __LINE__); return FALSE; } CNAPS_to_MB(curr, sCisMsg, iCisLen, sMbMsg, iMbLen); filelog(CIS_INTER_MB, "sMbMsg=%s\n", sMbMsg); filelog(CIS_INTER_MB, "Exit BepsPub::CisToMb\n"); return TRUE;}/****************************************************************************函数说明:行内报文转换为支票截留系统报文*输入参数:CURR_INF *curr:转换时需要的配置信息 char *sMbMsg :行内报文* int iMbLen :行内报文长度*输出参数:char *sCisMsg :支票截留系统报文* int *iCisLen :支票截留系统报文长度 *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-10-11****************************************************************************/BOOL BepsPub::MbToCis(CURR_INF *curr, char *sMbMsg, int iMbLen, char *sCisMsg, int *iCisLen){ filelog(CIS_INTER_MB, "Enter BepsPub::MbToCis\n"); filelog(CIS_INTER_MB, "sMbMsg=%s\n", sMbMsg); if(NULL == sCisMsg || NULL == sMbMsg || iMbLen <= 0) { filelog(CIS_INTER_MB, "Error parameter invalid\n"); return FALSE; } memset(sCisMsg, 0, strlen(sCisMsg)); *iCisLen = MAX_MBFE_BUFFER; sprintf(curr->workdir, "%s", getenv("WORKDIR")); sprintf(curr->logfile, "%s/log/MbToCis.log", getenv("WORKDIR")); sprintf(curr->config, "%s/etc/Cis.xml", getenv("WORKDIR")); if(InitParser(curr)) { filelog(CIS_INTER_MB, "Error Init parser function failed in file=%s at " "line=%d\n", __FILE__, __LINE__); return FALSE; } CNAPS_to_MB(curr, sMbMsg, iMbLen, sCisMsg, iCisLen); filelog(CIS_INTER_MB, "sMbMsg=%s\n", sMbMsg); filelog(CIS_INTER_MB, "Exit BepsPub::MbToCis\n"); return TRUE;}/****************************************************************************函数说明:小额支付系统报文转换为行内报文*输入参数:CURR_INF *curr:转换时需要的配置信息 char *sMbfeMsg:小额支付系统报文* int iMbfe :小额支付系统报文长度*输出参数:char *sMbMsg :行内报文* int *iMbLen :行内报文长度 *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-10-11****************************************************************************/BOOL BepsPub::MbfeToMb(CURR_INF *curr, char *sMbfeMsg, int iMbfeLen, char *sMbMsg, int *iMbLen){ filelog(CIS_INTER_MB, "Enter BepsPub::MbfeToMb\n"); filelog(CIS_INTER_MB, "sMbfeMsg=%s\n", sMbfeMsg); if(NULL == sMbfeMsg || NULL == sMbMsg || iMbfeLen <= 0) { filelog(CIS_INTER_MB, "Error parameter invalid\n"); return FALSE; } memset(sMbMsg, 0, strlen(sMbMsg)); *iMbLen = MAX_MBFE_BUFFER; sprintf(curr->workdir, "%s", getenv("WORKDIR")); sprintf(curr->logfile, "%s/log/MbefToMb.log", getenv("WORKDIR")); sprintf(curr->config, "%s/etc/MbefMb.xml", getenv("WORKDIR")); if(InitParser(curr)) { filelog(CIS_INTER_MB, "Error Init parser function failed in file=%s at " "line=%d\n", __FILE__, __LINE__); return FALSE; } CNAPS_to_MB(curr, sMbfeMsg, iMbfeLen, sMbMsg, iMbLen); filelog(CIS_INTER_MB, "sMbMsg=%s\n", sMbMsg); filelog(CIS_INTER_MB, "Exit BepsPub::MbfeToMb\n"); return TRUE;}/****************************************************************************函数说明:行内报文转换为小额支付系统报文*输入参数:CURR_INF *curr:转换时需要的配置信息 char *sMbMsg :行内报文* int iMbLen :行内报文长度*输出参数:char *sMbfeMsg:小额支付系统报文* int *iMbfeLen :小额支付系统报文长度 *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-10-11****************************************************************************/BOOL BepsPub::MbToMbfe(CURR_INF *curr, char *sMbMsg, int iMbLen, char *sMbfeMsg, int *iMbfeLen){ filelog(CIS_INTER_MB, "Enter BepsPub::MbToMbfe\n"); filelog(CIS_INTER_MB, "sMbMsg=%s\n", sMbMsg); if(NULL == sMbfeMsg || NULL == sMbMsg || iMbLen <= 0) { filelog(CIS_INTER_MB, "Error parameter invalid\n"); return FALSE; } memset(sMbfeMsg, 0, strlen(sMbfeMsg)); *iMbfeLen = MAX_MBFE_BUFFER; sprintf(curr->workdir, "%s", getenv("WORKDIR")); sprintf(curr->logfile, "%s/log/MbToMbfe.log", getenv("WORKDIR")); sprintf(curr->config, "%s/etc/MbfeMb.xml", getenv("WORKDIR")); if(InitParser(curr)) { filelog(CIS_INTER_MB, "Error Init parser function failed in file=%s at " "line=%d\n", __FILE__, __LINE__); return FALSE; } CNAPS_to_MB(curr, sMbMsg, iMbLen, sMbfeMsg, iMbfeLen); filelog(CIS_INTER_MB, "sMbfeMsg=%s\n", sMbfeMsg); filelog(CIS_INTER_MB, "Exit BepsPub::MbToMbfe\n"); return TRUE;}/****************************************************************************函数说明:文件查找函数*输入参数:char *sFilePath :文件的绝对路径* *输出参数:无* *返回值 :TRUE :文件已找到* FALSE:文件没有找到*作 者:zhanglongping *日 期: 2006-10-11****************************************************************************/BOOL BepsPub::FindFile(char *sFilePath){ filelog(CIS_INTER_MB, "Enter BepsPub::FindFile\n"); if(NULL == sFilePath) { filelog(CIS_INTER_MB, "Error invalid parameter at file=%s at line=%d", __FILE__, __LINE__); return FALSE; } filelog(CIS_INTER_MB, "sFilePath is:%s\n", sFilePath); if(0 != access(sFilePath, 0)) { filelog(CIS_INTER_MB, "Error access failed reason access return=[%d]\n", errno); return FALSE; } filelog(CIS_INTER_MB, "Exit BepsPub::FindFile\n"); return TRUE;}/****************************************************************************函数说明:从MBFEDATA获取业务明细*输入参数:char *sMainInfo :业务要素*输出参数:MBFEDATA *sMbfeData:保存业务明细* *返回值 :TRUE :处理成功
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -