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

📄 eqall.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	"eqall"

#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 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 char sp_id_extern[20];
static char linkid[9];
static char service_phone[20];

int InitEQALL()
{	
	GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone);
	srand(time(NULL));
	return 0;
}

int DoEQALL()
{
	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='CS' 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 DoService(char *code,char *ocode,char *content,char *msisdn,char *dcode,float fee)
{
	int len,type,retval,max,state;
	MYSQL_ROW row;
	MYSQL_RES *res = NULL;
	char msg[500],tname[20],otname[20],id[20];
	char tmpbuf[100],months[3];
	char sql[2000];
	char osex[10];
	
	type=atoi(ocode);
	trim(content,' ');
	upper(content);
	checksql(content);
	len=strlen(content);
	if(len==0)
	{
		sprintf(msg,"您没有输入测试的答案,请正确输入");
		sprintf(sp_id_extern,"106%d",type);
		SendUser(msisdn,msg,dcode,fee,1);
		return 0;
	}
	sprintf(sql,"SELECT COUNT(*) FROM QUESTION_EQ WHERE ID=%d",type);
	retval=QuerySQL(sql,&myconn,&res);
	if(retval!=0)
	{
		writelog(SELF_TYPE,"统计题号出错!");
		return 0;
	}
	if(res==NULL)
	{
		return 0;
	}
	if(row=mysql_fetch_row(res))
	{
		max=atoi(row[0]);
	}
	mysql_free_result(res);
	if(max!=1)
	{
		type=1;
	}
	if(abs(strcmp(content,"A"))&&abs(strcmp(content,"B"))&&abs(strcmp(content,"C"))&&abs(strcmp(content,"D"))
		&&abs(strcmp(content,"E"))&&abs(strcmp(content,"F")))
	{
		strcpy(content,"A");
	}
	
	sprintf(sql,"SELECT %s FROM QUESTION_EQ WHERE ID=%d",content,type);
	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(msg,row[0]);
	}	
	mysql_free_result(res);
	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 + -