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

📄 charge_init.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
#include "charge_init.h"int tpsvrinit(int argc, char *argv[]){	char	lsUser[60],lsPass[60],lsServer[60],lsDatabase[60],lsApp[60],lsHost[60];	char lsSql[2048],lsTemp[1024],lsErr[500],lsRetstr[2048],lsRettemp[500];	int isqlcode,lrow;		argc = argc;	argv = argv;	GetProfileString("./charge.ini","connect_charge","username",lsUser);	GetProfileString("./charge.ini","connect_charge","password",lsPass);	GetProfileString("./charge.ini","connect_charge","server",lsServer);	GetProfileString("./charge.ini","connect_charge","database",lsDatabase);	GetProfileString("./charge.ini","connect_charge","application",lsApp);	GetProfileString("./charge.ini","connect_charge","host",lsHost);	SybCharge = new COracle(lsUser,lsPass,lsServer,lsDatabase,lsApp,lsHost);	SybCharge->Connect();	if (SybCharge->ErrNo != OCI_SUCCESS)	{		//userlog(SybCharge->ErrText);		return -1;	}        sprintf(lsSql,"select para_value from lbas.lbas_parameter "                      " where para_name='charge' ");  	SybCharge->DoSql(lsSql);	isqlcode=SybCharge->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsTemp,"提取lbas_parameter密码错!\n");		if(WriteLog(SybCharge,"-1","w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-1,lsTemp);	}           	YhDbDecode(lsPass,SybCharge->GetData());	delete SybCharge; 	SybCharge = new COracle("charge",lsPass,lsServer,lsDatabase,lsApp,lsHost);	SybCharge->Connect();	if (SybCharge->ErrNo != OCI_SUCCESS)	{		userlog(SybCharge->ErrText);		return -1;	}	                      	////userlog("进入收费中间件系统。");	return(0);}void reverse(char * pStr){	char *pTemp;	int i,Len;	Len = strlen(pStr);	if (Len <= 0) return;	pTemp = new char[Len+1];	strcpy(pTemp,pStr);	for (i = Len - 1;i >= 0;i--)		*(pStr + Len - i - 1) = *(pTemp + i);	delete pTemp;}void YhDbDecode(char *pDst,char *pSrc){	int i,Len;	char *pTemp,*pTempTemp;	pTempTemp = NULL;	pTemp = NULL;		pTemp = new char[strlen(pSrc) + 1];	pTempTemp = new char[strlen(pSrc) + 1];	strcpy(pTemp,pSrc);	i = 0;	for (;;)	{		pDst[i++] = *pTemp - strlen(pTemp) * 2;		strcpy(pTempTemp,pTemp + 1);		strcpy(pTemp,pTempTemp);		if (strlen(pTemp) == 0) break;	}	pDst[i] = '\0';	strcpy(pTemp,pDst);	reverse(pTemp);	i = 0;	*pTempTemp = '\0';	pTempTemp[strlen(pSrc) + 1] = '\0';	Len = strlen(pTemp);	for(i=0;i<Len;i++)	{		reverse(pTempTemp);		*(pTempTemp + i) = *(pTemp + i);	}	pTempTemp[i] = '\0';	strcpy(pDst,pTempTemp);	delete pTemp;	delete pTempTemp;}void tpsvrdone(void){	delete SybCharge;	////userlog("退出收费中间件系统。");}void PLStaffInfo(TPSVCINFO *rqst){	char staff_id[10];	class CLogin Payment(rqst->data,SybCharge);	strcpy(staff_id,rqst->data);	rtrim(ltrim(staff_id));	Payment.GetStaffInfo(staff_id);}void PLStaffCheck(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[2];	int i,rpnum;	char StaffID[7],PassWord[7];	class CLogin Payment(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,10);	if(rpnum!=2)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	rtrim(ltrim(strcpy(StaffID,lparm[0])));	rtrim(ltrim(strcpy(PassWord,lparm[1])));	lpfree(lparm,rpnum);        	Payment.CheckStaff(StaffID,PassWord);}void PLChangePwd(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[3];	int i,rpnum;	char StaffID[7],OldPWD[7],NewPWD[7];	class CLogin Payment(rqst->data,SybCharge);	rtrim(ltrim(strcpy(lsTemp,rqst->data)));	rpnum=GetInputParm(lsTemp,lparm,10);	if(rpnum!=3)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	rtrim(ltrim(strcpy(StaffID,lparm[0])));	rtrim(ltrim(strcpy(OldPWD,lparm[1])));	rtrim(ltrim(strcpy(NewPWD,lparm[2])));	lpfree(lparm,rpnum);	Payment.ChangePWD(StaffID,OldPWD,NewPWD);}void PPSysInit(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[2];	int i,rpnum;	char staff_id[7],area_id[5];	class CPayment Payment(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,10);	if(rpnum!=2)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_adjust",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(area_id,lparm[1]);	rtrim(ltrim(area_id));	lpfree(lparm,rpnum);	Payment.SysInit(staff_id,area_id);}void PPGetRole(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[2];	int i,rpnum;	char staff_id[7];	class CPayment Payment(rqst->data,SybCharge);	Payment.PPGetRole();}void PPGetInfo(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[3];	int i,rpnum;	char staff_id[7],code_type[2],code[17];	class CPayment Payment(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,17);	if(rpnum!=3)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_charge",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(code_type,lparm[1]);	rtrim(ltrim(code_type));	strcpy(code,lparm[2]);	rtrim(ltrim(code));	lpfree(lparm,rpnum);	Payment.GetServInfo(staff_id,code_type,code);}void PPGetItem(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[3];	int i,rpnum;	char staff_id[7],item_type[2],code[11];	class CPayment Payment(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,17);	if(rpnum!=3)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_charge",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(item_type,lparm[1]);	rtrim(ltrim(item_type));	strcpy(code,lparm[2]);	rtrim(ltrim(code));	lpfree(lparm,rpnum);	Payment.GetItem(staff_id,item_type,code);}void PPWriteOff(TPSVCINFO *rqst){	class CPayment Payment(rqst->data,SybCharge);	Payment.WriteOff();}void PPGetFor(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[3];	int i,rpnum;	char staff_id[7],item_type[2],code[11];	class CPayment Payment(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,17);	if(rpnum!=3)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_charge",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(item_type,lparm[1]);	rtrim(ltrim(item_type));	strcpy(code,lparm[2]);	rtrim(ltrim(code));	lpfree(lparm,rpnum);	Payment.PPGetFor(staff_id,item_type,code);}void PPGetServInfo(TPSVCINFO *rqst){	class CPayment Payment(rqst->data,SybCharge);	Payment.PPGetServInfo();}void PEGetBill(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[6];	int i,rpnum;	char staff_id[7],item_type[2],code[11],otherarea[2],max_acct_id[9],min_acct_id[9];	class CErase Erase(rqst->data,SybCharge);		strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,11);	if(rpnum!=6)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_charge",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}		strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(item_type,lparm[1]);	rtrim(ltrim(item_type));	strcpy(code,lparm[2]);	rtrim(ltrim(code));	strcpy(otherarea,lparm[3]);	rtrim(ltrim(otherarea));	strcpy(max_acct_id,lparm[5]);	rtrim(ltrim(max_acct_id));	strcpy(min_acct_id,lparm[4]);	rtrim(ltrim(min_acct_id));	lpfree(lparm,rpnum);	Erase.GetEraseBill(staff_id,item_type,code,otherarea,max_acct_id,min_acct_id);}void PEGetItem(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[2];	int i,rpnum;	char bill_serial_nbr[19],staff_id[7];	class CErase Erase(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,19);	if(rpnum!=2)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_charge",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(bill_serial_nbr,lparm[1]);	rtrim(ltrim(bill_serial_nbr));	lpfree(lparm,rpnum);	Erase.GetEraseItem(staff_id,bill_serial_nbr);}void PEUndoBill(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[6];	int i,rpnum;	char bill_serial_nbr[19],staff_id[7];	char grade[3],unpay[2],otherunpay[2],othersite[2];	class CErase Erase(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	rpnum=GetInputParm(lsTemp,lparm,19);	if(rpnum!=6)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_charge",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	rtrim(ltrim(staff_id));	strcpy(grade,lparm[1]);	rtrim(ltrim(grade));	strcpy(unpay,lparm[2]);	rtrim(ltrim(unpay));	strcpy(otherunpay,lparm[3]);	rtrim(ltrim(otherunpay));	strcpy(othersite,lparm[4]);	rtrim(ltrim(othersite));	strcpy(bill_serial_nbr,lparm[5]);	rtrim(ltrim(bill_serial_nbr));	lpfree(lparm,rpnum);	Erase.UndoBill(staff_id,grade,unpay,otherunpay,othersite,bill_serial_nbr);}void PAGetItem(TPSVCINFO *rqst){	char lsTemp[1024],lsErr[500];	char *lparm[6];	int i,lpnum,rpnum,itype,otherarea;	char staff_id[20],str_type[5],str_code[30],min_acct[30],max_acct[30];	class CAdjust Payment(rqst->data,SybCharge);	strcpy(lsTemp,rqst->data);	////userlog(lsTemp);	lpnum=6;	rpnum=GetInputParm(lsTemp,lparm,50);	if(rpnum!=lpnum)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n");		if(WriteLog(SybCharge,"-1","w_p_adjust",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}	for(i=0;i<lpnum;i++)	////userlog("lparm %d: %s",i,lparm[i]);	strcpy(staff_id,lparm[0]);	strcpy(str_type,lparm[1]);	strcpy(str_code,lparm[2]);	strcpy(lsTemp,lparm[3]);	otherarea=atoi(rtrim(lsTemp));	strcpy(min_acct,lparm[4]);	strcpy(max_acct,lparm[5]);	lpfree(lparm,rpnum);	itype=atoi(rtrim(str_type));	if(itype==1) Payment.GetAdjustAcct(staff_id,str_code);	else if(itype==2) Payment.GetAdjustServ(staff_id,str_code,otherarea,min_acct,max_acct);	else  {		strcpy(lsTemp,"服务函数调用错误,代码类型参数不正确!\n");		if(WriteLog(SybCharge,staff_id,"w_p_adjust",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-2,lsTemp);	}}void PAAdjust(TPSVCINFO *rqst){	class CAdjust Payment(rqst->data,SybCharge);	Payment.SetAdjustItem();}//取帐户总余额void PBNextBalance(TPSVCINFO *rqst){		class CBalance Payment(rqst->data,SybCharge);	Payment.GetBalance();}void PBGetBal(TPSVCINFO *rqst){	class CBalance Payment(rqst->data,SybCharge);	Payment.GetBalInfoAcct();}void PBGetBalHist(TPSVCINFO *rqst){	class CBalance Payment(rqst->data,SybCharge);	Payment.GetBalHist();}void PSPresentHist(TPSVCINFO *rqst){	class CStat Payment(rqst->data,SybCharge);	Payment.GetPresentHist();}void PBGetBalCharge(TPSVCINFO *rqst){	class CBalance Payment(rqst->data,SybCharge);	Payment.GetBalCharge();}

⌨️ 快捷键说明

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