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

📄 exit.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 	"exit"//来自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 PutMsg(char *msisdn);//初始化本业务,放入主线程的InitPara()模块中int InitExit(){	GetProfileStringMe(INIFILE,"COMMON","TELEPHONE","",service_phone);        //从配置文件读取客服电话	return 0;}//本业务入口,放入主线程的 DoThread()模块,在main.h中声明int DoExit(){	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,UPPER(MSGCONTENT)\	           FROM COM_RECV RECV\		  WHERE RECV.FLAG ='0'  AND (MSGCONTENT='0000' OR MSGCONTENT='00000') LIMIT 20");         //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))		{		id =atoi(row[0]);		strcpy(msg,row[1]);				memset(sql,0,sizeof(sql));		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;			}						DoScanMsgSession(id,servicecode,srctermid,msg,dcode,feetype,fee);			        			}	mysql_free_result(res);	        		          	return 0;}static int PutMsg(char *msisdn){	MYSQL_RES *res=NULL;	MYSQL_ROW row;			char sql[512];	char usertable[256];			memset(usertable,0,sizeof(usertable));	memset(sql,0,sizeof(sql));		sprintf(sql,"SELECT USER_TABLE FROM USER_TABLE WHERE FLAG =0");	//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(usertable,row[0]);		//puts(usertable);		if(strlen(usertable)>1)			{			memset(sql,0,sizeof(sql));			sprintf(sql,"UPDATE %s SET FLAG =0 WHERE MSISDN='%s' ",usertable,msisdn);			//puts(sql);			if(DoSQL(sql,&myconn)!=0)				{				writelog(SELF_TYPE,"修改usertable flag 失败");				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,' ');	       	PutMsg(srctermid);			    	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 + -