📄 cispub.cpp
字号:
BOOL BepsPub::MdySysCtlPar(char *sParCode,char *sParValue,char *sResDesc){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //修改系统控制表的参数 sprintf(sSqlCmd, "UPDATE CISCONCTL SET parvalue = '%s' WHERE parcode ='%s' ", sParValue,sParCode); nResCode = clsSybCommand.Update(sSqlCmd); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "MdySysCtlPar=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); sprintf(sResDesc,"修改系统参数[%s][%s]失败!",sParCode,sParValue); return FALSE; } return TRUE; }//产生业务序列序号BOOL BepsPub::MakeTrxsSerialNo(int *SerialNo,char *sResDesc,char *SerType){ filelog(CIS_SRV_LOG, "Enter BepsPub::MakeTrxsSerialNo\n"); char sSqlCmd[512]; int nResCode = 0; int nSerialNo; memset(sSqlCmd, 0, sizeof(sSqlCmd)); sprintf(sSqlCmd,"SELECT dataid FROM cisserno WHERE sertype='%s'",SerType); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,&nSerialNo , INTBIND); if( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "MakeTrxsSerialNo = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); sprintf(sResDesc,"获取业务序列号[%s]失败!",SerType); return FALSE; } *SerialNo = nSerialNo; if( nSerialNo == 99999999 ) { nSerialNo = 1; } else { nSerialNo += 1; } memset(sSqlCmd, '\0', sizeof(sSqlCmd)); sprintf(sSqlCmd, "UPDATE cisserno SET dataid = %d WHERE sertype='%s'", nSerialNo ,SerType); nResCode = clsSybCommand.Update(sSqlCmd); if( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "MakeTrxsSerialNo = [%d][%s][%s]\n",sqlca.sqlcode, sqlca.sqlerrtext,sSqlCmd); sprintf( sResDesc , "更改业务序列号[%s]失败!",SerType); return FALSE; } filelog(CIS_SRV_LOG, "Exit BepsPub::MakeTrxsSerialNo\n"); return TRUE; } //获取系统时间BOOL GetSysTime(char *Time ){ struct timeval ct; struct tm ttm; struct timezone zone; gettimeofday(&ct, &zone); localtime_r(&(ct.tv_sec), &ttm); if (ttm.tm_year >= 70) ttm.tm_year = ttm.tm_year + 1900; else ttm.tm_year = ttm.tm_year + 2000; ttm.tm_mon = ttm.tm_mon + 1; sprintf( Time , "%04d-%02d-%02d %02d:%02d:%02d" , ttm.tm_year, ttm.tm_mon,\ ttm.tm_mday,ttm.tm_hour,ttm.tm_min,ttm.tm_sec); return 0;} //获取系统日期 BOOL GetSysData(char *Data ){ struct timeval ct; struct tm ttm; struct timezone zone; gettimeofday(&ct, &zone); localtime_r(&(ct.tv_sec), &ttm); if (ttm.tm_year >= 70) ttm.tm_year = ttm.tm_year + 1900; else ttm.tm_year = ttm.tm_year + 2000; ttm.tm_mon = ttm.tm_mon + 1; sprintf( Data , "%04d%02d%02d" , ttm.tm_year, ttm.tm_mon,ttm.tm_mday); return 0;} //int BepsPub::ReadFile(const char *FilePath,char *Buff,int BuffLen){ /*FILE *stream = NULL; int len = 0;*/ filelog(CIS_SRV_LOG, "Enter BepsPub::ReadFile\n"); if(NULL == FilePath || NULL == Buff || 0>= BuffLen) { filelog(CIS_SRV_LOG, "Error invalid parameter in file=[%d][%s]\n", __LINE__, __FILE__); return false; } memcpy(Buff, "9899327493214732943219432", strlen("9899327493214732943219432")); return true;/* filelog(CIS_SRV_LOG, "Start open file=[%s]\n", FilePath); if( (stream = fopen( FilePath, "r" )) != NULL ) { len=fread( Buff, sizeof(char), BuffLen-1, stream ); if(len==BuffLen-1||len<=0) { filelog(CIS_SRV_LOG, "Error read len invalid len=[%d] from file=[%s]\n", len, FilePath); fclose(stream); return false; } fclose( stream ); filelog(CIS_SRV_LOG, "Success read=[%d] bytes from file=[%s]", len, FilePath); return true; } else { filelog(CIS_SRV_LOG, "Error open file=[%s] failed\n", FilePath); return false; } filelog(CIS_SRV_LOG, "Exit BepsPub::ReadFile\n"); return true;*/}// 根据参与行号找出其对应的其它信息BOOL BepsPub::FindBankInfo(BankInfo *struBankInfo,char *sResDesc){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); //根据参与行号找出其对应的参与行名称/清算行号/ if ( strlen(struBankInfo->sBankCode) != 12 ) { strcpy(sResDesc,"非法的行号数据!"); return FALSE; } //支付系统行号 sprintf(sSqlCmd, "SELECT nbkname,sabkcode,bnkcity FROM MBFEWKDB..mbfenetbank WHERE nbkcode = '%s' ", struBankInfo->sBankCode); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, struBankInfo->sBankName,NTBSTRINGBIND, struBankInfo->sSapBkCode,NTBSTRINGBIND, struBankInfo->sNBCityCode,NTBSTRINGBIND); if ( nResCode <= 0 || IsEmptyStr(struBankInfo->sSapBkCode) ) { strcpy(sResDesc,"不存在的参与行号"); return FALSE; } memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //根据清算行号找出其对应的清算行名称/CCPC号码 sprintf(sSqlCmd, "SELECT sabkname,blccpc,bnkcity FROM MBFEWKDB..mbfesabk WHERE sabkcode = '%s' ", struBankInfo->sSapBkCode); nResCode = clsSybCommand.GetLastRecord(sSqlCmd , struBankInfo->sSapBkName,NTBSTRINGBIND , struBankInfo->sCcpcCode,NTBSTRINGBIND , struBankInfo->sSBCityCode,NTBSTRINGBIND); if ( nResCode <= 0 || IsEmptyStr(struBankInfo->sCcpcCode) ) { strcpy(sResDesc,"不存在的参与行号对应的清算行号"); return FALSE; } strcpy(sResDesc,"已找出参与号对应的其它信息请确定!"); return TRUE; }//获取业务类型对应关系BOOL BepsPub::GetTrxsType(char *CisTrType,char *CisReTrType,int flag){ int nResCode; char sSqlCmd[512]; char sResDesc[255]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); memset(sResDesc, 0, sizeof(sResDesc)); //获取业务类型对应关系 if( flag == MBFETOCIS ) { sprintf(sSqlCmd,"SELECT CisTrType FROM CISTRTYPE WHERE CisReTrType='%s'", CisReTrType); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,CisTrType,NTBSTRINGBIND); if ( nResCode <= 0 ) { sprintf(sResDesc,"获取业务类型对应关系[%s]失败!",CisReTrType); return FALSE; } }else { sprintf(sSqlCmd,"SELECT CisReTrType FROM CISTRTYPE WHERE CisTrType='%s'", CisTrType); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,CisReTrType,NTBSTRINGBIND); if ( nResCode <= 0 ) { sprintf(sResDesc,"获取业务类型对应关系[%s]失败!",CisTrType); return FALSE; } } return TRUE;}//获取代理行机构号BOOL BepsPub::GetOprBankNo(char *BankNo,char *BankNo_D){ int nResCode; char sSqlCmd[512]; char sResDesc[255]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); memset(sResDesc, 0, sizeof(sResDesc)); //获取代理行机构号 sprintf(sSqlCmd,"SELECT BankNo_D FROM OPRBANKNO WHERE BankNo='%s'", BankNo); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,BankNo_D,NTBSTRINGBIND); if ( nResCode <= 0 ) { sprintf(sResDesc,"获取代理行机构[%s]失败!",BankNo_D); return FALSE; } return TRUE;} //接收柜台服务程序BOOL BepsPub::CisServer(char *TrNo,char *RecvBuf,char *Result,char *sResDesc){ TCnapsTagMML *pTagmml=NULL; pTagmml = new TCnapsTagMML(); if(NULL == pTagmml) { filelog(CIS_SRV_LOG, "Allocate memory failed"); exit(0); } memset(sResDesc, 0, MAX_MBFE_BUFFER); strcpy(sResDesc, "{Head:}{Body:Msg:");// printf("解析报文....\n"); pTagmml->mmlInfo = RecvBuf; pTagmml->mmlInfoLen = strlen(RecvBuf); if(FALSE==pTagmml->parserMmlcmd()) { //filelog(CIS_SRV_LOG, "Parser mml failed"); strcat(sResDesc, "0001 解析报文失败"); delete pTagmml; if(strlen(sResDesc)>0) { strcat(sResDesc, ":}"); } return FALSE; //goto RET; }// printf("解析报文成功\n"); char tranNo[20]; memset(tranNo, 0, 20); if(false == pTagmml->getParaValue(MML_CONTTYPE_HEAD, ":TranNo:", tranNo)) { //failed! strcat(sResDesc, "0002 缺少交易码"); if(strlen(sResDesc)>0) { strcat(sResDesc, ":}"); } delete pTagmml; return FALSE; //goto RET; }// printf("tranNo:%s\n", tranNo); switch(atoi(tranNo)) {///////////////////////登陆管理//////////////////////////////// case 10810: //自由格式授权 Tr10810(RecvBuf, Result, sResDesc, pTagmml); break; case 10811: //柜员登录影像系统交易 Tr10811(RecvBuf, Result, sResDesc, pTagmml); break; case 10841: //用户退出 Tr10841(RecvBuf, Result, sResDesc, pTagmml); break;/* case 10812: Tr10812(RecvBuf, Result, sResDesc, pTagmml); break;*/ case 10813: //用户修改密码 Tr10813(RecvBuf, Result, sResDesc, pTagmml); break;///////////////////////菜单管理////////////////////////////////// case 10822: Tr10822(RecvBuf, Result, sResDesc, pTagmml); break;///////////////////////机构代码管理/////////////////////////////// case 10831: //增加机构码 Tr10831(RecvBuf, Result, sResDesc, pTagmml); break; case 10832: //修改机构码 Tr10832(RecvBuf, Result, sResDesc, pTagmml); break; case 10833: //机构码查询 Tr10833(RecvBuf, Result, sResDesc, pTagmml); break;///////////////////////用户管理///////////////////////////////// case 10801: //增加用户 Tr10801(RecvBuf, Result, sResDesc, pTagmml); break; case 10802: //修改用户信息 Tr10802(RecvBuf, Result, sResDesc, pTagmml); break; case 10803: //授权用户 Tr10803(RecvBuf, Result, sResDesc, pTagmml); break; case 10804: //注销用户 Tr10804(RecvBuf, Result, sResDesc, pTagmml); break; case 10807: //解锁用户 Tr10807(RecvBuf, Result, sResDesc, pTagmml); break;/* case 10805: Tr10805(RecvBuf, Result, sResDesc, pTagmml); break;*/ case 10806: //查询用户 Tr10806(RecvBuf, Result, sResDesc, pTagmml); break; ///////////////////////支票业务////////////////////////////////////////// case 10001: //业务录入 Tr10001(RecvBuf, Result, sResDesc, pTagmml); break; case 10000: //业务查询 Tr10000(RecvBuf, Result, sResDesc, pTagmml); break; case 10002: //业务修改 Tr10002(RecvBuf, Result, sResDesc, pTagmml); break;/* case 10003: //业务复核 Tr10003(RecvBuf, Result, sResDesc, pTagmml); break;*//* case 10006: //数字核签 Tr10006(RecvBuf, Result, sResDesc, pTagmml); break; case 10007: //业务验印 Tr10007(RecvBuf, Result, sResDesc, pTagmml); break; case 10017: //业务验印复核 Tr10017(RecvBuf, Result, sResDesc, pTagmml); break;*/ case 10004: //业务复核提出 Tr10004(RecvBuf, Result, sResDesc, pTagmml); break; case 10008: //来帐初次审核 Tr10008(RecvBuf, Result, sResDesc, pTagmml); break; case 10018: //来帐复核 Tr10018(RecvBuf, Result, sResDesc, pTagmml); break; case 10009: //业务明细查询 Tr10009(RecvBuf, Result, sResDesc, pTagmml); break;//////////////////////通用业务/////////////////////////////////// case 10100: //业务查询 Tr10100(RecvBuf, Result, sResDesc, pTagmml); break; case 10101: //业务录入 Tr10101(RecvBuf, Result, sResDesc, pTagmml); break; case 10102: //业务修改 Tr10102(RecvBuf, Result, sResDesc, pTagmml); break; case 10103: //业务复核 Tr10103(RecvBuf, Result, sResDesc, pTagmml); break; case 10104: //业务提出 Tr10104(RecvBuf, Result, sResDesc, pTagmml); break; case 10106: //业务核押 Tr10106(RecvBuf, Result, sResDesc, pTagmml); break; case 10107: //业务验印 Tr10107(RecvBuf, Result, sResDesc, pTagmml); break; case 10108: Tr10108(RecvBuf, Result, sResDesc, pTagmml); break; case 10109: //明细查询 Tr10109(RecvBuf, Result, sResDesc, pTagmml); break;////////////////////////信息管理//////////////////////////////////////// case 10300: //发起查询报文 Tr10300(RecvBuf, Result, sResDesc, pTagmml); break; case 10301: //查询查询报文 //Tr10301(RecvBuf, Result, sResDesc, pTagmml); Tr13333(RecvBuf, Result, sResDesc, pTagmml); break; case 10302: //查复报文 Tr10302(RecvBuf, Result, sResDesc, pTagmml); break; case 10303: //自由格式报文 Tr10303(RecvBuf, Result, sResDesc, pTagmml); break; case 30301: //查询自由格式报文 Tr30301(RecvBuf, Result, sResDesc, pTagmml); break; case 10304: //业务状态查询报文录入 Tr10304(RecvBuf, Result, sResDesc, pTagmml); break; case 30401: //业务状态查询报文查询 Tr30401(RecvBuf, Result, sResDesc, pTagmml); break; case 10306: //违规支票上载报文 Tr10306(RecvBuf, Result, sResDesc, pTagmml); break; case 30601: //违规支票上载报文查询 Tr30601(RecvBuf, Result, sResDesc, pTagmml); break; case 10309: //止付报文录入 Tr10309(RecvBuf, Result, sResDesc, pTagmml); break; case 30901: //止付报文查询 Tr30901(RecvBuf, Result, sResDesc, pTagmml); break; case 10310: //止付应答报文录入 Tr10310(RecvBuf, Result, sResDesc, pTagmml); break;/////////////////////////////////////////////////////////////////// case 10843: //发送队列表管理消息的处理函数 Tr10843(RecvBuf, Result, sResDesc, pTagmml); break; case 10844: //接收队列表管理消息的处理函数 Tr10844(RecvBuf, Result, sResDesc, pTagmml); break; case 10201: //业务计费清单查询消息的处理函数 Tr10201(RecvBuf, Result, sResDesc, pTagmml); break; case 20000: //图象关联 Tr20000(RecvBuf, Result, sResDesc, pTagmml); break; case 20001: //CIS业务修改 Tr20001(RecvBuf, Result, sResDesc, pTagmml); break; case 30402: //发起登陆报文 Tr30402(RecvBuf, Result, sResDesc, pTagmml); break; case 30403: //退出登陆申请 Tr30403(RecvBuf, Result, sResDesc, pTagmml); break; case 30504: //展现权限公共数据变更 Tr30504(RecvBuf, Result, sResDesc, pTagmml); break; //add by hanyun 处理前台查询系统登陆状态,分中心登陆状态,当前工作日期 case 30404: //查询系统状态、工作日期、登录状态 Tr30404(RecvBuf, Result, sResDesc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -