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

📄 charge_login.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
字号:
#include "charge_login.h"/*#include "payment.flds.h"*/CLogin::CLogin(char *pcInp,COracle *pcDatabase){	cDatabase = pcDatabase;	pInp = pcInp;}void CLogin::GetStaffInfo(char *StaffID){	char lsSql[2048],lsTemp[1024],lsErr[500];	int isqlcode,lrow;	char SiteID[5],StaffName[21],SiteName[31];	/////////////////	char SellID[5],SellName[21];	//////////////////	//查找用户营业点和用户名	sprintf(lsSql,"SELECT site_id,name FROM STAFF WHERE staff_id = %s",StaffID);		//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");		if(WriteLog(cDatabase,StaffID,"w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	if(lrow==0) StrReturn(100,"员工信息不存在");	//userlog(cDatabase->GetData());	strcpy(SiteID,cDatabase->data->GetColData(1,1));	strcpy(StaffName,cDatabase->data->GetColData(1,2));	//提取员工营业点信息	sprintf(lsSql,"SELECT a.name,a.area_id,b.name FROM B_SITE a,B_AREA b WHERE site_id = %s and a.area_id=b.area_id",SiteID);	//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");		if(WriteLog(cDatabase,StaffID,"w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	if(lrow==0) StrReturn(100,"员工所属营业点不存在");	strcpy(lsTemp,cDatabase->GetData());	strcat(lsTemp,"\t");strcat(lsTemp,StaffName);        /////////////////////////////////////////////////////        //查找营业点和买断点关系	sprintf(lsSql,"SELECT a.sell_id, b.sell_name FROM SELL_SITE a,SELL b WHERE a.site_id = %s and a.sell_id=b.sell_id",SiteID);		//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");		if(WriteLog(cDatabase,StaffID,"w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	if(lrow==0)   //该营业点没有对应买断点 	{	    strcpy(SellID,"0");	    strcpy(SellName,NULL);	}	else	{	   strcpy(SellID,cDatabase->data->GetColData(1,1));	   strcpy(SellName,cDatabase->data->GetColData(1,2));	}	/////////////////////////////////////////////////////        strcat(lsTemp,"\t");strcat(lsTemp,SellID);        strcat(lsTemp,"\t");strcat(lsTemp,SellName); 	cDatabase->Commit();	StrReturn(0,lsTemp);}void CLogin::CheckStaff(char *StaffID,char *PassWord){	char lsSql[2048],lsTemp[1024],lsErr[500];	int isqlcode,lrow;	char Grade[5];	//员工信息验证	sprintf(lsSql," SELECT grade FROM STAFF  "			"WHERE staff_id = %s AND  "			      "NVL(password,'') = rtrim('%s   ') AND  "			      "state = 'K0A' AND  "			      "sysdate > eff_date AND  "			      "sysdate < exp_date",StaffID,PassWord);//	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");		//userlog(lsTemp);		if(WriteLog(cDatabase,StaffID,"w_m_login",strcat("注册失败,未通过员工合法性检验",lsTemp),lsErr)!=1)			strcat(lsTemp,lsErr);		//userlog(lsTemp);		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	strcpy(Grade,cDatabase->GetData());	if(lrow==0)	{		strcpy(lsTemp,"注册失败!密码错误或员工号已失效");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_m_login",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(100,lsTemp);	}	else	{		/*		strcpy(lsTemp,"注册成功!");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_m_login",lsTemp,lsErr)!=1)		{			strcat(lsTemp,lsErr);			StrReturn(100,lsTemp);		}		*/	}//	userlog("login ok!");	cDatabase->Commit();	StrReturn(0,Grade);}void CLogin::ChangePWD(char *StaffID,char *OldPWD,char *NewPWD){	char lsSql[2048],lsTemp[1024],lsErr[500];	int isqlcode,lrow;	char OldPWDCHK[7];	//员工信息验证	sprintf(lsSql,"SELECT NVL(password,'119') FROM STAFF WHERE staff_id = %s",StaffID);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_m_login",strcat("提取老密码失败",lsTemp),lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	if(lrow==0)	{		strcpy(lsTemp,"未取到老密码");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_m_login",strcat("提取老密码失败",lsTemp),lsErr)!=1)			strcat(lsTemp,lsErr);		StrReturn(100,lsTemp);	}	strcpy(OldPWDCHK,cDatabase->GetData());	if(strcmp(OldPWDCHK,OldPWD)!=0)		StrReturn(-1,"老密码不正确");	cDatabase->BeginTran();		sprintf(lsSql,"UPDATE STAFF SET password = '%s' WHERE staff_id = %s",NewPWD,StaffID);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_m_login",strcat("修改密码失败",lsTemp),lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Rollback();		StrReturn(-1,strcat("修改密码失败",lsTemp));	}		cDatabase->Commit();	StrReturn(0,"密码修改成功");}

⌨️ 快捷键说明

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