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

📄 zfy5d.cpp

📁 移动梦网平台主程序
💻 CPP
字号:
#include <stdio.h>#include <string.h>#include <time.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.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        "zfy5d"#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 sp_id_extern[20];static char linkid[9];static char service_phone[20];static int ScanMsg();static int ScanMsgSession();static int DoService(char *code,char *content,char *msisdn,char *dcode,float fee,int num);static int getinfo(char *msisdn,char *dcode,float fee,char *code,int num);static int SendUser(char *msisdn,char *msg,char *dcode,float fee,int flag);int Initzfy5d(){	GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone);	srand(time(NULL));	return 0;}int Dozfy5d(){	int retval;	retval = ScanMsg();		return retval;}static int getrand(int min_num,int max_num){	float retval;	int i;		retval = (float)(rand())/(float)(RAND_MAX);	retval = retval * (max_num-min_num);	i = (int)(retval)+min_num;	if(i == 0) i = 1;	return i;}static int ScanMsg(){	char sql[500];	MYSQL_ROW row;	MYSQL_RES *res = NULL;	int retval,i,want_num,send_num;	float fee;	char id[11],icpid[3],code[11],msisdn[22],msg[161],dcode[11];	char day[20];		memset(sql,0,sizeof(sql));		sprintf(sql,	        "SELECT ID,ICPID,UPPER(SERVICECODE),SRCTERMID,MSGCONTENT,DCODE,FEE,BITLONG,LINKID	         FROM COM_RECV RECV,COD_SERVICE COD	         WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='5D' limit 20");	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]);		send_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;		}		DoService(code,msg,msisdn,dcode,fee,send_num);	}	mysql_free_result(res);	return 0;}static int DoService(char *code,char *content,char *msisdn,char *dcode,float fee,int num){	char sql[500];	MYSQL_ROW row;	MYSQL_RES *res = NULL;	int retval,count,n;	char id[11],day[20],msg[100];		memset(sql,0,sizeof(sql));	n=0;	sprintf(sql,"SELECT COUNT(*) FROM USER_SWEET WHERE MSISDN='%s'",msisdn);	retval=QuerySQL(sql,&myconn,&res);	if(retval!=0)	{		writelog(SELF_TYPE,"查询user_SWEET出错!");		return 0;	}	if(res==NULL)	{		return 0;	}	if(row=mysql_fetch_row(res))	{		count=atoi(row[0]);			}	mysql_free_result(res);		sprintf(sql,"INSERT INTO USER_SWEET(MSISDN,NUM,REG_DATE,KIND) VALUES('%s',1,'%s','%s')",msisdn,getnowdate(day),code);	if(DoSQL(sql,&myconn)!=0)	{		writelog(SELF_TYPE,"插入user_sweet信息出错!");		return 0;	}	if(count==0)	{		n=1;	}	else	{		n=0;	}	getinfo(msisdn,dcode,fee,code,num);		memset(sql,0,sizeof(sql));	/*	if(n==1)	{		if(msisdn[2]>'3')        //修改于2004.08.30		{				//sprintf(msg,"想让您的朋友不用按键就看到你信息,那就快发送MT到5566吧,这可是时尚一族不可不玩的新玩意儿.咨询025-3220691(本条信息免费)");			sprintf(msg,"想让您的朋友不用按键就看到你信息,那就快发送MT到5566吧,这可是时尚一族不可不玩的新玩意儿.咨询025-3220691");		}		else		{			//sprintf(msg,"想让您的朋友不用按键就看到你信息,那就快发送MT到8566吧,这可是时尚一族不可不玩的新玩意儿.咨询025-3220691(本条信息免费)");			sprintf(msg,"想让您的朋友不用按键就看到你信息,那就快发送MT到8566吧,这可是时尚一族不可不玩的新玩意儿.咨询025-3220691");		}		SendUser(icpid,msisdn,msg,dcode,fee,1);	}*/	return 0;}static int getinfo(char *msisdn,char *dcode,float fee,char *code,int num){	char sql[500],msg[500],added[30];	MYSQL_ROW row;	MYSQL_RES *res = NULL;	int retval,min1,max1,min2,max2,i,amount,j;	char id[11],day[22],kind[5];		i=0;j=0;	//sprintf(added,"\n如需更多,请再发送%s",code);	memset(sql,0,sizeof(sql));	sprintf(sql,"SELECT KIND FROM MENU_ZF WHERE SUBSTRING(%s,1,8)>=SUBSTRING(BEGIN_DATE,1,8) AND SUBSTRING(%s,1,8)<=SUBSTRING(END_DATE,1,8)",getnowdate(day),getnowdate(day));	retval=QuerySQL(sql,&myconn,&res);	if(retval!=0)	{		writelog(SELF_TYPE,"查询kind出错!");		return 0;	}	if(res==NULL)	{		return 0;	}	if(row=mysql_fetch_row(res))	{		strcpy(kind,row[0]);		mysql_free_result(res);		sprintf(sql,"SELECT MIN(ID),MAX(ID) FROM INFO_ZF WHERE KIND='%s'",kind);		retval=QuerySQL(sql,&myconn,&res);		if(retval!=0)		{			writelog(SELF_TYPE,"查询最大ID号出错!");			return 0;		}		if(res==NULL)		{			return 0;		}		if(row=mysql_fetch_row(res))		{			min1=atoi(row[0]);			max1=atoi(row[1]);		}		mysql_free_result(res);		sprintf(sql,"SELECT INFO FROM INFO_ZF WHERE ID>=%d AND ID<=%d AND KIND='%s' ORDER BY RAND() LIMIT %d",min1,max1,kind,num);		retval=QuerySQL(sql,&myconn,&res);		if(retval!=0)		{			writelog(SELF_TYPE,"查询随机信息出错1!");			return 0;		}		if(res==NULL)		{			return 0;		}		while(row=mysql_fetch_row(res))		{			strcpy(msg,row[0]);			/*			if(j==4)			{				strcat(msg,added);		//一条短信可能超长			}			*/						sprintf(sp_id_extern,"");			SendUser(msisdn,msg,dcode,fee,1);			j++;		}		mysql_free_result(res);	}	else	{		mysql_free_result(res);		sprintf(sql,"SELECT MIN(ID),MAX(ID) FROM INFO_ZF WHERE KIND='0'");		retval=QuerySQL(sql,&myconn,&res);		if(retval!=0)		{			writelog(SELF_TYPE,"查询最大ID号出错!");			return 0;		}		if(res==NULL)		{			return 0;		}		if(row=mysql_fetch_row(res))		{			min1=atoi(row[0]);			max1=atoi(row[1]);		}		mysql_free_result(res);		sprintf(sql,"SELECT INFO FROM INFO_ZF WHERE ID>=%d AND ID<=%d AND KIND='0' ORDER BY RAND() LIMIT %d",min1,max1,num);		retval=QuerySQL(sql,&myconn,&res);		if(retval!=0)		{			writelog(SELF_TYPE,"查询随机信息出错1!");			return 0;		}		if(res==NULL)		{			return 0;		}		while(row=mysql_fetch_row(res))		{			strcpy(msg,row[0]);			/*			if(j==4)			{				strcat(msg,added);			//一条短信可能超长			}			*/			sprintf(sp_id_extern,"");			SendUser(msisdn,msg,dcode,fee,1);			j++;		}		mysql_free_result(res);	}	memset(sql,0,sizeof(sql));	strcpy(msg,"");	strcpy(added,"");	/*	sprintf(msg,"如需更多请继续点播66,或发送999点播听得见的语音短信,送出更真挚的祝福");	sprintf(sp_id_extern,"");	SendUser(msisdn,msg,dcode,fee,1);	*/	return 0;}	static int SendUser(char *msisdn,char *msg,char *dcode,float fee,int flag){	SEND_STRUC sendstruc;	char buf[100];	memset(&sendstruc,0,sizeof(sendstruc));	strcpy(sendstruc.icpid,"MO");	sendstruc.nMsgLevel = 3;	strcpy(sendstruc.sServiceID,dcode);	sendstruc.nMsgFormat = MSG_FORMAT_ASCII;	strcpy(sendstruc.sValidTime,"");	strcpy(sendstruc.sAtTime,"");	strcpy(sendstruc.sSrcTermID,SP_ID);	strcat(sendstruc.sSrcTermID,sp_id_extern);	strcpy(sendstruc.sDesTermID,msisdn);	sendstruc.sFeeCode = fee;	sendstruc.cFeeUserType=0;	strcpy(sendstruc.sFeeTerminalID,"");	sendstruc.cTpPid = 0;	sendstruc.cTpUdhi = 0;	strcpy(sendstruc.step,"9");	getnowdate(sendstruc.Send_Date);	strcpy(sendstruc.sMsgContent,msg);	checksql(sendstruc.sMsgContent);	strcpy(sendstruc.linkid,linkid);		switch(flag)	{		case 0:		//免费、错误信息			strcpy(sendstruc.sServiceID,"ERROR");			strcpy(sendstruc.sFeeType,"01");			sendstruc.nNeedReply = 0;			break;		case 1:		//按条点播(收费)			strcpy(sendstruc.sFeeType,"02");			sendstruc.nNeedReply = 0;			break;		case 2:		//包月点播(不收费的)			strcpy(sendstruc.sFeeType,"03");			sendstruc.nNeedReply = 1;			break;		case 3:		//包月扣费			strcpy(sendstruc.sFeeType,"03");			sendstruc.nNeedReply = 2;			break;		case 8:		//定购成功包			strcpy(sendstruc.sFeeType,"08");			sendstruc.nNeedReply = 1;			break;		case 9:		//取消成功包			strcpy(sendstruc.sFeeType,"09");			sendstruc.nNeedReply = 1;			break;		default:	//其它						strcpy(sendstruc.sServiceID,"ERROR");			strcpy(sendstruc.sFeeType,"01");			sendstruc.nNeedReply = 0;			break;	}	SendMsg(&sendstruc,&myconn);	return 0;}

⌨️ 快捷键说明

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