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

📄 charge_payment.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
							lrow=cDatabase->GetRowCount();					if(lrow==0) 					{						cDatabase->Commit();						StrReturn(100,"未找到用户acct_nbr_97信息");					}							}			rtrim(ltrim(strcpy(acct_id,cDatabase->data->GetColData(1,1))));			strcpy(lsRettemp,rtrim(ltrim(cDatabase->GetData())));						sprintf(lsSql,"SELECT bill_format_id FROM ACCT_BILL_FORMAT WHERE acct_id = %s ",acct_id);						cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取定制帐单出错");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow>0) 			{				bill_format_id=cDatabase->GetData();				strcat(lsRettemp,"\t");				strcat(lsRettemp,bill_format_id);			}			cDatabase->Commit();			StrReturn(0,lsRettemp);		case 4:  //按bar_code提取用户信息			sprintf(lsSql,"SELECT acct_id,NVL(contact_tel,'') FROM B_BARCODE_ACCT WHERE bar_code = '%s'",Code);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户缴费卡信息失败");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==0) 			{				cDatabase->Commit();				StrReturn(100,"未找到用户缴费卡信息");			}			rtrim(ltrim(strcpy(acct_id,cDatabase->data->GetColData(1,1))));			rtrim(ltrim(strcpy(acc_nbr,cDatabase->data->GetColData(1,2))));			sprintf(lsSql,"SELECT acct_id,acct_seq_nbr,NVL(change,0),substr(NVL(customer_name,''),1,14),payment_method,NVL(acc_nbr,''),NVL(acct_nbr_97,''),sell_id,NVL(balance,0) FROM B_ACCT WHERE acct_id = %s AND state='10A'",acct_id);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户acct_id信息失败");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==0) 			{				cDatabase->Commit();				StrReturn(100,"未找到用户acct_id信息");			}			strcpy(lsRettemp,rtrim(ltrim(cDatabase->GetData())));			strcat(lsRettemp,"\t");			strcat(lsRettemp,acc_nbr);			sprintf(lsSql,"SELECT bill_format_id FROM ACCT_BILL_FORMAT WHERE acct_id = %s ",acct_id);						cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取定制帐单出错");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow>0) 			{				bill_format_id=cDatabase->GetData();				strcat(lsRettemp,"\t");				strcat(lsRettemp,bill_format_id);			}			cDatabase->Commit();			StrReturn(0,lsRettemp);		case 5:  //按代收号提取用户信息			sprintf(lsSql,"SELECT acct_id,serv_id FROM B_TRUSTED_ACCT_ITEM WHERE acc_nbr = '%s'",Code);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户代收信息失败");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==0) 			{				cDatabase->Commit();				StrReturn(100,"未找到用户代收信息");			}			rtrim(ltrim(strcpy(acct_id,cDatabase->data->GetColData(1,1))));			rtrim(ltrim(strcpy(serv_id,cDatabase->data->GetColData(1,2))));			sprintf(lsSql,"SELECT acct_id,acct_seq_nbr,NVL(change,0),substr(NVL(customer_name,''),1,14),payment_method,NVL(acc_nbr,''),NVL(acct_nbr_97,''),sell_id,NVL(balance,0) FROM B_ACCT WHERE acct_id = %s AND state='10A'",acct_id);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户acct_id信息失败");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==0) 			{				cDatabase->Commit();				StrReturn(100,"未找到用户acct_id信息");			}			strcpy(lsRettemp,rtrim(ltrim(cDatabase->GetData())));strcat(lsRettemp,"\t");			strcat(lsRettemp,serv_id);			sprintf(lsSql,"SELECT bill_format_id FROM ACCT_BILL_FORMAT WHERE acct_id = %s ",acct_id);						cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取定制帐单出错");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow>0) 			{				bill_format_id=cDatabase->GetData();				strcat(lsRettemp,"\t");				strcat(lsRettemp,bill_format_id);			}			cDatabase->Commit();			StrReturn(0,lsRettemp);		default:			cDatabase->Commit();			StrReturn(-1,"未知的号码类型");	}}*/void CPayment::GetServInfo(char *StaffID,char *CodeType,char *Code){	char lsSql[2048],lsTemp[1024],lsErr[500],lsRetstr[2048],lsRettemp[500];	int isqlcode,lrow;	int codetype;	char serv_id[11],serv_name[51],acct_id[9],acc_nbr[17];	char *bill_format_id;	char ls_acct_score[20],ls_score[15];	int  li_score;                  strcpy(ls_acct_score,"");        strcpy(ls_score,"");	codetype = atoi(CodeType);	//userlog(CodeType);        sprintf(lsSql,"select nvl(para_value,'0') from charge.lbas_parameter where para_name='score_flag'");        cDatabase->DoSql(lsSql);        lrow=cDatabase->GetRowCount();                if(lrow>=1)         {        	li_score=atoi(rtrim(ltrim(cDatabase->GetData())));        }        else        {        	li_score=0;        }        	switch (codetype)	{		case 1:	//按acct_id提取用户信息		        			sprintf(lsSql," select cur_score from lbas.score_current where acct_id=%s ",Code);//				//userlog(lsSql);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode(); 			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户积分信息失败1");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==1)			{				if(li_score==1)				{						strcpy(ls_score,"(积分:");					strcat(ls_score,rtrim(ltrim(cDatabase->GetData())));					strcat(ls_score,")");				}		        }					              sprintf(lsSql," SELECT a.acct_id,a.acct_seq_nbr,NVL(a.change,0),'%s'||substr(NVL(a.customer_name,''),1,14), "	              " a.payment_method,NVL(a.acc_nbr,''),NVL(a.acct_nbr_97,''),a.sell_id,substr(NVL(b.detail,''),1,15),NVL(a.balance,0) "	              " FROM lbas.ACCT a, lbas.ADDRESS b WHERE a.acct_id = %s and a.address_id=b.address_id(+) AND a.state='10A'",ls_score,Code);		       //                       //userlog(lsSql);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();//			//userlog("sqlcode= %d",isqlcode);//			//userlog("RowCount= %d",cDatabase->GetRowCount());						if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取收费库用户acct_id信息失败1");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==0) 			{//				 StrReturn(100,"计费库未找到用户acct_id信息");				      sprintf(lsSql," SELECT a.acct_id,a.acct_seq_nbr,NVL(a.change,0),substr(NVL(a.customer_name,''),1,14), "			              " a.payment_method,NVL(a.acc_nbr,''),NVL(a.acct_nbr_97,''),a.sell_id,substr(NVL(b.detail,''),1,15),NVL(a.balance,0) "			              " FROM b_ACCT a, b_ADDRESS b WHERE a.acct_id = %s and a.address_id=b.address_id(+) AND a.state='10A'",Code);    		//			//userlog(lsSql);					cDatabase->DoSql(lsSql);					isqlcode=cDatabase->GetSqlCode();		//			//userlog("sqlcode= %d",isqlcode);		//			//userlog("RowCount= %d",cDatabase->GetRowCount());										if(isqlcode<0)					{						strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");						strcpy(lsRetstr,"提取收费库用户acct_id信息失败1");						if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)							strcat(lsTemp,lsErr);						cDatabase->Commit();						StrReturn(-1,lsTemp);					}	                		lrow=cDatabase->GetRowCount();	                		if(lrow==0)	                		{			        	   cDatabase->Commit();				           StrReturn(100,"未找到用户acct_id信息1");				        }				        			}			strcpy(lsRettemp,rtrim(ltrim(cDatabase->GetData())));						sprintf(lsSql,"SELECT bill_format_id FROM ACCT_BILL_FORMAT WHERE acct_id = %s ",Code);						cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取定制帐单出错");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow>0) 			{				bill_format_id=cDatabase->GetData();				strcat(lsRettemp,"\t");				strcat(lsRettemp,bill_format_id);			}			StrReturn(0,lsRettemp);		case 2:  //按acc_nbr提取用户信息			sprintf(lsSql,"SELECT serv_id,acct_id,acct_seq_nbr,NVL(serv_name,'') FROM lbas.SERV WHERE acc_nbr = '%s' and state in ('F0A','F0J','F0K','F0L')",Code);                        //userlog(lsSql);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户serv_id信息失败");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==0)			{//					StrReturn(100,"计费库未找到该用户信息");			        sprintf(lsSql,"SELECT serv_id,acct_id,acct_seq_nbr,NVL(serv_name,'') FROM b_SERV WHERE acc_nbr = '%s' and state in ('F0A','F0J','F0K','F0L')",Code); 				cDatabase->DoSql(lsSql);				isqlcode=cDatabase->GetSqlCode();				if(isqlcode<0)				{					strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");					strcpy(lsRetstr,"提取用户计费库信息失败");					if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)						strcat(lsTemp,lsErr);					cDatabase->Commit();					StrReturn(-1,lsTemp);				}				lrow=cDatabase->GetRowCount();				if(lrow==0)				{					cDatabase->Commit();					StrReturn(100,"未找到用户信息");				}				else				{					rtrim(ltrim(strcpy(serv_id,cDatabase->data->GetColData(1,1))));					rtrim(ltrim(strcpy(acct_id,cDatabase->data->GetColData(1,2))));					rtrim(ltrim(strcpy(serv_name,cDatabase->data->GetColData(1,4))));				}			}			else			{				rtrim(ltrim(strcpy(serv_id,cDatabase->data->GetColData(1,1))));				rtrim(ltrim(strcpy(acct_id,cDatabase->data->GetColData(1,2))));				rtrim(ltrim(strcpy(serv_name,cDatabase->data->GetColData(1,4))));			}			sprintf(lsSql," select cur_score from lbas.score_current where acct_id=%s ",acct_id);			//userlog(lsSql);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode(); 			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户积分信息失败1");				if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			if(lrow==1)			{				if(li_score==1)				{					strcpy(ls_score,"(积分:");					strcat(ls_score,rtrim(ltrim(cDatabase->GetData())));

⌨️ 快捷键说明

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