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

📄 cispub.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        return FALSE;    }        memcpy(mainInfo->WorkDate, recvBuf, 8);    memcpy(mainInfo->SendBank, recvBuf+8, 12);    memcpy(mainInfo->RecvBank, recvBuf+20, 12);    memcpy(mainInfo->TrxNo, recvBuf+32, 8);    filelog(CIS_INTER_MB, "Exit BepsPub::GetMainInfo\n");    return TRUE;}/****************************************************************************函数说明:根据业务要素从CSIDATA中取得业务的明细*输入参数:MainInfo *sMainInfo :业务的要素信息*输出参数:CISDATA  *sCisData  :业务的明细信息*          char     *sResList  :格式化的定长业务明细信息*          *返回值  :TRUE :处理成功*     FALSE:处理失败*作    者:zhanglongping *日    期: 2006-09-30****************************************************************************/BOOL BepsPub::GetSingleCisData( MainInfo *sMainInfo, CISDATA *sCisData,    int OprType){    filelog(CIS_INTER_MB, "Enter BepsPub::GetSingleCisData\n");        if((NULL == sMainInfo) || (NULL == sCisData))    {        filelog(CIS_INTER_MB, "Error:parameter invalid in file=%s at line=%d",            __FILE__, __LINE__);                return FALSE;    }        int retCode = 0;    char sqlCmd[1024];    memset(sqlCmd, 0, 1024);                if(OprType == OPRTYPE_CHECK)    {        sprintf(sqlCmd,             "SELECT %s FROM %s WHERE PreDate='%s'"            "and RecverBKCD='%s' and PayerBKCD='%s' and rsflag='0' and "            "doflag='03' and TrxNo='%s' ",            CISINFO, T_CISDATA,sMainInfo->WorkDate,            sMainInfo->SendBank, sMainInfo->RecvBank,  sMainInfo->TrxNo);    }    else if(OprType == OPRTYPE_MODIFY)    {        sprintf(sqlCmd,             "SELECT %s FROM %s WHERE PreDate='%s' and "            "RecverBKCD='%s' and PayerBKCD='%s' and rsflag='0' and "            "doflag='02' and TrxNo='%s'",            CISINFO, T_CISDATA, sMainInfo->WorkDate,             sMainInfo->SendBank, sMainInfo->RecvBank, sMainInfo->TrxNo);    }    else if(OprType == OPRTYPE_QUERY)    {        sprintf(sqlCmd,             "SELECT %s FROM %s WHERE PreDate='%s' and TrxNo='%s' and "            "RecverBKCD='%s' and PayerBKCD='%s' and rsflag='0'",            CISINFO, T_CISDATA, sMainInfo->WorkDate, sMainInfo->TrxNo,             sMainInfo->SendBank, sMainInfo->RecvBank);    }	else	{		filelog(CIS_INTER_MB, "Warning:OperType invalid");		return FALSE;	}	    filelog(CIS_INTER_MB, "sqlCmd is:[%s]\n", sqlCmd);        retCode = clsSybCommand.GetLastRecord(sqlCmd,       sCisData->CisIdx,      INTBIND,       sCisData->MbfeIdx,     INTBIND,       sCisData->doflag,      NTBSTRINGBIND,       sCisData->rsflag,      NTBSTRINGBIND,       sCisData->OprNo,       NTBSTRINGBIND,       sCisData->PkgType,     NTBSTRINGBIND,       sCisData->TrxsType,    NTBSTRINGBIND,       sCisData->PreDate,     NTBSTRINGBIND,       sCisData->TrxNo,       NTBSTRINGBIND,       sCisData->RecverBKCD,  NTBSTRINGBIND,       sCisData->RecverACC,   NTBSTRINGBIND,       sCisData->RecverName,  NTBSTRINGBIND,       sCisData->PayerBKCD,   NTBSTRINGBIND,       sCisData->PayerACC,    NTBSTRINGBIND,       sCisData->PayerName,   NTBSTRINGBIND,       sCisData->MEYSYB,      NTBSTRINGBIND,       sCisData->Amount,      NTBSTRINGBIND,       sCisData->AccKind,     NTBSTRINGBIND,       sCisData->AccNo,       NTBSTRINGBIND,       sCisData->ChkDate,     NTBSTRINGBIND,       sCisData->AccDate,     NTBSTRINGBIND,       sCisData->AccPsw,      NTBSTRINGBIND,       sCisData->Info,        NTBSTRINGBIND,       sCisData->Remark,      NTBSTRINGBIND,       sCisData->SysDate,     NTBSTRINGBIND,       sCisData->RtnLimted,   NTBSTRINGBIND,       sCisData->SRCFlag,     NTBSTRINGBIND,       sCisData->ChkSatus,    NTBSTRINGBIND,       sCisData->PicFront,    NTBSTRINGBIND,       sCisData->PicBack,     NTBSTRINGBIND,       sCisData->SignInfo,    NTBSTRINGBIND,       sCisData->RedoCount,   NTBSTRINGBIND,       sCisData->RedoInfo,    NTBSTRINGBIND,       sCisData->CisData,     NTBSTRINGBIND,       sCisData->TagData,     NTBSTRINGBIND);    	if(retCode <= 0)               	{                                          filelog(CIS_INTER_MB, "Database operator return[%d][%s]"            " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,            __FILE__, __LINE__);        		return FALSE;	}    char FrntFilePath[255];    char BackFilePath[255];    memset(FrntFilePath, 0, 255);    memset(BackFilePath, 0, 255);    sprintf(FrntFilePath, "%s/%s/%s", getenv("WORKDIR"), "pic", sCisData->PicFront);    sprintf(BackFilePath, "%s/%s/%s", getenv("WORKDIR"), "pic", sCisData->PicBack);    if(FALSE==FindFile(FrntFilePath) || FALSE==FindFile(BackFilePath))    {        char FrontImage[1024*1024];        char BackImage[1024*1024];        memset(FrontImage, 0, 1024*1024);        memset(BackImage, 0, 1024*1024);        memset(sqlCmd, 0, 1024);        sprintf(sqlCmd, "SET TEXTSIZE 3048576 select FrontImage, BackImage from CISDATA where "            "TrxNo='%s' and PreDate='%s' and RecverBKCD='%s' and PayerBKCD='%s' "            " and rsflag='0'", sCisData->TrxNo, sCisData->PreDate,             sCisData->RecverBKCD, sCisData->PayerBKCD);        filelog(CIS_INTER_MB, "sqlCmd is:[%s]\n", sqlCmd);                retCode = clsSybCommand.GetLastRecord(sqlCmd,              FrontImage, NTBSTRINGBIND, BackImage, NTBSTRINGBIND);        if(retCode <= 0)                       {                                              filelog(CIS_INTER_MB, "Database operator return[%d][%s]"                " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,                __FILE__, __LINE__);                        return FALSE;        }        //解析正面影像信息并生成文件        unsigned char * FileImageBuff=NULL;        FileImageBuff=new unsigned char[1024*1024];        CBase64 base64Fp;        int FileImageLen=base64Fp.DecodeBuffer(FrontImage, (char*)FileImageBuff);        filelog(CIS_INTER_MB, "Base64 decode file=[%d][%s]", FileImageLen, FrntFilePath);                int fpFront=0;        if(0==(fpFront=open(FrntFilePath, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)))        {            filelog(CIS_INTER_MB, "open file=[%s] failed", FrntFilePath);            delete [] FileImageBuff;            return FALSE;        }        if(0 >= write(fpFront, FileImageBuff, FileImageLen))        {            filelog(CIS_INTER_MB, "Save file=[%s] failed", FrntFilePath);            delete [] FileImageBuff;            close(fpFront);            return FALSE;        }        close(fpFront);                //解析背面影像信息并生成文件        memset(FileImageBuff, 0, sizeof(FileImageBuff));        CBase64 base64Bp;        FileImageLen=base64Bp.DecodeBuffer(BackImage, (char*)FileImageBuff);        filelog(CIS_INTER_MB, "Base64 decode file=[%d][%s]", FileImageLen, BackFilePath);                int fpBack=0;        if(0==(fpBack=open(BackFilePath, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)))        {            filelog(CIS_INTER_MB, "open file=[%s] failed", BackFilePath);            delete [] FileImageBuff;            return FALSE;        }        if(0 >= write(fpBack, FileImageBuff, FileImageLen))        {            filelog(CIS_INTER_MB, "Save file=[%s] failed", FrntFilePath);            delete [] FileImageBuff;            close(fpBack);            return FALSE;        }        close(fpBack);        delete [] FileImageBuff;    }        filelog(CIS_INTER_MB, "Exit BepsPub::GetSingleCisData\n");	return TRUE;}/****************************************************************************函数说明:提出复核时的批量查询数据*输入参数:char *sOprNo  :前台输入的柜台号*输出参数:char *sResList:得到业务要素后拼装成定长格式的批量包*          *返回值  :TRUE :处理成功*     FALSE:处理失败*作    者:zhanglongping *日    期: 2006-09-30****************************************************************************/BOOL BepsPub::GetManyCisDataForReCheck( char *sOprNo, char *sResList){    filelog(CIS_INTER_MB, "Enter BepsPub::GetSameCisData\n");    if((NULL == sOprNo) || (NULL == sResList))    {        filelog(CIS_INTER_MB, "Error:parameter invalid in file=%s at line=%d\n",            __FILE__, __LINE__);        return FALSE;    }        char accDate[8+1];    char trxNo[8+1];    char sendBank[12+1];    char recvBank[12+1];    char oprNo[10+1];    int  count=0;    int  sumCount=0;    int  retCount=0;        memset(oprNo, 0, 11);    memset(oprNo, ' ', 10);    memcpy(oprNo, sOprNo, 10);    memset(sResList, '0', strlen(sResList));        char sqlCmd[1024];    memset(sqlCmd, 0, 1024);    sprintf(sqlCmd, "select count(1),PreDate,TrxNo,RecverBKCD,PayerBKCD from %s"        " where OprNo='%s'and rsflag='0'", T_CISDATA, sOprNo);    filelog(CIS_INTER_MB, "sqlCmd is:%s\n", sqlCmd);    retCount = clsSybCommand.Select(sqlCmd);    if(retCount <=0)    {        filelog(CIS_INTER_MB, "Database operator return[%d][%s]"            " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,            __FILE__, __LINE__);                return FALSE;    }    for(int i=0; ; i++)    {           memset(accDate, 0, 9);        memset(accDate, '0', 8);        memset(trxNo, 0, 9);        memset(trxNo, '0', 8);        memset(sendBank, 0, 13);        memset(sendBank, '0', 12);        memset(recvBank, 0, 13);        memset(recvBank, '0', 12);        count=0;                clsSybCommand.MapColumn( 1, &count,  INTBIND);        clsSybCommand.MapColumn( 2, accDate, NTBSTRINGBIND);        clsSybCommand.MapColumn( 3, trxNo,   NTBSTRINGBIND);        clsSybCommand.MapColumn( 4, recvBank,NTBSTRINGBIND);         clsSybCommand.MapColumn( 5, sendBank,NTBSTRINGBIND);        int retCode=clsSybCommand.GetData();        if(retCode > 0)        {            memcpy(sResList, oprNo, 10);            sResList += 10;            memcpy(sResList, accDate, 8);            sResList += 8;            memcpy(sResList, sendBank, 12);            sResList += 12;            memcpy(sResList, recvBank, 12);            sResList += 12;            memcpy(sResList, trxNo, 8);            sResList += 8;            sumCount++;        }        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, count);    filelog(CIS_INTER_MB, "Get main info set is:%s\n", sResList);    filelog(CIS_INTER_MB, "Exit BepsPub::GetSameCisData\n");        return TRUE;}/****************************************************************************函数说明:查询时的批量查询数据*输入参数:char *sRecvBuf:前台输入的查询条件*输出参数:char *sResList:得到满足条件的数据拼装成定长格式的批量包*          *返回值  :TRUE :处理成功*     FALSE:处理失败*作    者:zhanglongping *日    期: 2006-09-30****************************************************************************/BOOL BepsPub::GetManyCisDataForQuery( char *sRecvBuf, char *sResList){    filelog(CIS_INTER_MB, "Enter BepsPub::GetManyCisDataForQuery\n");    if((NULL == sRecvBuf) || (NULL == sResList))    {        filelog(CIS_INTER_MB, "Error:parameter invalid in file=%s at line=%d\n",            __FILE__, __LINE__);        return FALSE;    }    //定义保存数据库查询条件的变量    char db_oprNo[11];    char db_workDate[9];    char db_sendBank[13];    char db_recvBank[13];    memset(db_oprNo, 0, 11);    memset(db_workDate, 0, 9);    memset(db_sendBank, 0, 13);    memset(db_recvBank, 0, 13);    memcpy(db_oprNo, sRecvBuf+6, 10);    memcpy(db_workDate, sRecvBuf+16, 8);    memcpy(db_sendBank, sRecvBuf+24, 12);    memcpy(db_recvBank, sRecvBuf+36, 12);    //定义保存查询结果的变量    char oprNo[11];    char preDate[9];    char trxNo[9];    char sendBank[13];    char recvBank[13];	char amount[16];	char ticketNo[13];    char status[3];    int len =0;    //int  count=0;    int  sumCount=0;    //int  retCount=0;    int totalLen=0;    char sqlCmd[1024];    memset(sqlCmd, 0, 1024);	if(memcmp(db_oprNo, "          ", 10)==0)	{		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 RecverBKCD='%s'"			        " and PayerBKCD='%s' and rsflag='0'", 			        T_CISDATA, db_sendBank, db_recvBank);			}			else			{			    sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD,"			        "Amount, AccNo, doflag from %s where PreDate='%s' and RecverBKCD='%s'"			        " and PayerBKCD='%s' and rsflag='0'", 			        T_CISDATA, 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 rsflag='0'", T_CISDATA);			}			else			{			    sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD,"			        "Amount, AccNo, doflag from %s where PreDate='%s' and rsflag='0'", 			        T_CISDATA, 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 RecverBKCD='%s' and rsflag='0'", 			        T_CISDATA, db_sendBank);			}			else			{			    sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD,"			        "Amount, AccNo, doflag from %s where PreDate='%s' and RecverBKCD='%s'"			        " and rsflag='0'", 			        T_CISDATA, 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 PayerBKCD='%s' and rsflag='0'", 			        T_CISDATA, db_recvBank);			}			else			{			    sprintf(sqlCmd, "select OprNo,PreDate,TrxNo,RecverBKCD,PayerBKCD,"			        "Amount, AccNo, doflag from %s where PreDate='%s' and PayerBKCD='%s' "			        "and rsflag='0'", 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -