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

📄 error.cpp

📁 移动梦网平台主程序
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////////////////		          用户错误信息处理/////////////////////////////////////////////////////////////////////////////////////////说明://	(1) 如果用户发送了错误的信息,将用点播代码下行//	//							       CL//						            06.07.29		///////////////////////////////////////////////////////////////////////////////////////	#include <stdio.h>#include <string.h>#include <stdlib.h>//#define  WINDOWS_NT#ifdef   WINDOWS_NT#include <winsock.h>#pragma comment (lib,"ws2_32.lib")#include  <mysql.h>#pragma comment(lib,"libmySQL.lib")#include "./include/define.h"#include "./include/sm_tools.h"#include "./include/sm_db.h"#define INIFILE "./config/sm.ini"#define sleep    Sleep#else#define  GetProfileStringMe GetProfileString#include <unistd.h>#include "mysql/mysql.h"#include "../include/define.h"#include "../include/sm_tools.h"#include "../include/sm_db.h" #define INIFILE "../config/sm.ini" #endif#define DEBUG  #define SELF_TYPE 	"error"//来自main.cppextern MYSQL *myconn;                                   //主函数已经初始化,所有的模块共用一个长连接         extern char  SP_ID[24];               			//特服号,在这里是5566//只在本文件中所用的全局变量,用static 修饰:static char service_phone[24];      			//客服电话 static char linkid[32];static char msisdntype[4];static char sp_id_extern[24];                           //servicecode //只在本文件中所用的函数,用static 修饰:static int ScanMsgSession();                                                    		//本模块只是从com_recv_session表中取出相关信息static int DoScanMsgSession(int id,char *servicecode,char *srctermid,char *msg,char *dcode,char *feetype,float fee);static int SendUser(char *msisdn,char *msg,char *dcode,float fee,char *fee_msisdn,int flag);static int InsertUser(char *msisdn,char *msg);static int GetMsg(char *msg);//初始化本业务,放入主线程的InitPara()模块中int InitError(){	GetProfileStringMe(INIFILE,"COMMON","TELEPHONE","",service_phone);        //从配置文件读取客服电话	return 0;}//本业务入口,放入主线程的 DoThread()模块,在main.h中声明int DoError(){	int retval;	retval=ScanMsgSession();         //处理COM_RECV_SESSION	sleep(1);		return retval;}	//从COM_RECV_SESSION中取的数据static int ScanMsgSession(){	MYSQL_RES *res =NULL;	MYSQL_ROW row;	int  id;	char sql[512];	char servicecode[12];    	char srctermid[24];	char msg[256];	char dcode[]="QYZX";	char feetype[]="2";	float fee=2.0;	memset(sql,0,sizeof(sql));		sprintf(sql,"SELECT ID,SRCTERMID,UPPER(MSGCONTENT),LINKID\	           FROM COM_RECV RECV\		  WHERE RECV.FLAG ='0' AND DESTTERMID='9193' LIMIT 20");                 if(QuerySQL(sql,&myconn,&res)!=0)		{		writelog(SELF_TYPE,"查询USER_TABLE失败");        	return -1; 		}	if(res ==NULL)		{		return -1;		}    	while(row =mysql_fetch_row(res))		{		id =atoi(row[0]);		strcpy(srctermid,row[1]);		strcpy(msg,row[2]);		strcpy(linkid,row[3]);			DoScanMsgSession(id,servicecode,srctermid,msg,dcode,feetype,fee);			}	mysql_free_result(res);	        		          	return 0;}static int GetMsg(char *msg){	MYSQL_RES *res=NULL;	MYSQL_ROW row;		char sql[512];	char ucode[256];	int  flag=0;		memset(ucode,0,sizeof(ucode));	memset(sql,0,sizeof(sql));		sprintf(sql,"SELECT UCODE,FLAG FROM USER_TABLE");	//puts(sql);		if(QuerySQL(sql,&myconn,&res)!=0)		{		writelog(SELF_TYPE,"查询USER_TABLE失败");        	return -1; 		}	if(res ==NULL)		{		return -1;		}    	while(row =mysql_fetch_row(res))		{		strcpy(ucode,row[0]);		flag =atoi(row[1]);				//puts(ucode);		if(flag ==1)			{			if(strncmp(msg,ucode,strlen(ucode))==0)				{				mysql_free_result(res);					return 1;				}				}		else    {			if(strcmp(msg,ucode)==0)				{				mysql_free_result(res);				return 1;					}			}		         	}	mysql_free_result(res);	return 0;}//处理COM_RECV_SESSION中取得的信息static int  DoScanMsgSession(int id,char *servicecode,char *srctermid,char *msg,char *dcode,char *feetype,float fee){	      	int  num =0;                             //选手的编号	int  total=0;	char sql[1024];	char msgcontent[256];	memset(sql,0,sizeof(sql));    	memset(msgcontent,0,sizeof(msgcontent));	chop(msg);	trim(msg,' ');	       	if(GetMsg(msg)==0)		{		sprintf(sql,"UPDATE COM_RECV SET FLAG=1,DEAL_DATE=now()+0 WHERE ID=%d",id);		if(DoSQL(sql,&myconn)!=0)			{			writelog(SELF_TYPE,"更新COM_RECV_SESSION失败");			return -1;			}		strcpy(msgcontent,"您发送的内容有误,请重新发送.");		SendUser(srctermid,msgcontent,dcode,fee,srctermid,2);		}    	return 0;}static int InsertUser(char *msisdn,char *msg){	char sql[512];	memset(sql,0,sizeof(sql));	sprintf(sql,"INSERT INTO USER_QYZX(ICPID,MSISDN,MSG,REG_DATE)\                     VALUES('MO','%s','%s',now()+0)",\		     msisdn,		     msg		     );	if(DoSQL(sql,&myconn)!=0)		{		writelog(SELF_TYPE,"插入USER表失败");		return 0;		}	return 0;}//发送模块static int SendUser(char *msisdn,char *msg,char *dcode,float fee,char *fee_msisdn,int flag){	SEND_STRUC sendstruc;	int linkid_flag;	memset(&sendstruc,0,sizeof(sendstruc));		if(strcmp(msisdn,fee_msisdn) == 0)		{		sendstruc.cFeeUserType=0;		strcpy(sendstruc.sFeeTerminalID,"");		}	else		{		sendstruc.cFeeUserType=3;		strcpy(sendstruc.sFeeTerminalID,fee_msisdn);		}	strcpy(sendstruc.icpid,"MO");	sendstruc.nMsgLevel = 3;	strcpy(sendstruc.sServiceID,dcode);	sendstruc.nMsgFormat = 15;	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.cTpPid = 0;	sendstruc.cTpUdhi = 0;	strcpy(sendstruc.step,"9");	getnowdate(sendstruc.Send_Date);	strcpy(sendstruc.sMsgContent,msg);	checksql(sendstruc.sMsgContent);	strcpy(sendstruc.linkid,linkid);	//strcpy(sendstruc.DesTermIDType,msisdntype);	linkid_flag=1;	switch(flag)		{		case 0:		//免费、错误信息			strcpy(sendstruc.sServiceID,"FREE");			strcpy(sendstruc.sFeeType,"01");			sendstruc.nNeedReply = 0;			break;		case 2:		//按条点播(收费)			strcpy(sendstruc.sFeeType,"02");			sendstruc.nNeedReply = 0;			break;		case 3:		//包月点播(不收费的)			strcpy(sendstruc.sFeeType,"03");			sendstruc.nNeedReply = 0;			break;		case 5:		//包月扣费			strcpy(sendstruc.sFeeType,"03");			sendstruc.nNeedReply = 2;			break;			default:	//其它						strcpy(sendstruc.sServiceID,"FREE");			strcpy(sendstruc.sFeeType,"01");			sendstruc.nNeedReply = 0;			break;		}	SendMsg(&sendstruc,&myconn);	return 0;}

⌨️ 快捷键说明

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