📄 recv_trans.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"#define SELF_TYPE "Trans"#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 ScanMsg();static int SetTrans(char *msisdn,char *code);static char sp_id_extern[20];static char linkid[9];static char service_phone[20];int InitTrans(){ GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone); srand(time(NULL)); return 0;}int DoTrans(){ int retval; retval = ScanMsg(); if(retval < 0) { return 0; } return retval;}static int ScanMsg(){ char sql[2000]; MYSQL_ROW row; MYSQL_RES *res = NULL; int retval,i; float fee,fee_mon; int feetype; char id[11],icpid[3],code[11],msisdn[22],dcode[11]; char day[20]; char msg[500]; memset(sql,0,sizeof(sql)); sprintf(sql, "SELECT ID,ICPID,UPPER(SERVICECODE),SRCTERMID,DCODE,LINKID\ FROM COM_RECV RECV,COD_SERVICE COD\ WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='TR'"); 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(msisdn,row[3]); strcpy(dcode,row[4]); strcpy(linkid,row[5]); sprintf(sql,"UPDATE COM_RECV SET FLAG=1,DEAL_DATE='%s' WHERE ID=%s",getnowdate(day),id); if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"更新接受指令表出错1!"); return 0; } if(SetTrans(msisdn,code) == 0) { writelog(SELF_TYPE,"更新接受指令表出错2!"); return 0; } } mysql_free_result(res); return 0;}static int SetTrans(char *msisdn,char *code){ char sql[2000]; MYSQL_ROW row; MYSQL_RES *res = NULL; char ucode2[50],day[20],desttermid[22]; char *argv[2]; int retval; sprintf(sql,"SELECT UCODE2 FROM COD_TR WHERE UCODE='%s'",code); 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(ucode2,row[0]); mysql_free_result(res); } else { mysql_free_result(res); return 0; } if(splitarg(ucode2,argv,2) != 2) { argv[1] = " "; } if(strncmp(msisdn,"130",3) == 0 || strncmp(msisdn,"131",3) == 0 || strncmp(msisdn,"132",3) == 0 || strncmp(msisdn,"133",3) == 0)// strncmp(msisdn,"134",3) == 0) { strcpy(desttermid,"9020"); } else { strcpy(desttermid,"5566"); } sprintf(sql,"INSERT INTO COM_RECV(ICPID,LINKID,MSGLEVEL,SERVICEID,SERVICECODE,MSGFORMAT,SRCTERMID,ISREPLY,MSGCONTENT,DESTTERMID,TPPID,TPUDHI,RECV_DATE,FLAG)\ VALUES('TR','%s',0,'9999','%s',15,'%s',0,'%s','%s',0,0,'%s',0)", linkid,argv[0],msisdn,argv[1],checksql(desttermid),getnowdate(day)); if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"更新接受指令表出错3!"); return 0; } return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -