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

📄 sms_rsun.cpp

📁 这个一个联通短信网关程序.并且在SP已经运行稳定.很有学习价值
💻 CPP
字号:
// SMS_RSUN.cpp : implementation file
//
#include "stdafx.h"
#include "moUniteService.h"
#include "SMS_RSUN.h"

// CSMS_RSUN

IMPLEMENT_DYNAMIC(CSMS_RSUN, CWnd)
CSMS_RSUN::CSMS_RSUN()
{
}

CSMS_RSUN::~CSMS_RSUN()
{
}


BEGIN_MESSAGE_MAP(CSMS_RSUN, CWnd)
END_MESSAGE_MAP()

void CSMS_RSUN::ProcessMO(CString strCmd,CString strCPhone)
{
	CADODatabase mo_db;
	CADORecordset rsc(&mo_db);
	CADORecordset rs(&mo_db);
	CADORecordset rs1(&mo_db);//
	CString strCommand,strClientPhone;
	strCommand=strCmd;
	strClientPhone=strCPhone;
	CString strUserAnswer;
	CString strSystemRep;
	if(mo_db.OpenSQLServerDirect(MyReg::GetDBIP(),MyReg::GetDBUserID(),MyReg::GetDBPassword(),"ewsv3"))
	{//主逻辑
		if(strCommand.GetLength()>0)
		{
			strUserAnswer=strCommand.MakeUpper();//得到用户命令
			if(strUserAnswer=="RED")//用户注册或开始过关
			{
				CString ftemp="2";
				rs.Open("select * from REDUSERS where userphone='"+strClientPhone+"'");
				if(rs.IsBOF() && rs.IsEOF())
				{				
					rs.AddNew();						
					rs.SetFieldValue("userphone",strClientPhone);
					rs.SetFieldValue("tmbh",1);
					rs.SetFieldValue("pass",0);
					rs.SetFieldValue("result",ftemp);
					rs.Update();					
					strSystemRep="只回答十道问题,就有机会获得价值108元红太阳的免费门票。开始!RED SUN是什么意思:1.太阳 2.红太阳 3.红旗  直接发送答案编号";				
				}
				else
				{
					rs.Edit();
					rs.SetFieldValue("pass",0);
					rs.SetFieldValue("tmbh",1);					
					rs.SetFieldValue("result",ftemp);
					rs.Update();					
					strSystemRep="只回答十道问题,就有机会获得价值108元红太阳的免费门票。开始!RED SUN是什么意思:1.太阳 2.红太阳 3.红旗  直接发送答案编号";				

				}

				rs.Close();
			}	
			if(strUserAnswer=="1" || strUserAnswer=="2" || strUserAnswer=="3" || strUserAnswer=="4")//得到用户答案
			{
				CString tmkey;
				rs.Open("select * from REDUSERS where userphone='"+strClientPhone+"'");
				rs.GetFieldValue("result",tmkey);
				int temp;						
				int tmbh;
				int times;
				CString strint;
				rs.GetFieldValue("pass",temp);//得到用户已经答的题目数
				rs.GetFieldValue("tmbh",tmbh);//得到用户的题目编号
				rs.GetFieldValue("ok",times);//得到用户玩过的次数
				temp=temp+1;
				tmbh=tmbh+1;
				strint.Format("%d",tmbh);

				CString strTm;
				CString strkey;
				rs1.Open("select * from redsun where id='"+strint+"'");//取得题目内容
				rs1.GetFieldValue("content",strTm);
				rs1.GetFieldValue("result",strkey);
				rs1.Close();					
				if(temp>=10)
				{
					times=times+1;
					rs.Edit();
					rs.SetFieldValue("ok",times);	
					rs.SetFieldValue("pass",0);
					rs.Update();
					strSystemRep="鼓掌!您已答了10题!本活动一周一次,每次派送20张免费门票,参与的次数越多中奖机会越大哦!重新开始发送RED";							

				}
				else
				{
					if(strUserAnswer==tmkey.Trim().MakeUpper())//判断用户答案是否正确
					{
						rs.Edit();
						rs.SetFieldValue("pass",temp);
						rs.SetFieldValue("result",strkey);
						rs.SetFieldValue("tmbh",tmbh);
						rs.Update();						
						strSystemRep="强!强!强!下一题:"+strTm;
					}
					else
					{
						rs.Edit();
						rs.SetFieldValue("pass",temp);
						rs.SetFieldValue("result",strkey);
						rs.SetFieldValue("tmbh",tmbh);
						rs.Update();						
						strSystemRep="错了!应该是"+strkey+"啊!下一题:"+strTm;
					}
				}				
				rs.Close();
			}

		
		
		}
		rsc.Open("select * from REDSUNLOG where 1=0");//打开系统日志表
		//只要用户发出命令就写入日志并发送回复			
		rsc.AddNew();
		rsc.SetFieldValue("phone",strClientPhone);				
		rsc.SetFieldValue("usercommand",strUserAnswer);		
		rsc.SetFieldValue("systemresponses",strSystemRep);			
		rsc.Update();
		rsc.Close();
		//发送回复,并记录发送状态
		CString strSendMsg;
		int blSend=1;
		CString strSendTime;
		strSendMsg=strSystemRep;		

		::SGIP_Send("gqgd",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
			MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
			strSendMsg,MyReg::GetPayTypeUnion(),"20");
		
		mo_db.Close();

	}
	else//打开数据库失败
	{	
		::SGIP_Send("",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
			MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
			"红太阳短信服务:短信处理失败,请您重新发送一次.怡泰信息",MyReg::GetPayTypeUnion(),"10");
	}



}


// CSMS_RSUN message handlers

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -