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

📄 charge_dcpatch.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
字号:
#include "charge_dcpatch.h"
#include "charge_public.h"
#include "payment.flds.h"

CDCpatch::CDCpatch(char *pcInp,COracle *pcDatabase)
{
	cDatabase = pcDatabase;
	pInp = pcInp;
}

//------------------------------------------------------------------------
//服务PDCSellWS调用函数
//------------------------------------------------------------------------
void CDCpatch::SellWS()
{
	char lsSql[2048],lsTemp[1024],lsErr[500],lstmp[20];
	char staff_id[40],site_id[30],sell_id[40],start_date[100],end_date[100],area_id[20];
	int i,isqlcode,lpnum,rpnum;
	long len,lrow,row;
	char *lparm[3];

	lpnum=1;	
	rpnum=GetInputParm(pInp,lparm,500);
	if(rpnum!=lpnum)
	{
		lpfree(lparm,rpnum);
		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");
		StrReturn(-2,lsTemp);
	}

	sprintf(sell_id,"%s",lparm[0]);
	lpfree(lparm,rpnum);
	
	sprintf(lsSql,
	"SELECT billing_cycle_id,count(1),nvl(sum(charge),0) \n"
	"  FROM SELL_UNPAY_LIST \n"
	" WHERE sell_id = %s \n"
	" GROUP BY billing_cycle_id\n",sell_id);
	cDatabase->DoSql(lsSql);
	isqlcode=cDatabase->GetSqlCode();
	
	if(isqlcode<0)
	{
		strcpy(lsTemp,"检索买断点未收统计数据出错!\n");
		strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");
		if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1)
			strcat(lsTemp,lsErr);
		cDatabase->Commit();
		StrReturn(-1,lsTemp);
	}
			
	if(isqlcode==0 && cDatabase->GetRowCount()==0) StrReturn(100,NULL);
	StrReturn(0,cDatabase->GetData());
}

//------------------------------------------------------------------------
//服务PDCSellSS调用函数
//------------------------------------------------------------------------
void CDCpatch::SellSS()
{
	char lsSql[2048],lsTemp[1024],lsErr[500],lstmp[20];
	char staff_id[40],site_id[30],sell_id[40],start_date[100],end_date[100],area_id[20];
	int i,isqlcode,lpnum,rpnum;
	long len,lrow,row;
	char *lparm[3];

	lpnum=3;	
	rpnum=GetInputParm(pInp,lparm,500);
	if(rpnum!=lpnum)
	{
		lpfree(lparm,rpnum);
		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");
		StrReturn(-2,lsTemp);
	}

	sprintf(sell_id,"%s",lparm[0]);
	sprintf(start_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[1]);
	sprintf(end_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[2]);
	lpfree(lparm,rpnum);
	
	strcpy(area_id,cDatabase->data->GetColData(1,1));
	
	sprintf(lsSql,
	"SELECT a.billing_cycle_id,c.name, \n"
	"		nvl(sum(decode(a.special_acct_flag,'0',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'1',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'2',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'3',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'0',0,'1',0,'2',0,'3',0,a.charge,0)),0), \n"
	"		nvl(sum(a.charge),0) \n"
	"  FROM CHARGE.B_ACCT_ITEM_O a ,CHARGE.BILL b,CHARGE.STAFF c,CHARGE.SELL_SITE d \n"
	" WHERE a.bill_serial_nbr = b.bill_serial_nbr \n"
	"   AND b.state = '40C' \n"
	"   AND b.pay_date >= %s \n"
	"   AND b.pay_date <  %s \n"
	"   AND b.staff_id = c.staff_id \n"
	"   AND c.site_id = d.site_id \n"
	"   AND d.sell_id = %s \n"
	" GROUP BY a.billing_cycle_id,c.name\n"
	" ORDER BY 1 \n",start_date,end_date,sell_id);
	cDatabase->DoSql(lsSql);
	isqlcode=cDatabase->GetSqlCode();
	
	if(isqlcode<0)
	{
		strcpy(lsTemp,"检索买断点实收费用清单数据出错!\n");
		strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");
		if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1)
			strcat(lsTemp,lsErr);
		cDatabase->Commit();
		StrReturn(-1,lsTemp);
	}
			
	if(isqlcode==0 && cDatabase->GetRowCount()==0) StrReturn(100,NULL);
	StrReturn(0,cDatabase->GetData());
}

