📄 point.cpp
字号:
} else { sprintf(msg,"用户%s未定制由南京宁网公司提供的业务.感谢您使用我们的短信服务!咨询电话%s",content,service_phone); } } else { strcat(msg,buf); } sprintf(sp_id_extern,"012%d",getrand(999)); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码0000 return 0; } } } trim(content,' '); //查找这个上行代码的名称、发送频次、点播代码、二次确认下发代码 sprintf(sql,"SELECT NAME,SEND_NUM,PCODE,PARTNER,BITLONG,FEE FROM COD_SERVICE WHERE TRIM(UCODE)='%s'",checksql(code)); 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(name,row[0]); strcpy(send_num,row[1]); strcpy(pcode,row[2]); //点播扣费代码 strcpy(partner,row[3]); bitlong=atoi(row[4]); fee_p=atof(row[5]); } mysql_free_result(res); switch(content[0]) { //取消 case 'q': case 'Q': case 'o': case 'O': type = 0; break; //点播 case '\0': if(code[0] == '+') { strcpy(cd,code+1); } else { strcpy(cd,code); } if(strcmp(feetype,"03")==0) { strcpy(dcode,pcode); //包月业务,点播按条扣费 fee=fee_p; } sprintf(sql,"SELECT CONTENT FROM INFO_POINT INFO WHERE TRIM(SV_CODE)='%s'",checksql(cd)); retval = QuerySQL(sql,&myconn,&res); if(retval != 0) { writelog(SELF_TYPE,"查询INFO_POINT失败"); return 0; } if(res == NULL) { return 0; } if(row = mysql_fetch_row(res)) { strcpy(buf,row[0]); } else { strcpy(buf,""); } mysql_free_result(res); if(code[0] == '+') { if(strcmp(buf,"")==0) { sprintf(msg,"该业务已停止服务,感谢您的支持,咨询电话%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //免费 return 0; } else { sprintf(msg,"%s",buf); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码 return 0; } } else { if(strcmp(buf,"")==0) { sprintf(msg,"该业务已停止服务,感谢您的支持,咨询电话%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //免费 return 0; } else { sprintf(msg,"%s",buf); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码 return 0; } } return 0; //查询历史信息 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': num = atoi(content); if(code[0] == '+') { strcpy(cd,code+1); } else { strcpy(cd,code); } if(strcmp(feetype,"03")==0) { strcpy(dcode,pcode); //包月业务,点播按条扣费 } sprintf(sql,"SELECT CONTENT FROM INFO_HIS_POINT WHERE TRIM(SV_CODE)='%s' AND NUM=%d",checksql(cd),num); retval = QuerySQL(sql,&myconn,&res); if(retval != 0) { writelog(SELF_TYPE,"查询INFO_HIS_POINT失败"); return 0; } if(res == NULL) { return 0; } if(row = mysql_fetch_row(res)) { strcpy(buf,row[0]); mysql_free_result(res); if(code[0] == '+') { sprintf(msg,"%s",buf); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码 return 0; } else { sprintf(msg,"%s 订制方法为%s_D",buf,code); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码 return 0; } } else { mysql_free_result(res); sprintf(msg,"没有%s期的信息,请查实后再发,咨询电话%s",content,service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播下发代码 return 0; } return 0; //申请 default: type = 1; } sprintf(sql,"SELECT FLAG,FREE_FLAG FROM USER_POINT WHERE MSISDN='%s' AND TRIM(SV_CODE)='%s'",checksql(msisdn),checksql(code)); retval = QuerySQL(sql,&myconn,&res); if(retval != 0) { writelog(SELF_TYPE,"查询USER_POINT失败"); return 0; } if(res == NULL) { return 0; } if(row = mysql_fetch_row(res)) //原来有用户资料 { strcpy(flag,row[0]); strcpy(free_flag,row[1]); mysql_free_result(res); if((flag[0] == '0'||flag[0] == '9')&& type == 0) { strcpy(msg,"您还未申请,所以不必取消."); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 return 0; } else if(flag[0] == '1' && type == 1) { sprintf(msg,"该业务已申请,不必再申请,感谢您使用我们的服务"); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,0); //错误 return 0; } else if(type == 0) //取消 { sprintf(sql,"UPDATE USER_POINT SET FLAG='0',CANCEL_DATE='%s' WHERE MSISDN='%s' AND SV_CODE='%s'", getnowdate(day),checksql(msisdn),checksql(code)); if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"取消订制出错!"); return 0; } sprintf(msg,"取消订制成功,感谢您使用我们的服务.从现在起,本栏目不再收取任何费用.咨询电话%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,9); //取消 return 0; } else //订制 { if(strcmp(feetype,"03")==0) { if(bitlong==0) //不要二次确认 { sprintf(sql,"UPDATE USER_POINT SET FLAG='1',FREE_FLAG='0',REG_DATE='%s',WANT_NUM=%d,MONTH_FLAG='0',DEMO='' WHERE MSISDN='%s' AND SV_CODE='%s'", getnowdate(day),want_num,checksql(msisdn),checksql(code)); if(msisdn[2]>'3') //修改于2004.08.30 { sprintf(msg,"申请订制成功,%s资费%.2f元/月,发送频次:%s.退定:发送0000.感谢您使用我们的服务.咨询%s",name,fee,send_num,service_phone); } else { sprintf(msg,"申请订制成功,%s,发送频次:%s.感谢您将此业务推荐给您的朋友.咨询%s",name,send_num,service_phone); } } else if(flag[0] != '9') //二次确认 { sprintf(sql,"UPDATE USER_POINT SET FLAG='9',REG_DATE='%s',WANT_NUM=%d,MONTH_FLAG='0' WHERE MSISDN='%s' AND SV_CODE='%s'", getnowdate(day),want_num,checksql(msisdn),checksql(code)); sprintf(msg,"您将开通由南京宁网公司提供的%s业务,信息费%.2f元/月,发送频次%s,确认请回复%s",name,fee,send_num,partner); flag_state=1; } else { sprintf(sql,"UPDATE USER_POINT SET FLAG='1',FREE_FLAG='0',REG_DATE='%s',WANT_NUM=%d,MONTH_FLAG='0',DEMO='' WHERE MSISDN='%s' AND SV_CODE='%s'", getnowdate(day),want_num,checksql(msisdn),checksql(code)); if(msisdn[2]>'3') //修改于2004.08.30 { sprintf(msg,"申请订制成功,%s资费%.2f元/月,发送频次:%s.退定:发送0000.感谢您使用我们的服务.咨询%s",name,fee,send_num,service_phone); } else { sprintf(msg,"申请订制成功,%s,发送频次:%s.感谢您将此业务推荐给您的朋友.咨询%s",name,send_num,service_phone); } } } else { sprintf(sql,"UPDATE USER_POINT SET FLAG='1',FREE_FLAG='0',REG_DATE='%s',WANT_NUM=%d,MONTH_FLAG='0',DEMO='' WHERE MSISDN='%s' AND SV_CODE='%s'", getnowdate(day),want_num,checksql(msisdn),checksql(code)); sprintf(msg,"申请订制成功,%s资费%.2f元/条,发送频次:%s.退定:发送0000.感谢您使用我们的服务.咨询电话%s",name,fee,send_num,service_phone); sprintf(sp_id_extern,""); } if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"更新USER_POINT FLAG='9'出错!"); return 0; } if(flag_state==0) SendUser(msisdn,msg,dcode,fee,8); //订购 else SendUser(msisdn,msg,dcode,fee,2); // return 0; } } //原来没有用户资料 else { mysql_free_result(res); if(type == 0) { sprintf(msg,"您未申请该业务,无法取消.请发送0查询更多业务,咨询%s",service_phone); sprintf(sp_id_extern,""); SendUser(msisdn,msg,dcode,fee,1); //点播 return 0; } else { if(strcmp(feetype,"03")==0) { if(bitlong==0) //不要二次确认 { sprintf(sql,"INSERT INTO USER_POINT(MSISDN,SV_CODE,WANT_NUM,FLAG,FREE_FLAG,REG_DATE) VALUES('%s','%s',%d,'1','0','%s')", msisdn,code,want_num,getnowdate(day)); if(msisdn[2]>'3') //修改于2004.08.30 { sprintf(msg,"申请订制成功,%s资费%.2f元/月,发送频次:%s.退定:发送0000.感谢您使用我们的服务.咨询%s",name,fee,send_num,service_phone); } else { sprintf(msg,"申请订制成功,%s,发送频次:%s.感谢您将此业务推荐给您的朋友.咨询%s",name,send_num,service_phone); } } else //二次确认 { sprintf(sql,"INSERT INTO USER_POINT(MSISDN,SV_CODE,WANT_NUM,FLAG,FREE_FLAG,REG_DATE) VALUES('%s','%s',%d,'9','0','%s')",msisdn,code,want_num,getnowdate(day)); sprintf(msg,"您将开通由南京宁网公司提供的%s业务,信息费%.2f元/月,发送频次%s,确认请回复%s",name,fee,send_num,partner); flag_state=1; } } else { sprintf(sql,"INSERT INTO USER_POINT(MSISDN,SV_CODE,WANT_NUM,FLAG,FREE_FLAG,REG_DATE) VALUES('%s','%s',%d,'1','0','%s')", msisdn,code,want_num,getnowdate(day)); sprintf(msg,"申请订制成功,%s资费%.2f元/条,发送频次:%s.退定:发送0000.感谢您使用我们的服务.咨询电话%s",name,fee,send_num,service_phone); sprintf(sp_id_extern,""); } if(DoSQL(sql,&myconn) != 0) { writelog(SELF_TYPE,"插入USER_POINT FLAG=9出错!"); return 0; } if(flag_state==0) SendUser(msisdn,msg,dcode,fee,8); //订购 else SendUser(msisdn,msg,dcode,fee,2); // return 0; } } return 0;}static int ScanMsgSession(){ char sql[1000]; MYSQL_ROW row; MYSQL_RES *res = NULL,*res1=NULL; int retval,i,j,k,mode,table_num,count_ph,count; float fee,fee_mon; char id[11],icpid[3],code[11],msisdn[22],dcode[11],ocode[11],feetype[3]; char *table_name[30]; char msg[500],msgsend[200],day[20]; char table_name_buf[50],code_buf[11],code_name[50],mode_buf[50],msisdn_buf[22]; char buf[10],code_name_buf[50],buf_num[100]; char tmpbuf[10]; j=0;mode=0; memset(sql,0,sizeof(sql)); sprintf(sql, "SELECT ID,ICPID,UPPER(SERVICECODE),OTHERCODE,MSGCONTENT,SRCTERMID,DCODE,FEE,FEETYPE,FEE_MON,LINKID FROM COM_RECV_SESSION RECV,COD_SERVICE_SESSION COD WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='DZ' LIMIT 200"); 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(msg,row[4]); strcpy(msisdn,row[5]); strcpy(dcode,row[6]); fee = atof(row[7]); strcpy(feetype,row[8]); fee_mon = atof(row[9]); strcpy(linkid,row[10]); 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表出错!"); return 0; } upper(trim(msg,' ')); count_ph=have_mobile(msisdn); //查找是否有权代取消 if(count_ph==0||strlen(msg)<5) { if(strncmp(msg,"QX",2) == 0) { if(strcmp(msg,"QX0")==0) { table_num=have_usertable(table_name); //取得取消的所有表的表名及个数 for (i=0;i<table_num;i++) { sprintf(sql,"SELECT COD.NAME,DCODE,FEETYPE,FEE_MON FROM %s POINT,COD_SERVICE COD\ WHERE POINT.FLAG='1' AND POINT.SV_CODE=COD.UCODE AND POINT.MSISDN='%s'",*(table_name+i),checksql(msisdn)); retval = QuerySQL(sql,&myconn,&res); if(retval != 0) { writelog(SELF_TYPE,"取消业务出错00000!"); return 0; } if(res == NULL) { if(msisdn[2]>'3') //修改于2004.08.30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -