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

📄 cispub.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 4 页
字号:
/******************************************    小额支付系统支票截留业务公共处理函数******************************************/#include <sys/time.h>#include "sybdblib.hpp"#include "CisPub.hpp"extern SybServer m_clsSybServer;extern BepsPub sCis;SybCommand  clsSybCommand(m_clsSybServer);SybResultset  clsSybResultset(m_clsSybServer);//判字符串是否为全空格int     IsEmptyStr( char *in_data ){        int i,j = 0;        char tmp[1024];        memset(tmp,0,sizeof(tmp));        for(i = 0;i < strlen(in_data);i++)        {                if(in_data[i] != ' ')                        tmp[j++] = in_data[i];        }        if( strlen(tmp) == 0 )	{		return FALSE;	}        return TRUE;}//判断字符串是否为数字int     IsNumStr( char *in_data ){        int i = 0;        char tmp[1024];        memset(tmp,0,sizeof(tmp));        for(i = 0;i < strlen(in_data);i++)        {                if(in_data[i] > '9'||in_data[i] < '0')			return -1;        }        return 0;}//格式化字符串去指定字符int     StrTrim( char *in_data ,char c){        int i,j = 0;        char tmp[1024];        memset(tmp,0,sizeof(tmp));        for(i = 0;i < strlen(in_data);i++)        {                if(in_data[i] != c)                        tmp[j++] = in_data[i];        }	strcpy( in_data , tmp);        return TRUE;}//////////////////////////////////BepsPub::BepsPub(){}//开始事务            void BepsPub::BeginTrans(){	m_clsSybServer.BeginTrans();}//提交事务void BepsPub::CommitTrans(){	m_clsSybServer.CommitTrans();}//回滚事务void BepsPub::RollbackTrans(){	m_clsSybServer.RollbackTrans();}//产生序号char *BepsPub::getSerialNo(char type){   	printf("Enter Beps::getSerialNo\n");	static char sSerial[20];	char sqlCmd[512];	int serialNo = 0;	memset(sqlCmd, 0, sizeof(sqlCmd));	sprintf(sqlCmd, "update cisserno set dataid=dataid+1 where sertype='%c'", type);	printf("EXEC SQL =[%d][%s]\n", strlen(sqlCmd), sqlCmd);	if(0>=clsSybCommand.Update(sqlCmd))	{        printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd);        return NULL;	}	printf("update:%s\n", sqlCmd);	memset(sqlCmd, 0, sizeof(sqlCmd));	sprintf(sqlCmd,"SELECT dataid FROM cisserno WHERE sertype='%c'",type);		if(0>=clsSybCommand.GetLastRecord(sqlCmd, &serialNo , INTBIND))	{        printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd);        return NULL;	}    	printf("select serial:%ld, :%s\n",serialNo, sqlCmd);		if(type == '3')	{		if(serialNo >= 100000000)		{			serialNo = 10000000;			if(0>=clsSybCommand.Update("update cisserno set dataid=10000000 where rtype='3'"))			{			printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd);			return NULL;			}		}	}	else if(type == '4')	{		if(serialNo >= 10000)		{			serialNo = 1000;			if(0>=clsSybCommand.Update("update cisserno set dataid=1000 where sertype='4'"))			{			printf("Error update SQL=[%d][%s]", strlen(sqlCmd), sqlCmd);			return NULL;			}		}	}	    	memset(sSerial, 0, sizeof(sSerial));	printf("serial:%d\n",serialNo );	sprintf(sSerial, "%d", serialNo);	return sSerial;}//根据参数代码获取系统[接口]控制参数int GetSysTime(char *Time ){	struct  timeval ct;	struct  tm ttm;	struct  timezone zone;	gettimeofday(&ct, &zone);	localtime_r(&(ct.tv_sec), &ttm);	if (ttm.tm_year >= 70)		ttm.tm_year = ttm.tm_year + 1900;	else		ttm.tm_year = ttm.tm_year + 2000;	ttm.tm_mon = ttm.tm_mon + 1;	sprintf( Time , "%04d%02d%02d%02d%02d%02d" , ttm.tm_year, ttm.tm_mon,\		ttm.tm_mday,ttm.tm_hour,ttm.tm_min,ttm.tm_sec);	return 0;}  //获取业务类型对应关系/***********int BepsPub::GetTrxsType(char *CisTrType,char *CisReTrType,int flag){        int nResCode;	char sSqlCmd[512];		char sResDesc[255];		memset(sSqlCmd, 0, sizeof(sSqlCmd));	memset(sResDesc, 0, sizeof(sResDesc));		//获取业务类型对应关系	if( flag == MBFETOCIS )	{		sprintf(sSqlCmd,"SELECT CisTrType FROM CISTRTYPE WHERE  CisReTrType='%s'", CisReTrType);			nResCode = clsSybCommand.GetLastRecord(sSqlCmd,CisTrType,NTBSTRINGBIND);		if ( nResCode <= 0 )		{			sprintf(sResDesc,"获取业务类型对应关系[%s]失败!",CisReTrType);			return FALSE;		}	}else {		sprintf(sSqlCmd,"SELECT CisReTrType FROM CISTRTYPE WHERE  CisTrType='%s'", CisTrType);			nResCode = clsSybCommand.GetLastRecord(sSqlCmd,CisReTrType,NTBSTRINGBIND);		if ( nResCode <= 0 )		{			sprintf(sResDesc,"获取业务类型对应关系[%s]失败!",CisTrType);			return FALSE;		}	}			return TRUE;}************///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////***************************************************************************//* 描述:补充字符函数//* 参数:lr:左补1右补2;strbuf:需填充数组;fillch:补充字符;len:填充后总长度//* 返回值://* 错误码://***************************************************************************int FillChar( int lr, char *strbuf, char *fillch, int len){	char tBuff[60+1];	int  tlen;		memset( tBuff, 0, sizeof(tBuff) );	tlen = len - strlen(strbuf);	if( lr == 1 )//左补	{		for( int i=0; i<tlen; i++)			strcat( tBuff, fillch );		strcat( tBuff, strbuf );	}	else	{		strcat( tBuff, strbuf );		for( int i=0; i<tlen; i++)			strcat( tBuff, fillch );	}//	printf("buf:[%s]\n", tBuff);	strcpy( strbuf, tBuff );	return TRUE;}/**************************************************************************** 描述:*	记录日志。* 参数:*	<filename>	目标文件名称。*	<fmt>	。* 返回值:*	<-1>	打开文件失败。*	<-2>	写文件失败。* 错误码:***************************************************************************/int filelog(char * filename, char * fmt, ...){	va_list ap;	char    fullname[128];	char	fullpath[128];	FILE *  fp;	int     fd;	int ret;	struct  timeval ct;	struct  tm ttm;	struct  timezone zone;	gettimeofday(&ct, &zone);	localtime_r(&(ct.tv_sec), &ttm);	if (ttm.tm_year >= 70) 		ttm.tm_year = ttm.tm_year + 1900;	else 		ttm.tm_year = ttm.tm_year + 2000;	ttm.tm_mon = ttm.tm_mon + 1;	/* 打开文件 */	memset(fullname, 0, sizeof(fullname));	memset(fullpath, 0, sizeof(fullpath));	if (getenv("WORKDIR") != NULL) {		snprintf(fullpath, sizeof(fullpath), "%s/log/%4d%02d%02d", getenv("WORKDIR"), ttm.tm_year,ttm.tm_mon,ttm.tm_mday);	} else {		snprintf(fullpath, sizeof(fullpath), "%s/%4d%02d%02d", "/home/cis/log", ttm.tm_year,ttm.tm_mon,ttm.tm_mday);	}	//验证目录	ret = access( fullpath, W_OK );	if( ret == -1 )	{		//创建目录		ret = mkdir( fullpath, S_IRWXU );		if( ret != 0 )		{			printf("mkdir error!!!!!!!!!!!!!\n");			return FALSE;		}		}	sprintf(fullname, "%s/%s[%4d%02d%02d]", fullpath, filename, ttm.tm_year,ttm.tm_mon,ttm.tm_mday );	if ((fp = fopen(fullname, "a+")) == NULL) {		return (-1);	}	/* 为避免写入混乱将文件加锁 */	fd = fileno(fp);	lockf(fd, F_LOCK, 0l);	fprintf(fp, "[%02d-%02d %02d:%02d:%02d]",		ttm.tm_mon,ttm.tm_mday,ttm.tm_hour,ttm.tm_min,ttm.tm_sec);	/* 写入文件 */	va_start(ap, fmt);	if (vfprintf(fp, fmt, ap) < 0) {		fclose(fp); /* 关闭文件 */		return (-2);	}	va_end(ap);	/* 解锁 */	lockf(fd, F_ULOCK, 0l);	fclose(fp); /* 关闭文件 */	return ( 0 );}//保存图象到文件int SaveCisPicDataToFile(char *fullname,char *cPicData){	FILE *fp=NULL;	int ret;		if((fp=fopen(fullname,"w+"))==NULL)	{		printf("OPen file error[%s]",fullname);		return -1;	}	ret=fprintf(fp,cPicData);	if( ret < 0 )	{		printf("SaveCisPicDataToFile error!\n");		fclose(fp);		return -1;	}	//filelog(ERRLOG,"write ret is %d",ret);	ret=fclose(fp);//	filelog(ERRLOG,"close ret is %d",ret);//	filelog(ERRLOG,"pRecvData.msgcontent is :%s fullname=%s ret=%d",pRecvData->msgcontent,fullname,ret);	return 1;}//从文件获取图象 int GetCisDataFromFile( char *fullname, char *filebuff ){	int iret = 0;	FILE *fp = NULL; 	memset( filebuff , 0 , sizeof(filebuff));	if ((fp = fopen(fullname, "r+")) == NULL)	{		printf("Open File Error:[%s] \n", fullname);		filelog(ERRLOG, "Open File Error:[%s] \n", fullname);		return (-1);	}	iret = fread( filebuff, strlen(filebuff)-1,1, fp );	if( iret < 0 )	{		printf("Read data failed from file:[%s] \n", fullname);		filelog(ERRLOG, "Read data failed from file:[%s] \n", fullname);		return -1;	}		return 1;	}///////////////////////////////////////////////////////////////////////产生业务序列序号int BepsPub::MakeTrxsSerialNo(int *SerialNo,char *sResDesc,char *SerType){           char    sSqlCmd[512];    int     nResCode = 0;        int nSerialNo;    memset(sSqlCmd, 0, sizeof(sSqlCmd));             

⌨️ 快捷键说明

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