//------------------------------------------------------------------------
//服务PDCStaffSS调用函数
//------------------------------------------------------------------------
void CDCpatch::StaffSS()
{
	char lsSql[2048],lsTemp[1024],lsErr[500],lstmp[20];
	char staff_id[40],site_id[30],sell_id[40],start_date[100],end_date[100],area_id[20];
	int i,isqlcode,lpnum,rpnum;
	long len,lrow,row;
	char *lparm[3];

	lpnum=3;	
	rpnum=GetInputParm(pInp,lparm,500);
	if(rpnum!=lpnum)
	{
		lpfree(lparm,rpnum);
		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");
		StrReturn(-2,lsTemp);
	}

	sprintf(staff_id,"%s",lparm[0]);
	sprintf(start_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[1]);
	sprintf(end_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[2]);
	lpfree(lparm,rpnum);
	
	strcpy(area_id,cDatabase->data->GetColData(1,1));
	
	sprintf(lsSql,
	"SELECT a.billing_cycle_id, \n"
	"		nvl(sum(decode(a.special_acct_flag,'0',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'1',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'2',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'3',a.charge,0)),0), \n"
	"		nvl(sum(decode(a.special_acct_flag,'0',0,'1',0,'2',0,'3',0,a.charge,0)),0), \n"
	"		nvl(sum(a.charge),0) \n"
	"  FROM CHARGE.B_ACCT_ITEM_O a ,CHARGE.BILL b \n"
	" WHERE a.bill_serial_nbr = b.bill_serial_nbr \n"
	"   AND b.state = '40C' \n"
	"   AND b.pay_date >= %s \n"
	"   AND b.pay_date <  %s \n"
	"   AND b.staff_id = %s \n"
	" GROUP BY a.billing_cycle_id \n"
	" ORDER BY 1 \n",start_date,end_date,staff_id);
	cDatabase->DoSql(lsSql);
	isqlcode=cDatabase->GetSqlCode();
	
	if(isqlcode<0)
	{
		strcpy(lsTemp,"检索个人实收费用清单数据出错!\n");
		strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");
		if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1)
			strcat(lsTemp,lsErr);
		cDatabase->Commit();
		StrReturn(-1,lsTemp);
	}
			
	if(isqlcode==0 && cDatabase->GetRowCount()==0) StrReturn(100,NULL);
	StrReturn(0,cDatabase->GetData());
}


//------------------------------------------------------------------------
//服务PDCSellYS调用函数
//------------------------------------------------------------------------
void CDCpatch::SellYS()
{
	char lsSql[2048],lsTemp[1024],lsErr[500],lstmp[20];
	char staff_id[40],site_id[30],sell_id[30],start_date[100],end_date[100],area_id[20];
	int i,isqlcode,lpnum,rpnum;
	long len,lrow,row;
	char *lparm[3];

	lpnum=1;	
	rpnum=GetInputParm(pInp,lparm,50);
	if(rpnum!=lpnum)
	{
		lpfree(lparm,rpnum);
		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");
		StrReturn(-2,lsTemp);
	}

	sprintf(sell_id,"%s",lparm[0]);
	lpfree(lparm,rpnum);

	sprintf(lsSql,
	"SELECT nvl(sum(charge_yz),0),nvl(sum(charge_qn),0),\n"
	"       nvl(sum(charge_qj),0),nvl(sum(charge_ch),0),nvl(sum(charge),0) \n"
	"  FROM SELL_LIST \n"
	" WHERE sell_id = %s \n",sell_id);
	//userlog(lsSql);
	cDatabase->DoSql(lsSql);
	isqlcode=cDatabase->GetSqlCode();
	
	if(isqlcode<0)
	{
		strcpy(lsTemp,"检索营业点应收费用统计数据出错!\n");
		strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");
		if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1)
			strcat(lsTemp,lsErr);
		cDatabase->Commit();
		StrReturn(-1,lsTemp);
	}
			
	if(isqlcode==0 && cDatabase->GetRowCount()==0) StrReturn(100,NULL);
	StrReturn(0,cDatabase->GetData());
}

⌨️ 快捷键说明

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