⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bet_18_month.cpp

📁 移动梦网平台主程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#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 + -