📄 sendwait.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 "sendwait"#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 char linkid[9];static char service_phone[20];static int ScanMsg();int InitSendwait(){ GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone); srand(time(NULL)); return 0;}int DoSendwait(){ int retval; retval = ScanMsg(); if(retval < 0) { sleep(2); return 0; } return retval;}static int ScanMsg(){ char sql[2000]; MYSQL_ROW row; MYSQL_RES *res = NULL; int retval,rec_num; SEND_STRUC sendstruc; char day[20],id[20]; char s_msisdn[200],s_scr[200],s_fid[200],s_msg[2000],s_step[10],demo[100]; getnowdate(day); rec_num = 0; memset(sql,0,sizeof(sql)); sprintf(sql, "SELECT ID,NEEDREPLY,MSGLEVEL,SERVICEID,MSGFORMAT,\ FEETYPE,FEECODE,VALIDTIME,ATTIME,SRCTERMID,\ DESTTERMID,MSGCONTENT,FEEUSERTYPE,FEETERMINALID,\ TPPID,TPUDHI,STEP,ICPID,DEMO,LINKID\ FROM COM_SEND_WAIT\ WHERE SEND_DATE<='%s'\ ORDER BY STEP,ID\ LIMIT 0,20",day); retval = QuerySQL(sql,&myconn,&res); if(retval != 0) { writelog(SELF_TYPE,"查询指令失败"); return 0; } if(res == NULL) { return 0; } while( row = mysql_fetch_row(res)) { rec_num ++; strcpy(id,row[0]); sendstruc.nNeedReply = atoi(row[1]); sendstruc.nMsgLevel = atoi(row[2]); strcpy(sendstruc.sServiceID,row[3]); sendstruc.nMsgFormat = atoi(row[4]); strcpy(sendstruc.sFeeType,row[5]); sendstruc.sFeeCode = atof(row[6]); strcpy(sendstruc.sValidTime,row[7]); strcpy(sendstruc.sAtTime,row[8]); strcpy(sendstruc.sSrcTermID,row[9]); strcpy(sendstruc.sDesTermID,row[10]); strcpy(sendstruc.sMsgContent,row[11]); sendstruc.cFeeUserType = atoi(row[12]); strcpy(sendstruc.sFeeTerminalID,row[13]); sendstruc.cTpPid=0; sendstruc.cTpUdhi=0; strcpy(sendstruc.step,row[16]); getnowdate(sendstruc.Send_Date); strcpy(sendstruc.icpid,row[17]); strcpy(demo,row[18]); strcpy(sendstruc.linkid,row[19]); sprintf(sql,"DELETE FROM COM_SEND_WAIT WHERE ID=%s",id); if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"更新数据库出错!"); continue; } if(sendstruc.nMsgFormat==0) { sendstruc.nMsgFormat = 15; } strcpy(s_msisdn,sendstruc.sDesTermID);checksql(s_msisdn); if(strncmp(s_msisdn,"130",3) == 0 || strncmp(s_msisdn,"131",3) == 0 || strncmp(s_msisdn,"132",3) == 0 || strncmp(s_msisdn,"133",3) == 0)// strncmp(s_msisdn,"134",3) == 0) { strncpy(sendstruc.sSrcTermID,"9020",4); strcpy(sendstruc.icpid,"UN"); } else { strncpy(sendstruc.sSrcTermID,"5566",4); strcpy(sendstruc.icpid,"MO"); } strcpy(s_scr,sendstruc.sSrcTermID); checksql(s_scr); strcpy(s_fid,sendstruc.sFeeTerminalID); checksql(s_fid); strcpy(s_msg,sendstruc.sMsgContent); checksql(s_msg); strcpy(s_step,sendstruc.step); checksql(s_step); sprintf(sql, "INSERT INTO COM_SEND(ICPID,NEEDREPLY,LINKID,MSGLEVEL,SERVICEID,MSGFORMAT,\ FEETYPE,FEECODE,VALIDTIME,ATTIME,SRCTERMID,\ DESTTERMID,MSGCONTENT,FEEUSERTYPE,FEETERMINALID,\ TPPID,TPUDHI,SEND_DATE,STEP,DEMO)\ VALUES('%s',%d,'%s',%d,'%s',%d,'%s',%.2f,'%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s','%s')", sendstruc.icpid, sendstruc.nNeedReply, sendstruc.linkid, sendstruc.nMsgLevel, sendstruc.sServiceID, sendstruc.nMsgFormat, sendstruc.sFeeType, sendstruc.sFeeCode, sendstruc.sValidTime, sendstruc.sAtTime, s_scr, s_msisdn, s_msg, sendstruc.cFeeUserType, s_fid, sendstruc.cTpPid, sendstruc.cTpUdhi, sendstruc.Send_Date, s_step, demo); if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"发送信息错误!"); return -1; } } mysql_free_result(res); return rec_num;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -