📄 destiny.cpp
字号:
// destiny.cpp : 实现文件
//
#include "stdafx.h"
#include "moUniteService.h"
#include "destiny.h"
// Cdestiny
IMPLEMENT_DYNAMIC(Cdestiny, CWnd)
Cdestiny::Cdestiny()
{
}
Cdestiny::~Cdestiny()
{
}
void Cdestiny::getDestiny(CString strCmd,CString strCPhone,BOOL blSource)
{
CString strCode;
CString strClientPhone;
CString strQuery;
CADODatabase mo_db;
CADORecordset rsc(&mo_db);
CADORecordset rs(&mo_db);
strCode=strCmd.Mid(2,2).MakeUpper();
strClientPhone=strCPhone;
strQuery=strCmd.Mid(4).MakeUpper();
CString strMsgSend="";
CString strSource="1259197";
if(mo_db.OpenSQLServerDirect(MyReg::GetDBIP(),MyReg::GetDBUserID(),MyReg::GetDBPassword(),"ewsv3"))
{
CString strSql;
//先将到来的数据天家到表SMS_SM01_MO中
rsc.Open("select * from sms_sm01_mo where 1=0");
rsc.AddNew();
rsc.SetFieldValue("FromMobile",strClientPhone);
if(strCode.GetLength()>0)
rsc.SetFieldValue("SmsType",strCode);
else
rsc.SetFieldValue("SmsType",strCmd);
rsc.SetFieldValue("SmsMsg",strQuery);
if(blSource)rsc.SetFieldValue("FromSource",strSource);
rsc.Update();
if(strCode.GetLength()>0)
{
if(strCode=="01")
{
/*
号码占卜:
手机号码是13XX8888888,将8888÷80=111.1,再将111.1-111=0.1,
然后0.1×80=8,这个“8”就是你的命运数了,最后你在命运数对表
里可以查到你是“吉”了!
*/
CString strTemp=strClientPhone.Right(4);
char temp[50];
strcpy(temp,strTemp.GetBuffer(0));
int iTemp=atoi(temp);
double dTemp=(double)iTemp/80;
iTemp=(dTemp-(int)dTemp)*80;
strTemp.Format("%d",iTemp);
strSql="select * from sms_sm01_luck where smsType='01' and numbers='"+strTemp+"'";
rs.Open(strSql);
if(rs.IsBOF() && rs.IsEOF())
{
strMsgSend.Format("计算结果%s,拥有此号之人,不富则贵,此号为稀号呀!",strTemp);
}
else
{
while(!rs.IsEOF())
{
rs.GetFieldValue("luck",strMsgSend);
rs.MoveNext();
}
}
rs.Close();
}
else if(strCode=="02")
{
/*
手机号码占卜命运
Step1
先将所属手机号码(如13909876556)分拆,然后逐个数目单一加起来。
例:1+3+9+0+9+0+1+2+3+4+5+6=43
Step2
得出结果43后(一般为两位数),再一次拆开计算。
例:4+3=7
Step3
最后计出的个位数「7」,就是你手机所属的命运数,也正是与机主唇齿相依的数字。详细情况请参阅下文。
*/
CString strTemp;
int iTemp=0;
char temp[10];
CString strPhoneTemp=strClientPhone.Right(11);
for(int i=0;i<strPhoneTemp.GetLength();i++)
{
strcpy(temp,strPhoneTemp.Mid(i,1));
iTemp=iTemp+atoi(temp);
}
strTemp.Format("%d",iTemp);
if(strTemp.GetLength()>1)
{
strTemp=getLuckNum(strTemp);//getLuckNum()为一个递归函数
}
strSql="select * from sms_sm01_luck where smsType='02' and numbers='"+strTemp+"'";
rs.Open(strSql);
if(rs.IsBOF() && rs.IsEOF())
{
strMsgSend.Format("计算结果%s,拥有此号之人,不富则贵,此号为稀号呀!",strTemp);
}
else
{
while(!rs.IsEOF())
{
rs.GetFieldValue("luck",strMsgSend);
rs.MoveNext();
}
}
rs.Close();
}
else if(strCode=="03")
{
//根据用户输入的出生日查询数据
if(strQuery.GetLength()>0)
{
strSql="select * from sms_sm01_luck where smstype='03' and numbers='"+strQuery+"'";
rs.Open(strSql);
if(rs.IsBOF() && rs.IsEOF())
{
strMsgSend.Format("没有%s日这一天呀!是不是您输入错误呀!",strQuery);
}
else
{
while(!rs.IsEOF())
{
rs.GetFieldValue("luck",strMsgSend);
rs.MoveNext();
}
}
rs.Close();
}
else
{
strMsgSend="没有输入出生日,或输入格式错误。格式6603+出生日,如660304为查询4日出生的人的性格。";
}
}
else if(strCode=="04")
{
//根据用户输入的笔画差查询爱情数据
if(strQuery.GetLength()>0)
{
strSql="select * from sms_sm01_luck where smstype='04' and numbers='"+strQuery+"'";
rs.Open(strSql);
if(rs.IsBOF() && rs.IsEOF())
{
strMsgSend.Format("没有这么多的笔画吧!是不是您计算错误呀!",strQuery);
}
else
{
while(!rs.IsEOF())
{
rs.GetFieldValue("luck",strMsgSend);
rs.MoveNext();
}
}
rs.Close();
}
else
{
strMsgSend="格式6604+姓名笔画差。笔画差计算方法:数数你和他的姓名笔画,笔画多的减去少的,你减别人,他是你的?他减你,你是他的?";
}
}
else
{
strMsgSend="对不起!还没有开展该服务呀!查询服务发66到8765查询。";
}
}
else
{
strMsgSend="01.手机号码占卜;02.手机号码占卜命运;03.出生日占卜你的性格;04.姓名笔画占卜爱情。如发短信6601到8765可知号码的凶吉。";
}
/*::CMPP_Send("8765","66",strClientPhone,"60",MyReg::GetYidongUsername(),
MyReg::GetYidongPassword(),MyReg::GetYidongIP(),MyReg::GetYidongPort(),
strClientPhone,strMsgSend,"02");*/
::SGIP_Send("66",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
strMsgSend,MyReg::GetPayTypeUnion(),"60");
//将发送数据添加到表sms_sm01_mo中,记录发送的数据。
rsc.AddNew();
rsc.SetFieldValue("FromMobile",strClientPhone);
if(strCode.GetLength()>0)
rsc.SetFieldValue("SmsType",strCode);
else
rsc.SetFieldValue("SmsType",strCmd);
rsc.SetFieldValue("SmsMsg",strMsgSend);
if(blSource)rsc.SetFieldValue("FromSource",strSource);
rsc.SetFieldValue("MTFlag",1);
rsc.Update();
rsc.Close();
mo_db.Close();
}
else
{
/*::CMPP_Send("8765","",strClientPhone,"10",MyReg::GetYidongUsername(),
MyReg::GetYidongPassword(),MyReg::GetYidongIP(),MyReg::GetYidongPort(),
strClientPhone,"","02");*/
::SGIP_Send("66",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
"手机算命服务处理失败,请等片刻重新查询。",MyReg::GetPayTypeUnion(),"60");
}
}
/*
*********************************************************************
功能:将多字符的字符串计算成个位数字并转换成字符串的函数。
实现:函数是一个递归。想将字符串拆分成单个数字,再将数字相加,如果结果
为多个字符则继续调用本省拆分字符串。
*********************************************************************
*/
CString Cdestiny::getLuckNum(CString str)
{
CString strTemp;
int iTemp=0;
char temp[10];
strTemp=str;
for(int j=0;j<strTemp.GetLength();j++)
{
strcpy(temp,strTemp.Mid(j,1));
iTemp=iTemp+atoi(temp);
}
strTemp.Format("%d",iTemp);
if(iTemp>9)getLuckNum(strTemp);
return strTemp;
}
// Cdestiny 消息处理程序
BEGIN_MESSAGE_MAP(Cdestiny, CWnd)
END_MESSAGE_MAP()
// Cdestiny 消息处理程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -