📄 bet_18_month.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 "bet_18_month"
#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 DoService(char *code,char *content,char *msisdn,char *dcode,float fee,int bitlong);
static int SendUser(char *msisdn,char *msg,char *dcode,float fee,int flag);
static int getrand_num(int max_num);
static char service_phone[20];
static char sp_id_extern[20];
static char linkid[9];
int InitBet18month()
{
GetProfileString(INIFILE,"COMMON","TELEPHONE","",service_phone);
srand(time(NULL));
return 0;
}
int DoBet18month()
{
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,bitlong;
float fee,fee_mon;
int feetype;
char id[11],icpid[3],code[11],msisdn[22],dcode[11],content[500];
char day[20];
char msg[500];
memset(sql,0,sizeof(sql));
sprintf(sql,
"SELECT ID,ICPID,UPPER(SERVICECODE),SRCTERMID,DCODE,FEE_MON,MSGCONTENT,BITLONG,LINKID
FROM COM_RECV RECV,COD_SERVICE COD
WHERE RECV.FLAG='0' AND RECV.SERVICECODE=COD.UCODE AND COD.KIND='18' limit 20");
retval = QuerySQL(sql,&myconn,&res);
if(retval != 0)
{
writelog(SELF_TYPE,"查询RECV表指令失败");
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]);
fee_mon = atof(row[5]);
strcpy(content,row[6]);
bitlong=atoi(row[7]);
strcpy(linkid,row[8]);
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,"更新recv表指令出错!");
return 0;
}
DoService(code,content,msisdn,dcode,fee_mon,bitlong);
}
mysql_free_result(res);
return 0;
}
static int getrand_num(int max_num)
{
float retval;
int i;
retval = (float)(rand())/(float)(RAND_MAX);
retval = retval * max_num;
i = (int)(retval);
return i;
}
static int DoService(char *code,char *content,char *msisdn,char *dcode,float fee,int bitlong)
{
int type,retval,score;
char msg[500],testmsisdn[22];
char sql[2000],errmsg[20];
char day[20];
int flag,bet_score,num1,num2,num3;
MYSQL_ROW row;
MYSQL_RES *res = NULL;
//判断用户是否存在,存在则取出分数,flag=1;不存在则flag=2; 准备注册:flag=9
//存在已取消:flag=0
sprintf(sql,"SELECT SCORE,FLAG FROM USER_BET WHERE MSISDN='%s'",msisdn);
retval = QuerySQL(sql,&myconn,&res);
if(retval != 0)
{
writelog(SELF_TYPE,"查询USER_BET表指令失败");
return 0;
}
if(res == NULL)
{
return 0;
}
if( row = mysql_fetch_row(res))
{
score = atoi(row[0]);
flag=atoi(row[1]);
mysql_free_result(res);
}
else
{
mysql_free_result(res);
flag=2;
}
if (strcmp(code,"DX")==0)
{
if (flag==1) //用户在用
{
sprintf(msg,"猜大请发DA,猜小请发XI.每次赌注为100,满一万个金币可获100元话费充值,客服电话:%s",service_phone);
SendUser(msisdn,msg,dcode,fee,2); //包月平时用
return 0;
}
//若无此用户资料,则先确认,先使FLAG=9
else
{
if(bitlong==0) //不要二次确认
{
if(flag==2)
{
sprintf(sql,"INSERT INTO USER_BET(MSISDN,SCORE,REG_DATE,FLAG,FREE_FLAG)
VALUES('%s',%d,'%s','1','0')",msisdn,2000,getnowdate(day));
}
else
{
sprintf(sql,"UPDATE USER_BET SET SCORE=2000,REG_DATE='%s',FLAG='1',FREE_FLAG='0',MONTH_FLAG='0'
WHERE MSISDN='%s'",getnowdate(day),msisdn);
}
if (DoSQL(sql,&myconn)!=0)
{
writelog(SELF_TYPE,"更新USER_BET表中新用户注册出错!");
return 0;
}
sprintf(msg,"您已成功加入本游戏,猜大请发DA,猜小请发XI.退出请发TCDX.你现在有2000个金币.客服电话:%s",service_phone);
SendUser(msisdn,msg,dcode,fee,8); //订购包
return 0;
}
else //要二次确认
{
if(flag==9)
{
sprintf(sql,"UPDATE USER_BET SET SCORE=2000,REG_DATE='%s',FLAG='1',FREE_FLAG='0',MONTH_FLAG='0'
WHERE MSISDN='%s'",getnowdate(day),msisdn);
}
else if(flag==2)
{
sprintf(sql,"INSERT INTO USER_BET(MSISDN,SCORE,REG_DATE,FLAG,FREE_FLAG)
VALUES('%s',%d,'%s','9','0')",msisdn,2000,getnowdate(day));
}
else
{
sprintf(sql,"UPDATE USER_BET SET SCORE=2000,REG_DATE='%s',FLAG='9',FREE_FLAG='0'
WHERE MSISDN='%s'",getnowdate(day),msisdn);
}
if (DoSQL(sql,&myconn)!=0)
{
writelog(SELF_TYPE,"更新USER_BET表中新用户注册出错!");
return 0;
}
if(flag==9)
{
if(msisdn[2]>'4')
{
sprintf(msg,"您已成功加入本游戏,猜大请发DA,猜小请发XI.退出请发TCDX.你现在有2000个金币.资费:5元/月.客服电话:%s",service_phone);
}
else
{
sprintf(msg,"您已成功加入本游戏,猜大请发DA,猜小请发XI.你现在有2000个金币.客服电话:%s",service_phone);
}
SendUser(msisdn,msg,dcode,fee,8); //订购包
return 0;
}
else
{
sprintf(msg,"欢迎您加入,猜大发DA,猜小发XI,满一万个金币可获100元话费充值,注册成功即可获得两千个金币.资费5元/月.若确定加入请再发DX");
SendUser(msisdn,msg,dcode,fee,2);
return 0;
}
}
}
}
//打工DG
else if(strcmp(code,"DG") == 0)
{
if (flag==1)
{
if (score >= 500)
{
sprintf(msg,"您还有%d个金币,没必要去打工啊!继续加油!相信你的运气会很好的!",score);
SendUser(msisdn,msg,dcode,fee,2); //平时包
return 0;
}
score += 100;
sprintf(sql,"UPDATE USER_BET SET SCORE=%d,DOWN_NUM=DOWN_NUM+1,RECENT_DATE='%s'
WHERE MSISDN='%s'",score,getnowdate(day),msisdn);
if(DoSQL(sql,&myconn) != 0)
{
writelog(SELF_TYPE,"更新USER_BET表中打工得分出错!");
return 0;
}
if(getrand_num(3) == 0)
{
sprintf(msg,"搬运工的工作给您带来100个金币的收入,继续努力,会获得更多的金币,人生充满梦想!");
}
else
{
sprintf(msg,"保险推销员的工作很适合你,你获得100个金币,继续努力,会获得更多的金币,人生充满梦想!");
}
}
else
{
sprintf(msg,"您还没注册,请先发送DX,加入本游戏,满一万个金币可获100元话费充值.注册成功即可获得两千金币.客服电话:%s",service_phone);
}
SendUser(msisdn,msg,dcode,fee,2); //平时包
return 0;
}
//讨饭TF
else if(strcmp(code,"TF") == 0)
{
if (flag==1)
{
if (score >= 500)
{
sprintf(msg,"您还有%d个金币,没必要去讨饭啊!继续加油!相信你的运气会很好的!",score);
sprintf(sql,"UPDATE USER_BET SET DOWN_NUM=DOWN_NUM+1,RECENT_DATE='%s' WHERE MSISDN='%s'",getnowdate(day),msisdn);
if(DoSQL(sql,&myconn) != 0)
{
writelog(SELF_TYPE,"更新USER_BET表中讨饭得分出错!");
return 0;
}
SendUser(msisdn,msg,dcode,fee,2); //平时包
return 0;
}
else if (score<=0)
{
sprintf(msg,"您已经没有金币了,现在您只能去打工,请发送DG.赚取金币后,继续本游戏.");
SendUser(msisdn,msg,dcode,fee,2); //平时包
return 0;
}
if(getrand_num(3) == 0)
{
score += 200;
sprintf(msg,"您遇到一位善良而富有的老人,他给了您200个金币,运气不算太坏,看来有希望发一笔横财,继续努力,人生充满梦想!");
}
else
{
sprintf(msg,"讨饭的生涯真是可怜,一个无赖不仅没有给你一毛,反而打了你一顿,不过不要灰心,运气总会好起来,人生充满希望!");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -