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