📄 sms_rsun.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 + -