📄 cispub.cpp
字号:
tmp[i] = sAmount[len - i - 1]; for(i = 0;i<len;i++) { if(tmp[i] <= '9' && tmp[i] > '0') { strcpy(TmpOut,&tmp[i]); break; } } sprintf( out_data , "%s%s", RMB , TmpOut);// printf("Before = [%s] After = [%s]\n", in_data,out_data); return 0;}//格式化金额int FormatAmount( char *in_data, char *out_data ){ char sAmount[80]; char tmp[80]; char sRMB[4]; int i,j; printf("Enter FormatAmount....\n"); memset(sAmount,0,sizeof(sAmount)); memset(sRMB,0,sizeof(sRMB)); memset(tmp,0,sizeof(tmp)); strncpy(sRMB,in_data,3); strcpy(tmp,in_data+3); for(i = 0,j = 0; tmp[i] ; i++,j++) { if(tmp[i] == ','||tmp[i]=='.') i++; sAmount[j]=tmp[i]; } sprintf(out_data,"%s%015s",sRMB,sAmount); printf("Before = [%s] After = [%s]\n", in_data,out_data); return 0;}int ChangeAmount( char *message,char *CmtNo,int flag){ //modify by limh 0620 格式化金额项+++++++++++++++++ char Head[2048],Tail[5*1024],Amount[30]; char Tag[10]; char *Begin = NULL; char *End = NULL; memset( Tag,0, sizeof(Tag)); memset( Head, 0 ,sizeof(Head)); memset( Tail, 0 ,sizeof(Tail)); memset( Amount, 0 ,sizeof(Amount)); switch( atoi(CmtNo)){ case 100: case 101: strcpy( Tag , ":32A:"); break; case 301: case 309: strcpy( Tag , ":CND:"); break; default: break; } Begin = strstr(message , Tag); End = strstr(Begin+6 , ":"); memcpy( Head , message, Begin - &message[0]); memcpy( Amount , Begin+5, End - Begin-5); strcpy( Tail , End); char AmountTmp[100]; if( flag == 0) FormatAmount(Amount,AmountTmp); else GetAmount(Amount,AmountTmp); sprintf( message,"%s%s%s%s",Head,Tag,AmountTmp,Tail);// printf("Head = [%s]\n", Head);// printf("Tag = [%s]\n", Tag);// printf("Amount = [%d][%s][%s]\n", flag,Amount,AmountTmp);// printf("Tail = [%s]\n", Tail); //modify by limh 0620 格式化金额项+++++++++++++++++ return 0;}//发送队列表入库BOOL BepsPub::SaveSendData(SENDDATA *sSendData , char *Add,char *BankNo,char *sResDesc ){ int nCisId = 0; char sSqlCmd[500*1024]; char Head[1024],Text[4096],Tail[100]; char Len[10]; MsgHeader sMsgHeader; memset( Head , 0 , sizeof( Head )); memset( Text , 0 , sizeof( Text )); memset( Tail , 0 , sizeof( Tail )); memset( Len , 0 , sizeof( Len )); sprintf( Tail , "{C: }"); memset( &sMsgHeader , 0 , sizeof(MsgHeader)); if (!MakeTrxsSerialNo(&nCisId,sResDesc,CISID)) { return FALSE; } char WorkDate[9]; memset( WorkDate , 0 , sizeof( WorkDate )); GetWorkDate(WorkDate); memcpy( sMsgHeader.VerId , "0" , 1); memcpy( sMsgHeader.AppTradeCode , "4" , 1); memcpy( sMsgHeader.CMT_No , sSendData->msgid + 3 , 3); memcpy( sMsgHeader.reserv , " CIS" , 4 ); sprintf( sMsgHeader.StartAddr,"%012s", getenv("BANKNO"));// sprintf( sMsgHeader.DestAddr , "%12s",BankNo);// sprintf( sMsgHeader.DestAddr , "%s","4519 "); sprintf( sMsgHeader.DestAddr,"%-12s", getenv("CENTER")); //printf("sMsgHeader.DestAddr = [%s]\n", sMsgHeader.DestAddr ); sprintf( sMsgHeader.MesgID , "%020d",nCisId); sprintf( sMsgHeader.MesgReqNo , "%020d",nCisId); memcpy( sMsgHeader.WorkDate , WorkDate , 8); sprintf( Head , "{1:%01s%06s%01s%03s%04s%012s%12s%01s%01s%020s%020s%08s%014s%04s%06s%01s%020s}", sMsgHeader.VerId, sMsgHeader.MsgLen, sMsgHeader.AppTradeCode, sMsgHeader.CMT_No, sMsgHeader.reserv, sMsgHeader.StartAddr, sMsgHeader.DestAddr, sMsgHeader.MesgPurp, sMsgHeader.OutForm, sMsgHeader.MesgID, sMsgHeader.MesgReqNo, sMsgHeader.WorkDate, sMsgHeader.SentTime, sMsgHeader.ExpTime, sMsgHeader.DelTime, sMsgHeader.MesgPri, sMsgHeader.Reserve); sprintf( Text , "%s{3:%s%s}%s", Head, sSendData->msgcontent,Add,Tail); sprintf(Len,"%06d", strlen(Text)); memcpy( Text + 4 , Len , 6); //printf("+++++++++++Head = [%d][%s]\n", strlen(Head), Head );// printf("+++++++++++Text = [%d][%s]\n", strlen(Text), Text ); sSendData->dataidx = nCisId; strcpy( sSendData->doflag , "0"); memset( sSqlCmd , 0 , sizeof( sSqlCmd )); sprintf( sSqlCmd, "insert into %s values(%d,'%s','%s','%s','%s','%s')", "send_data", sSendData->dataidx, sSendData->orgno, WorkDate, sSendData->doflag, sSendData->msgid, Text); if( 0 >= clsSybCommand.Insert(sSqlCmd) ) { filelog(CIS_SRV_LOG, "Insert into send_data error [%d][%s][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,sSqlCmd, __FILE__, __LINE__); return FALSE; } return TRUE;}BepsPub::BepsPub(){ memset(m_UserNo, 0, 11); memset(m_UserName, 0, 21); memset(m_UserOrgNo, 0, 13); memset(m_UserIpAddr, 0, 16);}//开始事务 void BepsPub::BeginTrans(){ m_clsSybServer.BeginTrans();}//提交事务void BepsPub::CommitTrans(){ m_clsSybServer.CommitTrans();}//回滚事务void BepsPub::RollbackTrans(){ m_clsSybServer.RollbackTrans();}//获取支付交易序号char *BepsPub::getSerialNo(char type){ static char sSerial[20]; char sqlCmd[512]; int serialNo = 0; memset(sqlCmd, 0, sizeof(sqlCmd)); sprintf(sqlCmd, "update cisserno set dataid=dataid+1 where sertype='%c'", type); if(0>=clsSybCommand.Update(sqlCmd)) { printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd); return NULL; } memset(sqlCmd, 0, sizeof(sqlCmd)); sprintf(sqlCmd,"SELECT dataid FROM cisserno WHERE sertype='%c'",type); if(0>=clsSybCommand.GetLastRecord(sqlCmd, &serialNo , INTBIND)) { printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd); return NULL; } // printf("select serial:%ld, :%s\n",serialNo, sqlCmd); if(type == '3') { if(serialNo >= 100000000) { serialNo = 10000000; if(0>=clsSybCommand.Update("update cisserno set dataid=10000000 where rtype='3'")) { printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd); return NULL; } } } else if(type == '4') { if(serialNo >= 10000) { serialNo = 1000; if(0>=clsSybCommand.Update("update cisserno set dataid=1000 where sertype='4'")) { printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd); return NULL; } } } memset(sSerial, 0, sizeof(sSerial));// printf("serial:%d\n",serialNo ); sprintf(sSerial, "%d", serialNo); return sSerial;}//取工作日期BOOL BepsPub::GetWorkDate(char *WorkDate){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //获取系统控制表的参数 sprintf(sSqlCmd,"SELECT currsysdate FROM login" ); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,WorkDate,NTBSTRINGBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetWorkDate=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); return FALSE; } return TRUE;}//获取系统参数表配置BOOL BepsPub::GetConfig(char *ConFlag, char *tag){ char sqlCmd[1024]; memset(sqlCmd, 0, sizeof(sqlCmd)); sprintf(sqlCmd, "select parvalue from syspara where parcode='%s'", tag ); int ret = clsSybCommand.GetLastRecord(sqlCmd, ConFlag, NTBSTRINGBIND ); if ( ret <= 0 ) { filelog(CIS_SRV_LOG, "GetOrgInfo=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sqlCmd); return FALSE; } return TRUE;}///////////////////////////////////////////////////////////////取机构信息BOOL BepsPub::GetOrgInfo(const char *orgno, ORGINFO *sOrgInfo){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); //获取机构信息 sprintf(sSqlCmd,"SELECT * FROM orginfo where orgno='%s'",orgno ); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, sOrgInfo->orgno,NTBSTRINGBIND, sOrgInfo->orgcode,NTBSTRINGBIND, sOrgInfo->orgname,NTBSTRINGBIND, sOrgInfo->orglevel,NTBSTRINGBIND, sOrgInfo->orgremark,NTBSTRINGBIND, sOrgInfo->orgstatus,NTBSTRINGBIND);// printf("机构码 = [%s]\n", sOrgInfo->orgno);// printf("行内机构代码 = [%s]\n", sOrgInfo->orgcode);// printf("机构名称 = [%s]\n", sOrgInfo->orgname);// printf("机构级别 = [%s]\n", sOrgInfo->orglevel);// printf("机构说明 = [%s]\n", sOrgInfo->orgremark);// printf("机构状态 = [%s]\n", sOrgInfo->orgstatus); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetOrgInfo=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); return FALSE; } return TRUE;}//获取用户信息 BOOL BepsPub::GetUserInfo(const char *UserNo, USERINFO *sUserInfo){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); //获取机构信息 sprintf(sSqlCmd,"SELECT * FROM userinfo where userno='%s'",UserNo ); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, sUserInfo->orgno,NTBSTRINGBIND, sUserInfo->userno,NTBSTRINGBIND, sUserInfo->username,NTBSTRINGBIND, sUserInfo->userpwd,NTBSTRINGBIND, sUserInfo->usertype,NTBSTRINGBIND, sUserInfo->userpermission,NTBSTRINGBIND, sUserInfo->userstatus,NTBSTRINGBIND, sUserInfo->userip,NTBSTRINGBIND, sUserInfo->remark,NTBSTRINGBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetUserInfo=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); return FALSE; } return TRUE;}//获取票交机构信息BOOL BepsPub::GetBillInfo(const char *billno, BILLINFO *sBillInfo){ int nResCode; char sSqlCmd[1024]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); //获取票交机构信息 sprintf(sSqlCmd,"SELECT * FROM BILLORG where BILLORGCODE='%s'",billno); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, sBillInfo->BILLORGCODE, NTBSTRINGBIND, sBillInfo->BILLBANKTYPE, NTBSTRINGBIND, sBillInfo->BILLORGTYPE, NTBSTRINGBIND, sBillInfo->BANKCODE, NTBSTRINGBIND, sBillInfo->OPTBANK, NTBSTRINGBIND, sBillInfo->OPTBANKINVDAT,NTBSTRINGBIND, sBillInfo->SUPRLIST, NTBSTRINGBIND, sBillInfo->CENTCODE, NTBSTRINGBIND, sBillInfo->BILLCODE, NTBSTRINGBIND, sBillInfo->CITYCODE, NTBSTRINGBIND, sBillInfo->BANKNAME, NTBSTRINGBIND, sBillInfo->SIMNAME, NTBSTRINGBIND, sBillInfo->BANKADDR, NTBSTRINGBIND, sBillInfo->TEL, NTBSTRINGBIND, sBillInfo->LINKMAN, NTBSTRINGBIND, sBillInfo->POSTCODE, NTBSTRINGBIND, sBillInfo->EMAIL, NTBSTRINGBIND, sBillInfo->EFFDATE, NTBSTRINGBIND, sBillInfo->ALTTYPE, NTBSTRINGBIND, sBillInfo->REMARK, NTBSTRINGBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetBillInfo=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); return FALSE; } return TRUE;}//检查机构信息合法性BOOL BepsPub::CheckBillInfo(const char *orgno, int Type){ int nResCode; char sSqlCmd[1024]; int nCount = 0; char TmpSql[20]; char Table[30]; memset( Table , 0 ,sizeof( Table )); memset( TmpSql , 0 , sizeof( TmpSql )); memset(sSqlCmd, 0, sizeof(sSqlCmd)); if( Type == BILLORG ) //票交机构代码 { strcpy( TmpSql , "BILLORGCODE"); strcpy( Table , "BILLORG"); } if( Type == BILLENROL ) //票交所登记表 { strcpy( TmpSql , "BILLCODE"); strcpy( Table , "BILLENROL"); } if( Type == BANKTYPE ) //行号类别表 { strcpy( TmpSql , "CODE"); strcpy( Table , "BANKTYPE"); } if( Type == DISCENT ) //分中心主表 { strcpy( TmpSql , "CODE"); strcpy( Table , "DISCENT"); } if( Type == CITYENROL ) //城市登记表 { strcpy( TmpSql , "CODE"); strcpy( Table , "CITYENROL"); } sprintf(sSqlCmd,"SELECT count(*) FROM %s where %s='%s'",Table,TmpSql,orgno); // printf("CheckBillInfo = [%s]\n", sSqlCmd ); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, &nCount, INTBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetBillInfo=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); printf("CheckBillInfo=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); return FALSE; } if( nCount <= 0 ) return FALSE; return TRUE;}///////////////////////////////////////////////////////////////根据参数代码获取系统控制参数BOOL BepsPub::GetSysCtlPar(char *sParCode,char *sParValue,char *sResDesc){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //获取系统控制表的参数 sprintf(sSqlCmd,"SELECT parvalue FROM CISCONCTL WHERE parcode='%s'", sParCode); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,sParValue,NTBSTRINGBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetSysCtlPar=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); sprintf(sResDesc,"获取系统参数[%s]失败!",sParCode); return FALSE; } return TRUE;}//根据参数代码获取系统控制参数BOOL BepsPub::GetCisSysCtlPar(char *sParCode,char *sParValue,char *sResDesc){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //获取系统控制表的参数 sprintf(sSqlCmd,"SELECT parvalue FROM syspara WHERE parcode='%s'", sParCode); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,sParValue,NTBSTRINGBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetSysCtlPar=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);// sprintf(sResDesc,"获取系统参数[%s]失败!",sParCode); return FALSE; } return TRUE;}//修改系统控制参数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -