⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cispub.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			        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 + -