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

📄 charge_payment.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		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(cDatabase->GetData()));	retlong = strlen(cDatabase->GetData());	min_acct_id = (char *) malloc(retlong);	strcpy(min_acct_id,cDatabase->GetData());	//rtrim(ltrim(min_acct_id));                //生成返回数据        //userlog(min_acct_id);	strlong = strlen(para_ret)+ strlen(invo_ret) + strlen(stat1_ret) + strlen(stat2_ret) + strlen(stat3_ret) + strlen(max_acct_id) + strlen(min_acct_id) + strlen(partner_ret) + strlen(item_ret) + strlen(payment_ret) + strlen(this_date) + 200;	if (cDatabase->ret) free(cDatabase->ret);	//userlog(min_acct_id);	cDatabase->ret = (char *) malloc(strlong+100);	strcpy(cDatabase->ret,para_ret);strlong =strlen(cDatabase->ret);cDatabase->ret[strlong]=1;cDatabase->ret[strlong+1]=0;	strcat(cDatabase->ret,invo_ret);strlong =strlen(cDatabase->ret);cDatabase->ret[strlong]=1;cDatabase->ret[strlong+1]=0;	strcat(cDatabase->ret,partner_ret);strlong =strlen(cDatabase->ret);cDatabase->ret[strlong]=1;cDatabase->ret[strlong+1]=0;	strcat(cDatabase->ret,payment_ret);strlong =strlen(cDatabase->ret);cDatabase->ret[strlong]=1;cDatabase->ret[strlong+1]=0;	strcat(cDatabase->ret,item_ret);strlong =strlen(cDatabase->ret);cDatabase->ret[strlong]=1;cDatabase->ret[strlong+1]=0;	strcat(cDatabase->ret,stat1_ret);strcat(cDatabase->ret,"\t");	strcat(cDatabase->ret,stat2_ret);strcat(cDatabase->ret,"\t");	strcat(cDatabase->ret,stat3_ret);strlong =strlen(cDatabase->ret);cDatabase->ret[strlong]=1;cDatabase->ret[strlong+1]=0;	strcat(cDatabase->ret,max_acct_id);strcat(cDatabase->ret,"\t");	strcat(cDatabase->ret,min_acct_id);strcat(cDatabase->ret,"\t");	strcat(cDatabase->ret,this_date);        	if(para_ret) free(para_ret);	if(invo_ret) free(invo_ret);	if(partner_ret) free(partner_ret);	if(payment_ret) free(payment_ret);	if(item_ret) free(item_ret);	if(stat1_ret) free(stat1_ret);	if(stat2_ret) free(stat2_ret);	if(stat3_ret) free(stat3_ret);	if(max_acct_id) free(max_acct_id);	if(min_acct_id) free(min_acct_id);	if(this_date) free(this_date);	cDatabase->Commit();	StrReturn(0,cDatabase->ret);}/*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 B_ACCT a, B_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) 			{				      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 LBAS.ACCT a, LBAS.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 B_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)			{			        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); 				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())));					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 B_ACCT a, B_ADDRESS b WHERE a.acct_id = %s and a.address_id=b.address_id(+) AND a.state='10A'",ls_score,acct_id);		      		        //userlog(lsSql);			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) 			{				      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,acct_id);		                      //userlog(lsSql);					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);strcat(lsRettemp,"\t");			strcat(lsRettemp,serv_name);			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 3:  //按acct_nbr_97提取用户信息		                        			sprintf(lsSql," select a.cur_score from lbas.score_current a ,lbas.acct b where a.acct_id=b.acct_id "			              " and b.state='10A' and b.acct_nbr_97='%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 B_ACCT a, B_ADDRESS b WHERE a.acct_nbr_97= '%s' and a.address_id=b.address_id(+) AND a.state='10A'",ls_score,Code);            //           //userlog(lsSql);			cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();			if(isqlcode<0)			{				strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");				strcpy(lsRetstr,"提取用户acct_nbr_97信息失败");				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) 			{				      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_nbr_97= '%s' and a.address_id=b.address_id(+) AND a.state='10A'",ls_score,Code);		                        //userlog(lsSql);					cDatabase->DoSql(lsSql);					isqlcode=cDatabase->GetSqlCode();							if(isqlcode<0)					{						strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");						strcpy(lsRetstr,"提取用户acct_nbr_97信息失败");						if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1)							strcat(lsTemp,lsErr);						cDatabase->Commit();						StrReturn(-1,lsTemp);					}

⌨️ 快捷键说明

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