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

📄 llysgb.cpp

📁 移动梦网平台主程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
#include <stdio.h>#include <string.h>#include <time.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <ctype.h>#include "../include/define.h"#include "../include/CMPPAPI.h"#include "mysql/mysql.h"#include "../include/sm_tools.h"#include "../include/sm_db.h"#include "main.h"#define SELF_TYPE	"llysgb"#define INIFILE "../config/sm.ini"extern char db_host[100],db_user[100],db_passwd[100],db_dbname[100];extern MYSQL *myconn;extern char SP_ID[20];static char service_phone[20];static int ScanMsg();static int ScanMsgSession();static int DoService(char *code,char *ocode,char *content,char *msisdn,char *dcode,float fee);static int SendUser(char *msisdn,char *msg,char *dcode,float fee,int flag);static int DoApply(char *code,char *msisdn,char *dcode,char *content,float fee,int want_num);static int dobet(char *content,char *msisdn,char *dcode,float fee,int type);static int getrandcontent(char *tablename,char *polt,int max);static int getrandnum(int max);static int haveuser(char *msisdn);static int getmaxid(char *tablename);static int getcontent(char *content,int type,char *msisdn,char *dcode,float fee);static char sp_id_extern[20];static char linkid[9];int Initllysgb(){	srand(time(NULL));	GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone);	return 0;}int Dollysgb(){	int retval;	retval = ScanMsg();	if(retval < 0)	{		sleep(1);		return 0;	}	retval = ScanMsgSession();	return retval;}static int ScanMsg(){	char sql[500],day[20];	MYSQL_ROW row;	MYSQL_RES *res = NULL;	int retval,i,want_num;	float fee;	char id[11],icpid[3],code[11],msisdn[22],msg[161],dcode[11];	memset(sql,0,sizeof(sql));		sprintf(sql,	        "SELECT ID,ICPID,UPPER(SERVICECODE),SRCTERMID,MSGCONTENT,DCODE,FEE,LIMIT_NUM,LINKID\	         FROM COM_RECV RECV,COD_SERVICE COD\	         WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='YS' limit 200");\	retval = QuerySQL(sql,&myconn,&res);	if(retval != 0)	{		writelog(SELF_TYPE,"查询指令失败");		return 0;	}	if(res == NULL)	{		return 0;	}	while( row = mysql_fetch_row(res))	{		strcpy(id,row[0]);		strcpy(icpid,row[1]);		strcpy(code,row[2]);		strcpy(msisdn,row[3]);		strcpy(msg,row[4]);		strcpy(dcode,row[5]);		fee = atof(row[6]);		want_num = atoi(row[7]);		strcpy(linkid,row[8]);				sprintf(sql,"UPDATE COM_RECV SET FLAG=1,DEAL_DATE='%s' WHERE ID=%s",getnowdate(day),id);		if(DoSQL(sql,&myconn) != 0)		{			writelog(SELF_TYPE,"更新接受指令表出错!");			return 0;		}				if(DoApply(code,msisdn,dcode,msg,fee,want_num)==0)			//申请业务成功		{			continue;		}		else		{			writelog(SELF_TYPE,"申请业务失败!");		}	}	mysql_free_result(res);	return 0;}static int ScanMsgSession(){	char sql[2000];	MYSQL_ROW row;	MYSQL_RES *res = NULL;	int retval,i,feetype;	float fee,fee_mon;	char id[11],icpid[3],code[11],msisdn[22],dcode[11],ocode[20];	char day[20];	char msg[500];	memset(sql,0,sizeof(sql));	sprintf(sql,	        "SELECT ID,ICPID,UPPER(SERVICECODE),OTHERCODE,MSGCONTENT,SRCTERMID,DCODE,FEE,LINKID\	         FROM COM_RECV_SESSION RECV,COD_SERVICE_SESSION COD\	         WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='YS' limit 200");\	retval = QuerySQL(sql,&myconn,&res);	if(retval != 0)	{		writelog(SELF_TYPE,"查询指令失败");		return 0;	}	if(res == NULL)	{		return 0;	}	while( row = mysql_fetch_row(res))	{		strcpy(id,row[0]);		strcpy(icpid,row[1]);		strcpy(code,row[2]);		strcpy(ocode,row[3]);		strcpy(msg,row[4]);		strcpy(msisdn,row[5]);		strcpy(dcode,row[6]);		fee = atof(row[7]);		strcpy(linkid,row[8]);				sprintf(sql,"UPDATE COM_RECV_SESSION SET FLAG=1,DEAL_DATE='%s' WHERE ID=%s",getnowdate(day),id);		if(DoSQL(sql,&myconn) != 0)		{			writelog(SELF_TYPE,"更新session接受指令表出错!");			return 0;		}		DoService(code,ocode,msg,msisdn,dcode,fee);	}	mysql_free_result(res);	return 0;}//申请定制static int DoApply(char *code,char *msisdn,char *dcode,char *content,float fee,int want_num){	char sql[2000],cd[20];	int type,retval,num,numwx1,numwx2,numlt1,numlt2;	SEND_STRUC sendstruc;	char flag[2],free_flag[2];	char day[20];	MYSQL_RES *res = NULL;	MYSQL_ROW row;	char buf[1000],msg[500],name[100],send_num[20];	int count = 0;	trim(content,' ');			switch(content[0])	{		//取消					case 'q':		case 'Q':		case 'o':		case 'O':			type = 0;			break;        			//定制		default:			type=1;	}	sprintf(sql,"SELECT NAME,SEND_NUM FROM COD_SERVICE WHERE TRIM(UCODE)='%s'",checksql(code));	retval = QuerySQL(sql,&myconn,&res);	if(retval != 0)	{		writelog(SELF_TYPE,"查询指令失败");		return 0;	}	if(res == NULL)	{		return 0;	}	if(row = mysql_fetch_row(res))	{		strcpy(name,row[0]);		strcpy(send_num,row[1]);	}	mysql_free_result(res);		sprintf(sql,"SELECT FLAG,FREE_FLAG FROM USER_LLYS_POINT WHERE MSISDN='%s' AND TRIM(SV_CODE)='%s'",checksql(msisdn),checksql(code));	retval = QuerySQL(sql,&myconn,&res);	if(retval != 0)	{		writelog(SELF_TYPE,"查询指令失败");		return 0;	}	if(res == NULL)	{		return 0;	}	if(row = mysql_fetch_row(res))	//原来有用户资料	{		strcpy(flag,row[0]);		strcpy(free_flag,row[1]);		if(flag[0] == '0' && type == 0)		{			strcpy(msg,"该业务已取消,不必再取消.");			SendUser(msisdn,msg,dcode,fee,0);	//错误信息		}		else if(flag[0] != '0' && type == 1)		{			strcpy(msg,"该业务已申请,不必再申请,感谢您的使用");			SendUser(msisdn,msg,dcode,fee,0);	//错误信息		}		else if(type == 0)	//取消		{			sprintf(sql,"UPDATE USER_LLYS_POINT SET FLAG='0',CANCEL_DATE='%s'\			             WHERE MSISDN='%s' AND SV_CODE='%s'",getnowdate(day),checksql(msisdn),checksql(code));\			if(DoSQL(sql,&myconn) != 0)			{				writelog(SELF_TYPE,"取消订制出错!");				return 0;			}			sprintf(msg,"取消%s成功,感谢您使用我们的服务.",name);			SendUser(msisdn,msg,dcode,fee,9);	//取消包		}		else	//订制		{			sprintf(sql,"UPDATE USER_LLYS_POINT SET FLAG='1',FREE_FLAG='0',REG_DATE='%s',WANT_NUM=%d,SCORE=2000,WIN_NUM=0,DOWN_NUM=0\			             WHERE MSISDN='%s' AND SV_CODE='%s'",getnowdate(day),want_num,checksql(msisdn),checksql(code));\			if(DoSQL(sql,&myconn) != 0)			{				writelog(SELF_TYPE,"申请订制出错!");				return 0;			}			sprintf(msg,"申请订制成功,%s资费%.2f元/条,发送频次:%s.退定方法:0000.感谢您使用我们的服务.咨询电话%s",name,fee,send_num,service_phone);			SendUser(msisdn,msg,dcode,fee,8);	//成功包		}	}	else	{		if(type == 0)		{			strcpy(msg,"您未申请该业务,无法取消.");			SendUser(msisdn,msg,dcode,fee,0);	//错误信息		}		else		{			sprintf(sql,"INSERT INTO USER_LLYS_POINT(MSISDN,SV_CODE,WANT_NUM,FLAG,FREE_FLAG,SCORE,\				DOWN_NUM,WIN_NUM,REG_DATE) VALUES('%s','%s',%d,'1','0','2000','0','0','%s')",\			        checksql(msisdn),checksql(code),want_num,getnowdate(day));\			if(DoSQL(sql,&myconn) != 0)			{				writelog(SELF_TYPE,"申请订制出错!");				return 0;			}			sprintf(msg,"申请订制成功,%s资费%.2f元/条,发送频次:%s.退定方法:0000.感谢您使用我们的服务.咨询电话%s",name,fee,send_num,service_phone);			SendUser(msisdn,msg,dcode,fee,8);	//成功包		}	}	mysql_free_result(res);	return 0;}static int DoService(char *code,char *ocode,char *content,char *msisdn,char *dcode,float fee){	int len,i,type,retval,count,num,flag,state;	MYSQL_ROW row;	MYSQL_RES *res = NULL;	MYSQL_RES *res1 = NULL;	char msg[500],tname[20],otname[20],id[20];	char today[8];	char sql[1000];	char day[20];		type=atoi(ocode);	checksql(content);	len=strlen(content);	state=haveuser(msisdn);	if(state!=1&&state!=2)	{		strcpy(msg,"你还不是玲垅轶事的用户,如需加入请回复33申请定制");		strcpy(sp_id_extern,"");		SendUser(msisdn,msg,dcode,fee,0);	//错误信息		return 0;	}	switch(type)	{		case 1:			trim(content,' ');			upper(content);			if(strcmp(content,"A")==0)			{				getcontent(content,type,msisdn,dcode,fee);			}			else if(strcmp(content,"B")==0)			{				getcontent(content,type,msisdn,dcode,fee);			}			else if(strcmp(content,"C")==0)			{				getcontent(content,type,msisdn,dcode,fee);			}			else			{				if(strcmp(content,"")==0)				{					sprintf(msg,"您回复的内容有错,请查实后正确回复,咨询电话%s",service_phone);					strcpy(sp_id_extern,"1661");					if(state==1)					{						SendUser(msisdn,msg,dcode,fee,1);	//点播					}					if(state==2)					{						SendUser(msisdn,msg,dcode,fee,0);	//免费						}					return 0;								}				for(i=0;i<len;i++)				{					if(content[i]<'0'||content[i]>'9')					{						sprintf(msg,"请选择星座的(1~12)序号回复,预测本周运程,咨询电话%s",service_phone);						strcpy(sp_id_extern,"1661");						if(state==1)						{							SendUser(msisdn,msg,dcode,fee,1);	//点播						}						if(state==2)						{							SendUser(msisdn,msg,dcode,fee,0);	//免费						}						return 0;									}				}				num=atoi(content);				if(num<=0||num>12)				{					sprintf(msg,"请选择星座的(1~12)序号回复,预测本周运程,咨询电话%s",service_phone);					strcpy(sp_id_extern,"1661");					if(state==1)					{						SendUser(msisdn,msg,dcode,fee,1);	//点播					}					if(state==2)					{						SendUser(msisdn,msg,dcode,fee,0);	//免费					}					return 0;					}				sprintf(sql,"SELECT MSG FROM LLYS_LUCK WHERE ID=%d",num);				retval=QuerySQL(sql,&myconn,&res1);				if(retval!=0)				{					writelog(SELF_TYPE,"解签出错!");					return 0;				}				if(res1==NULL)				{					return 0;				}				if(row=mysql_fetch_row(res1))				{					strcpy(msg,row[0]);				}				mysql_free_result(res1);				strcpy(sp_id_extern,"");				if(state==1)				{					SendUser(msisdn,msg,dcode,fee,1);	//点播				}				if(state==2)				{					SendUser(msisdn,msg,dcode,fee,0);	//免费					}				return 0;			}			break;		case 2:			upper(content);			if(strcmp(content,"A")==0)			{				getcontent(content,type,msisdn,dcode,fee);			}			else if(strcmp(content,"B")==0)			{				getcontent(content,type,msisdn,dcode,fee);			}			else if(strcmp(content,"C")==0)			{				getcontent(content,type,msisdn,dcode,fee);			}			else if(strncmp(content,"DA",2)==0||strncmp(content,"XI",2)==0||strncmp(content,"DG",2)==0||strncmp(content,"TF",2)==0)			{				dobet(content,msisdn,dcode,fee,type);			}			else			{				sprintf(msg,"您回复的内容有错,请查实后正确回复,咨询电话%s",service_phone);				strcpy(sp_id_extern,"1662");				if(state==1)				{					SendUser(msisdn,msg,dcode,fee,1);	//点播				}				if(state==2)				{					SendUser(msisdn,msg,dcode,fee,0);	//免费					}				return 0;			}			break;		case 3:			upper(content);

⌨️ 快捷键说明

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