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

📄 quest_zldbp.cpp

📁 移动梦网平台主程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}static int ScanMsgSession(){	int retval,i,feetype;	float fee,fee_mon;	char id[11],icpid[3],code[11],msisdn[22],dcode[11];	char day[20],msg[500],question[500],answer[10];	char sql[500];           	MYSQL_ROW row;           	MYSQL_RES *res = NULL;   		memset(sql,0,sizeof(sql));		sprintf(sql,"SELECT ID,ICPID,UPPER(SERVICECODE),MSGCONTENT,SRCTERMID,DCODE,FEE_MON 				 FROM COM_RECV_SESSION RECV,COD_SERVICE_SESSION COD 				 WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='ZL' 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(msg,row[3]);		strcpy(msisdn,row[4]);		strcpy(dcode,row[5]);		fee_mon=atof(row[6]);				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,"更新接受指令表出错!");			return 0;		}				trim(msg,' ');		upper(msg);		//注册			if (strcmp(msg,"ZL")==0)		{			retval=HaveUser(msisdn);			//用户存在但已退出			if (retval==1) 			{				sprintf(sql,"UPDATE USER_ZLDBP SET FLAG='1',FREE_FLAG='0',SCORE='0',REG_DATE='%s',					MONTH_FLAG='0' WHERE MSISDN='%s'",getnowdate(day),msisdn);				if (DoSQL(sql,&myconn)!=0)				{					writelog(SELF_TYPE,"更新数据库出错!");					return 0;				}				//2003。02。08改,将联通信息中的资费去除				if(msisdn[2]>'3')          //修改于2004.08.30				{					sprintf(msg,"您已成功加入智力大比拼游戏.资费:5元/月.退出请发ZLTC.收到题目后,请选择A,B,C并直接回复.客服电话%s",service_phone);				}				else				{					sprintf(msg,"您已成功加入智力大比拼游戏.退出请发ZLTC.收到题目后,请选择A,B,C并直接回复.客服电话%s",service_phone);				}				strcpy(sp_id_extern,"");				SendUser(msisdn,msg,dcode,fee_mon,8);		//包月订购			}       			//用户不存在			else if (retval==2)			{				sprintf(sql,"INSERT INTO USER_ZLDBP(MSISDN,FLAG,FREE_FLAG,REG_DATE,MONTH_FLAG) 						VALUES('%s','1','0','%s','0')",						msisdn,getnowdate(day));				if (DoSQL(sql,&myconn)!=0)				{					writelog(SELF_TYPE,"更新数据库出错!");					return 0;				}				//2003。02。08改,将联通信息中的资费去除				if(msisdn[2]>'3')           //修改于2004.08.30				{					sprintf(msg,"您已成功加入智力大比拼游戏.资费:5元/月.退出请发ZLTC.收到题目后,请选择A,B,C并直接回复.客服电话%s",service_phone);				}				else				{					sprintf(msg,"您已成功加入智力大比拼游戏.退出请发ZLTC.收到题目后,请选择A,B,C并直接回复.客服电话%s",service_phone);				}								strcpy(sp_id_extern,"");				SendUser(msisdn,msg,dcode,fee_mon,8);		//包月订购			}				//发送题目			if(getquestion(question,answer) != 1)			{				return 0;			}			checksql(answer);			sprintf(sql ,			        "UPDATE USER_ZLDBP			         SET ANSWER='%s' ,END_FLAG='0',DOWN_NUM=DOWN_NUM+1,RECENT_DATE='%s'		        	 WHERE MSISDN='%s'",		        	answer,getnowdate(day),msisdn);			if(DoSQL(sql,&myconn) != 0)			{				writelog(SELF_TYPE,"更新数据库出错!");				return 0;			}			sprintf(msg,"%s",question);			strcpy(sp_id_extern,"210");			SendUser(msisdn,msg,dcode,fee_mon,2);		//包月点播		}			//判断答案,给出新题		else		{			CheckAnswer(msg,msisdn);			strcpy(sp_id_extern,"210");			SendUser(msisdn,msg,dcode,fee_mon,2);		//包月点播		}	}	mysql_free_result(res);		return 0;}//判别答案static int CheckAnswer(char *msg, char *msisdn){	char question[500],answer[10],day[30];	int retval;	int con_ok_num,score,step;	char sql[1000];           	MYSQL_ROW row;           	MYSQL_RES *res = NULL;   			trim(msg,' ');	upper(msg);	//取出一个新题	if(getquestion(question,answer) != 1)	{		return 0;	}	checksql(answer);	sprintf(sql,	        "SELECT END_FLAG,ANSWER,CON_OK_NUM,SCORE,STEP	         FROM USER_ZLDBP WHERE MSISDN='%s' AND FLAG='1'",  	         msisdn);	retval = QuerySQL(sql,&myconn,&res);	if(retval != 0)	{		writelog(SELF_TYPE,"查询指令失败");		return 0;	}	if(res == NULL)	{		return 0;	}	if( row = mysql_fetch_row(res))	{		if(strcmp(row[1],msg)==0)  /*答对了*/		{			con_ok_num = atoi(row[2]);			score = atoi(row[3]);			step = atoi(row[4]);			con_ok_num ++;			score += 10;			if(con_ok_num >= OK_NUMS)			{				con_ok_num = 0;				score+=10;				step ++;				sprintf(msg,"您答对了.\n%s",question);			}			else			{				sprintf(msg,"您答对了.\n%s",question);			}			sprintf(sql,			        "UPDATE USER_ZLDBP 			         SET END_FLAG='1',			             OK_NUM = OK_NUM + 1,			             DOWN_NUM = DOWN_NUM+1,			             SCORE = %d,			             CON_OK_NUM = %d,			             STEP = %d,			             ANSWER = '%s',			             RECENT_DATE='%s'			         WHERE MSISDN='%s'",			        score,con_ok_num,step,answer,getnowdate(day),msisdn);		}		else	/*答错了*/		{			sprintf(msg,"您答错了,答案是%s.\n%s",row[1],question);			sprintf(sql,			        "UPDATE USER_ZLDBP 			         SET END_FLAG='1',			             ANSWER='%s',			             CON_OK_NUM = 0,			             DOWN_NUM = DOWN_NUM + 1,			             RECENT_DATE='%s'			         WHERE MSISDN='%s'",			        answer,getnowdate(day),msisdn);		}		if(DoSQL(sql,&myconn) != 0)		{			writelog(SELF_TYPE,"更新接受指令表出错!");			return 0;		}	}	else	{		strcpy(msg,"欢迎参加全城智力大比拼游戏,答对一题加10分,连对5题升一级!");		if(msisdn[2]>'3')       //修改于2004.08.30		{			strcat(msg,"要参加这个游戏,请发送ZL到5566。");		}		else		{			strcat(msg,"要参加这个游戏,请发送ZL到9020。");		}	}	mysql_free_result(res);	return 0;}//取题目和标准答案static int getquestion(char *question,char *answer){	int id,retval;	char sql[500];           	MYSQL_ROW row;           	MYSQL_RES *res = NULL;   	srand(time(NULL));	id = (int)((float)(rand())/(float)(RAND_MAX) * QUESTIONNUM) + 1;	sprintf(sql,	       	"SELECT LOCK1,KEY1	       	FROM QUESTION	       	WHERE ID>=%d LIMIT 0,1",	        id);	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(question,row[0]);		strcpy(answer,row[1]);		trim(answer,' ');		mysql_free_result(res);		return 1;		}	mysql_free_result(res);	return 0;}//判断是不是已注册用户//1:存在未注册;    2:不存在;	3:存在已注册      9:二次确认中static int HaveUser(char *msisdn){	int flag,retval;	char sql[500];           	MYSQL_ROW row;           	MYSQL_RES *res = NULL;   		sprintf(sql,"SELECT MSISDN,FLAG FROM USER_ZLDBP WHERE MSISDN='%s'",msisdn);	retval = QuerySQL(sql,&myconn,&res);    	if(retval != 0)    	{        	writelog(SELF_TYPE,"查询指令失败");        	return 0;    	}    	if(res == NULL)    	{        	return 0;    	}		if ( row = mysql_fetch_row(res))	{		flag=atoi(row[1]);		mysql_free_result(res);		if (flag==1)		{						return 3;		}		else if(flag==9)		{			return 9;		}		else		{					return 1;		}	}		else	{		mysql_free_result(res);		return 2;	}}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 + -