📄 cyds.cpp
字号:
/***************************全网联通 少儿才艺大赛*************************** 使用方法: 查询报名是否成功,发送编号到90201066 查询成绩,发送编号到90201069 程序说明: KIND为CY, 扣费代码EQ, 资费2.00元/条 相关表: WEB_ART_B_CLASS 总分类表 WEB_ART_S_CLASS 总分类表里的每个小分类表 WEB_ART_PLAYER_INFO 用户的报名信息表,存放用户的编号,姓名,性别,SID WEB_ART_SCORE 用户的成绩表*/#include <stdio.h>#include <string.h>#include <time.h>#include <stdlib.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 "cyds" //少儿才艺大赛#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 sp_id_extern[20];static char service_phone[20];static char linkid[9];static int ScanMsgSession();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);int Initcyds(){ GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone); return 0;}int Docyds(){ int retval; retval=ScanMsgSession(); return retval;}static int ScanMsgSession(){ MYSQL_RES *res=NULL; MYSQL_ROW row; int retval; float fee; char day[20],sql[500],content[500]; char id[11],icpid[3],code[11],msisdn[22],dcode[11],ocode[20],feetype[3]; 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='CY' limit 60"); retval=QuerySQL(sql,&myconn,&res); if(retval!=0) { writelog(SELF_TYPE,"查询COM_RECV_SESSION表出错!"); 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(content,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,"更新COM_RECV_SESSION表出错!"); mysql_free_result(res); return 0; } DoService(code,ocode,content,msisdn,dcode,fee); } mysql_free_result(res); return 0;}static int DoService(char *code,char *ocode,char *content,char *msisdn,char *dcode,float fee){ MYSQL_RES *res=NULL; MYSQL_ROW row; int retval,i; char sql[500],msg[1000],pname[30],bname[30],sname[30]; char score_first[10],rate_first[10],score_re[10],rate_re[10],score_half[10],rate_half[10],score_last[10],rate_last[10]; trim(content,' '); memset(sql,0,sizeof(sql)); if(strcmp(content,"")==0) //空内容 { sprintf(msg,"您发送的内容有错误,请查实后重新发送,详情请咨询%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); return 0; } else if(strcmp(ocode,"6")==0) //查询报名是否成功,一个编号只对应一个具体的小类 { //查询用户的姓名 sprintf(sql,"SELECT PNAME FROM WEB_ART_PLAYER_INFO WHERE PID='%s' ",content); retval=QuerySQL(sql,&myconn,&res); if(retval!=0) { writelog(SELF_TYPE,"查询WEB_ART_PLAYER_INFO表出错!"); return 0; } if(res==NULL) { return 0; } if(row=mysql_fetch_row(res)) { strcpy(pname,row[0]); mysql_free_result(res); } else { mysql_free_result(res); sprintf(msg,"您还没有报名成功,或者您发送的编号有错误,详情请咨询%s",service_phone); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); return 0; } //查询总分组 sprintf(sql,"SELECT DISTINCT(BNAME) FROM WEB_ART_B_CLASS CLASS, WEB_ART_SCORE SCORE\ WHERE CLASS.BID=SCORE.BID AND SCORE.PID='%s'",content); 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(bname,row[0]); } else { sprintf(msg,"您还没有报名成功,或者您发送的编号有错误,详情请咨询%s",service_phone); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); mysql_free_result(res); return 0; } mysql_free_result(res); //查询小分组 sprintf(sql,"SELECT SNAME FROM WEB_ART_S_CLASS CLASS, WEB_ART_SCORE SCORE\ WHERE CLASS.SID=SCORE.SID AND SCORE.PID='%s'",content); 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(sname,row[0]); } else { sprintf(msg,"您还没有报名成功,或者您发送的编号有错误,详情请咨询%s",service_phone); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); mysql_free_result(res); return 0; } mysql_free_result(res); sprintf(msg,"%s,%s.您已报名参加%s的%s类才艺大赛,祝您在比赛中取的好成绩!",pname,content,bname,sname); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); //扣费 return 0; } else if(strcmp(ocode,"9")==0) //查询成绩 { sprintf(sql,"SELECT SCORE_FIRST,RATE_FIRST,SCORE_RE,RATE_RE,SCORE_HALF,RATE_HALF,\ SCORE_LAST,RATE_LAST FROM WEB_ART_SCORE WHERE PID='%s' ",content); 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(score_first,row[0]); strcpy(rate_first,row[1]); strcpy(score_re,row[2]); strcpy(rate_re,row[3]); strcpy(score_half,row[4]); strcpy(rate_half,row[5]); strcpy(score_last,row[6]); strcpy(rate_last,row[7]); } else { sprintf(msg,"当前还没有成绩出来,或者您发送的编号有错误,详情请咨询%s",service_phone); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); mysql_free_result(res); return 0; } mysql_free_result(res); if(strcmp(score_first,"")==0 || strcmp(rate_first,"")==0) { sprintf(msg,"当前还没有成绩出来,请稍后再试,详情请咨询%s",service_phone); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); return 0; } else if(strcmp(score_re,"")==0 || strcmp(rate_re,"")==0) { sprintf(msg,"您的初赛成绩为:%s,支持率为:%s票.",score_first,rate_first); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); return 0; } else if(strcmp(score_half,"")==0 || strcmp(rate_half,"")==0) { sprintf(msg,"您的初赛成绩为:%s,支持率为:%s票.复赛成绩为:%s,支持率为:%s票.",score_first,rate_first,score_re,rate_re); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); return 0; } else if(strcmp(score_last,"")==0 || strcmp(rate_last,"")==0) { sprintf(msg,"您的初赛成绩:%s支持率:%s;复赛成绩:%s支持率:%s;半决赛成绩:%s支持率:%s",score_first,rate_first,score_re,rate_re,score_half,rate_half); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); return 0; } else { sprintf(msg,"您的初赛成绩:%s支持率:%s;复赛成绩:%s支持率:%s;半决赛成绩:%s支持率:%s;决赛成绩:%s支持率:%s",score_first,rate_first,score_re,rate_re,score_half,rate_half,score_last,rate_last); sprintf(sp_id_extern,"%s%s",code,ocode); SendUser(msisdn,msg,dcode,fee,1); return 0; } } else { sprintf(msg,"您发送的内容有误,请查实后重新发送,详情请咨询%s",service_phone); 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 + -