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

📄 charge_payment.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
					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,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 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) 					{						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 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);			}			lrow=cDatabase->GetRowCount();			if(lrow==0) 			{//				StrReturn(100,"计费库未找到用户acct_nbr_97信息");				      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) 					{						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::GetItem(char *StaffID,char *ItemType,char *Code){	char lsSql[2048],lsTemp[1024],lsErr[500],lsRetstr[2048],lsRettemp[500];	int isqlcode,lrow;	int itemtype;	itemtype = atoi(ItemType);	switch (itemtype)	{		case 1:  //按合同号销帐			sprintf(lsSql,"SELECT /*+ all_rows */  a.acct_id,a.billing_cycle_id,a.partner_id,a.bill_item_id,to_char(b.due_date,'yyyy-mm-dd'),sum(a.charge),"										 "count(a.acct_item_id),max(a.serv_id),max(a.acct_item_id),1 flag,a.state  "								"FROM B_ACCT_ITEM_O a,  "									  "B_BILLING_CYCLE b  "								"WHERE a.billing_cycle_id = b.billing_cycle_id and  "										"a.acct_id = %s AND  "										"a.state in ('20C','20Q','20S','20T','20Y','20Z')  "								"group by a.acct_id,  "										"a.billing_cycle_id,  "										"a.partner_id,  "										"a.bill_item_id,  "										"to_char(b.due_date,'yyyy-mm-dd'),a.state  "								"order by a.acct_id,  "											"a.billing_cycle_id,  "											"a.partner_id,  "											"a.bill_item_id",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,"提取合同号帐目出错");				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,"未找到合同号帐目");			}			cDatabase->Commit();			StrReturn(0,cDatabase->GetData());		case 2:  //按电话号销帐			sprintf(lsSql,"SELECT /*+ all_rows */  a.acct_id,a.billing_cycle_id,a.partner_id,a.bill_item_id,"								"to_char(b.due_date,'yyyy-mm-dd'),sum(a.charge),count(a.acct_item_id),a.serv_id,max(a.acct_item_id),1 flag,a.state  "								"FROM B_ACCT_ITEM_O a,  "								"B_BILLING_CYCLE b  "								"WHERE a.billing_cycle_id = b.billing_cycle_id AND  "										"a.serv_id = %s AND  "										"a.state in ( '20C','20Q','20S','20T','20Y','20Z' )  "								"group by a.acct_id,  "									 "a.serv_id,  "								         "a.billing_cycle_id,  "								         "a.partner_id,  "								         "a.bill_item_id,  "								         "to_char(b.due_date,'yyyy-mm-dd'),a.state  "								"order by a.acct_id,  "

⌨️ 快捷键说明

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