📄 point.cpp
字号:
{ sprintf(msg,"您未定制由南京宁网公司提供的短信业务.感谢您使用我们的短信服务!咨询电话%s",service_phone); } else { sprintf(msg,"您未定制由南京宁网公司提供的短信业务.感谢您使用我们的短信服务!咨询电话%s",service_phone); } } else { while(row = mysql_fetch_row(res)) { count ++; sprintf(msg,"您已成功取消%s,感谢您使用我们的短信服务!咨询电话%s",row[0],service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,9); //取消包 } mysql_free_result(res); } strcpy(buf_num,""); } for (i=0;i<table_num;i++) { sprintf(sql,"UPDATE %s SET FLAG='0',CANCEL_DATE='%s_all'\ WHERE FLAG='1' AND MSISDN='%s'",*(table_name+i),getnowdate(day),checksql(msisdn)); retval = DoSQL(sql,&myconn); if(retval != 0) { writelog(SELF_TYPE,"取消全部业务出错!"); return 0; } } if(count == 0) { sprintf(msg,"您未定制由南京宁网公司提供的短信业务.感谢您使用我们的短信服务!咨询电话%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码0000 } } else // 取消单个业务QX? { strncpy(buf,msg+2,strlen(msg)-2); buf[strlen(msg)-2] = '\0'; table_num=have_usertable(table_name); //取得取消的所有表的表名及个数 for (i=0;i<table_num;i++) { if(strcmp(*(table_name+i),"USER_POINT_PR")==0) { sprintf(sql,"SELECT MODE,NAME FROM %s WHERE MSISDN='%s' AND FLAG='1'",*(table_name+i),checksql(msisdn)); } else { sprintf(sql,"SELECT POINT.SV_CODE,COD.NAME FROM %s POINT,COD_SERVICE COD WHERE POINT.SV_CODE=COD.UCODE AND POINT.FLAG='1' AND POINT.MSISDN='%s'",*(table_name+i),checksql(msisdn)); } retval = QuerySQL(sql,&myconn,&res1); if(retval != 0) { writelog(SELF_TYPE,"查询单个业务出错!"); continue; } if(res1 == NULL) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 continue; } while( row = mysql_fetch_row(res1)) { strcpy(tmpbuf,row[0]); strcpy(code_name,row[1]); j=j+1; if(j==atoi(buf)) { strcpy(table_name_buf,*(table_name+i)); strcpy(code_name_buf,code_name); if(strcmp(*(table_name+i),"USER_POINT_PR")==0) { strcpy(mode_buf,tmpbuf); mode=1; } else { strcpy(code_buf,tmpbuf); } k=j; break; } } mysql_free_result(res1); strcpy(tmpbuf,""); } if(k==atoi(buf)) { if(mode==1) { sprintf(sql,"UPDATE %s SET FLAG='0',CANCEL_DATE='%s',POINT_CHANNEL='4',FTP_FLAG='0' WHERE FLAG='1' AND MSISDN='%s' AND MODE='%s'", table_name_buf,getnowdate(day),checksql(msisdn),mode_buf); } else { sprintf(sql,"UPDATE %s SET FLAG='0',CANCEL_DATE='%s',POINT_CHANNEL='4',FTP_FLAG='0' WHERE FLAG='1' AND MSISDN='%s' AND SV_CODE='%s'", table_name_buf,getnowdate(day),checksql(msisdn),code_buf); } retval = DoSQL(sql,&myconn); if(retval != 0) { writelog(SELF_TYPE,"取消单个业务出错!"); } else { sprintf(msg,"您已经成功取消了定制业务%s,从现在起,本栏目不再收取任何费用.感谢您使用我们的短信服务!咨询电话%s",code_name_buf,service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,9); //取消包 } } else { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 } } } else { //二次确认 DoMonthly_custom(msisdn,code,ocode,msg,dcode,feetype,fee); } } else //移动公司代取消 { if(strncmp(msg,"QX",2) != 0) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 continue; } if(strncmp(msg,"QX0",3)==0) { strncpy(msisdn_buf,msg+3,11); msisdn_buf[11]='\0'; if(strncmp(msisdn_buf,"13",2)!=0) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 continue; } table_num=have_usertable(table_name); //取得取消的所有表的表名及个数 for (i=0;i<table_num;i++) { sprintf(sql,"UPDATE %s SET FLAG='0',CANCEL_DATE='%sd',POINT_CHANNEL='4',FTP_FLAG='0' WHERE FLAG='1' AND MSISDN='%s'",*(table_name+i),day,checksql(msisdn_buf)); retval = DoSQL(sql,&myconn); if(retval != 0) { writelog(SELF_TYPE,"移动代取消全部业务出错!"); return 0; } } sprintf(msg,"您已代用户%s成功取消由南京宁网公司提供的所有服务.感谢您使用我们的短信服务!咨询%s",msisdn_buf,service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,9); //取消包 //不对的 } else /* 取消单个业务QX? */ { strncpy(msisdn_buf,msg+strlen(msg)-11,11); msisdn_buf[11]='\0'; if(strncmp(msisdn_buf,"13",2)!=0) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 continue; } strncpy(buf,msg+2,strlen(msg)-13); buf[strlen(msg)-13] = '\0'; table_num=have_usertable(table_name); //取得取消的所有表的表名及个数 for (i=0;i<table_num;i++) { if(strcmp(*(table_name+i),"USER_POINT_PR")==0) { sprintf(sql,"SELECT MODE,NAME FROM %s WHERE MSISDN='%s' AND FLAG='1'",*(table_name+i),checksql(msisdn_buf)); } else { sprintf(sql,"SELECT POINT.SV_CODE,COD.NAME FROM %s POINT,COD_SERVICE COD WHERE POINT.SV_CODE=COD.UCODE AND POINT.FLAG='1' AND POINT.MSISDN='%s'",*(table_name+i),checksql(msisdn_buf)); } retval = QuerySQL(sql,&myconn,&res1); if(retval != 0) { writelog(SELF_TYPE,"移动代查询单个业务出错!"); continue; } if(res1 == NULL) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 continue; } while( row = mysql_fetch_row(res1)) { strcpy(tmpbuf,row[0]); strcpy(code_name,row[1]); j=j+1; if(j==atoi(buf)) { strcpy(table_name_buf,*(table_name+i)); strcpy(code_name_buf,code_name); if(strcmp(*(table_name+i),"USER_POINT_PR")==0) { strcpy(mode_buf,tmpbuf); mode=1; } else { strcpy(code_buf,tmpbuf); } k=j; break; } } mysql_free_result(res1); strcpy(tmpbuf,""); } if(k==atoi(buf)) { if(mode==1) { sprintf(sql,"UPDATE %s SET FLAG='0',CANCEL_DATE='%sd',POINT_CHANNEL='4',FTP_FLAG='0' WHERE FLAG='1' AND MSISDN='%s' AND MODE='%s'", table_name_buf,day,checksql(msisdn_buf),mode_buf); } else { sprintf(sql,"UPDATE %s SET FLAG='0',CANCEL_DATE='%sd',POINT_CHANNEL='4',FTP_FLAG='0' WHERE FLAG='1' AND MSISDN='%s' AND SV_CODE='%s'", table_name_buf,day,checksql(msisdn_buf),code_buf); } retval = DoSQL(sql,&myconn); if(retval != 0) { writelog(SELF_TYPE,"移动代取消单个业务出错!"); } else { sprintf(msg,"您已代用户%s成功取消了%s,感谢您使用我们的短信服务!",msisdn_buf,code_name_buf); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,9); //取消包 //不对的 } } else { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 } } } } mysql_free_result(res); return 0;}static int DoMonthly_custom(char *msisdn,char *code,char *ocode,char *content,char *dcode,char *feetype,float fee){ char sql[2000]; int type,retval,len; char day[20],buf[20],msg[500],name[100],sv_code[12],send_num[50]; MYSQL_RES *res = NULL; MYSQL_ROW row; strcpy(buf,ocode); len = strlen(ocode); if(len==0) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 return 0; } buf[len]='\0'; sprintf(sql,"SELECT UCODE,NAME,FEE_MON,DCODE,FEETYPE,SEND_NUM FROM COD_SERVICE WHERE PARTNER='%s'",buf); retval = QuerySQL(sql,&myconn,&res); if(retval != 0) { writelog(SELF_TYPE,"查询COD_SERVICE 二次确认时失败"); return 0; } if(res == NULL) { return 0; } if( row = mysql_fetch_row(res)) { strcpy(sv_code,row[0]); strcpy(name,row[1]); fee=atof(row[2]); strcpy(dcode,row[3]); strcpy(feetype,row[4]); strcpy(send_num,row[5]); mysql_free_result(res); if(strcmp(feetype,"03")!=0) { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 return 0; } if(strcmp(content,"Y")!=0) { sprintf(msg,"您回复的字符不对,确认开通%s业务请回复Y",name); sprintf(sp_id_extern,"012%s",buf); SendUser(msisdn,msg,dcode,fee,0); //错误 return 0; } sprintf(sql,"UPDATE USER_POINT SET FLAG='1',REG_DATE='%s',FREE_FLAG='0',MONTH_FLAG='0' WHERE MSISDN='%s' AND SV_CODE='%s' AND FLAG='9'",getnowdate(day),msisdn,sv_code); if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"更新USER_POINT表FLAG=1出错!"); return 0; } sprintf(sp_id_extern,""); if(mysql_affected_rows(myconn)) { if(strcmp(feetype,"03")==0) { sprintf(msg,"您已经成功定制%s,感谢您使用我们的服务,资费%.2f元/月,发送频次:%s.退定:0000,咨询电话%s",name,fee,send_num,service_phone); } } else { sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); writelog(SELF_TYPE,"没有用户记录,用户回复SESSION!"); } SendUser(msisdn,msg,dcode,fee,8); //订购 } else { mysql_free_result(res); sprintf(msg,"您回复的代码有错误,请核实后再试,或直接拨打我们的客服热线:%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 } 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 + -