sms_bjx.cpp

来自「这个一个联通短信网关程序.并且在SP已经运行稳定.很有学习价值」· C++ 代码 · 共 114 行

CPP
114
字号
// SMS_BJX.cpp : implementation file
//
#include "stdafx.h"
#include "moUniteService.h"
#include "SMS_BJX.h"


// CSMS_BJX

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

CSMS_BJX::~CSMS_BJX()
{
}


BEGIN_MESSAGE_MAP(CSMS_BJX, CWnd)
END_MESSAGE_MAP()

void CSMS_BJX::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)
		{
			if(strCommand.MakeUpper()=="X")//用户查询用法
			{
					strSystemRep="欢迎您进入姓氏起源查询系统,发送X加上您的姓即可,如:x张 0.25元/条。查询医疗报销药品发短信“YP#药品名称”到8765查询!";
					rsc.Open("select * from SMSBJXLOG where 1=0");//打开系统日志表
					//只要用户发出命令就写入日志并发送回复			
					rsc.AddNew();
					rsc.SetFieldValue("phone",strClientPhone);				
					rsc.SetFieldValue("usercommand",strUserAnswer);		
					rsc.SetFieldValue("systemresponses",strSystemRep);			
					rsc.Update();
					rsc.Close();				
					//int blSend=1;
					::SGIP_Send("11",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
						MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
							strSystemRep,MyReg::GetPayTypeUnion(),"25");
						
			}
			else//用户查询姓氏
			{
				strUserAnswer=strCommand.Mid(1);//得到用户命令

				rs.Open("select * from SMSBJX where surname='"+strUserAnswer+"'");
				rsc.Open("select * from SMSBJXLOG where 1=0");//打开系统日志表
				if(rs.IsBOF() && rs.IsEOF())//查找是否有此姓
				{
					strSystemRep="您的姓太强了,百家姓里竟没有这个姓";					
					//只要用户发出命令就写入日志并发送回复			
					rsc.AddNew();
					rsc.SetFieldValue("phone",strClientPhone);				
					rsc.SetFieldValue("usercommand",strUserAnswer);		
					rsc.SetFieldValue("systemresponses",strSystemRep);			
					rsc.Update();									
					//int blSend=1;				
					::SGIP_Send("11",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
						MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
							strSystemRep,MyReg::GetPayTypeUnion(),"25");

				}
				else//数据库有此姓
				{
					while(!rs.IsEOF())
						{
							strSystemRep="";
							rs.GetFieldValue("content",strSystemRep);							
							//int blSend=1;	

							::SGIP_Send("11",MyReg::GetUnionSPNumber(),strClientPhone,MyReg::GetUnionUsername(),
								MyReg::GetUnionPassword(),MyReg::GetUnionIP(),MyReg::GetUnionPort(),strClientPhone,
									strSystemRep,MyReg::GetPayTypeUnion(),"25");							
							rsc.AddNew();
							rsc.SetFieldValue("phone",strClientPhone);				
							rsc.SetFieldValue("usercommand",strUserAnswer);		
							rsc.SetFieldValue("systemresponses",strSystemRep);			
							rsc.Update();																						
							rs.MoveNext();
						}
					
				}
				rs.Close();
				rsc.Close();
			}


		}
		mo_db.Close();



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

⌨️ 快捷键说明

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