sendsms.cs
来自「该服务平台解决了计算机网络与移动网络之间信息交换问题」· CS 代码 · 共 515 行 · 第 1/2 页
CS
515 行
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;
using System.Web;
using System.Data.SqlClient;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common;
namespace DataAccess
{
public class SendSMS
{
/// <summary>
/// 0:中国移动1:中国联通2:中国电信小灵通
/// </summary>
private Database mainDataBase;
private Database db;
private const string SEND_SMS_TO_CHINAMOBILE_SERVER_SQL = "INSERT INTO cp_send_table(sServiceID," +
"sMobileNo,sMsgContent,tRegTime) VALUES('128','{0}','{1}','{2}')";
public SendSMS()
{
mainDataBase = DatabaseFactory.CreateDatabase("SmSConnString");
db = DatabaseFactory.CreateDatabase("Connection String");
}
#region 注释
/*
public bool SendMessage(int smsID,String sendMan,String mobileNo, String msgContent)
{
int mobileType = GetMobileTrederID(mobileNo);
if (mobileType == 0)
{
try
{
//发送短信
SendChinaMobileMessage(mobileNo, msgContent);
//将短信标志设置为已发送
SetSendSMSFlag(smsID, sendMan);
return true;
}
catch
{ return false; }
}
else if (mobileType == 2)
{
//SendSmallTraderMessageByStudent(mobileNo, msgContent);
SendSmallTraderMessageByFarmer(mobileNo, msgContent);
return true;
}
else
{ return false; }
}
private int SetSendSMSFlag(int smsId,String sendMan)
{
string strSql = string.Format("UPDATE SMSInfo SET Flag = 2, SendMan = '{0}' WHERE (SMSID = {1}) ", sendMan, smsId);
Database db = DatabaseFactory.CreateDatabase("Connection String");
return db.ExecuteNonQuery(CommandType.Text, strSql);
}
/// <summary>
/// 中国移动短信发送
/// </summary>
/// <param name="mobileNo"></param>
/// <param name="msgContent"></param>
/// <returns></returns>
private int SendChinaMobileMessage(String mobileNo, String msgContent)
{
string strSql = string.Format(SEND_SMS_TO_CHINAMOBILE_SERVER_SQL, mobileNo, msgContent,
System.DateTime.Now.ToString());
return db.ExecuteNonQuery(CommandType.Text, strSql);
}
/// <summary>
/// 中国电信小灵通发送农信通信息
/// </summary>
/// <param name="mobileNo"></param>
/// <param name="msgContent"></param>
/// <returns></returns>
private void SendSmallTraderMessageByStudent(String mobileNo, String msgContent)
{
string msg = HttpUtility.UrlEncode(msgContent);
string goUrl = string.Format("http://phs.scol.com.cn/deliver/deliver.aspx?usertel={0}" +
"&phscode=9143&content={1}&ywcode=119049", mobileNo, msg);
HttpContext.Current.Response.Redirect(goUrl);
}
private void SendSmallTraderMessageByFarmer(String mobileNo, String msgContent)
{
string msg = HttpUtility.UrlEncode(msgContent, Encoding.GetEncoding("GB2312"));
//string msg = HttpContext.Current.Server.UrlEncode(msgContent);
string goUrl = string.Format("http://phs.scol.com.cn/deliver/deliver.aspx?usertel={0}" +
"&phscode=91434&content={1}&ywcode=119050", mobileNo, msg);
HttpContext.Current.Response.Redirect(goUrl);
}
/// <summary>
/// 判断手机号
/// </summary>
/// <param name="mobileNumber"></param>
/// <returns></returns>
private int GetMobileTrederID(String mobileNumber)
{
char[] C_Mobile = mobileNumber.ToCharArray();
string smallCommunicate = C_Mobile[0].ToString();
if (smallCommunicate != "0")
{
string mobileNumType = C_Mobile[2].ToString();
switch (mobileNumType)
{
case "0" :
return 1;
case "1" :
return 1;
case "2":
return 1;
case "3":
return 1;
case "4":
return 0;
case "5":
return 0;
case "6":
return 0;
case "7":
return 0;
case "8":
return 0;
case "9":
return 0;
default:
return 0;
}
}
else
{
//中国电信小灵通
return 2;
}
}*/
#endregion
/// <summary>
/// 得到短信发送表格式
/// </summary>
/// <returns></returns>
private DataTable GetSendTableFormat()
{
DataTable dt = new DataTable("SendingSMS");
dt.Columns.Add("MessageContent", typeof(String));
dt.Columns.Add("Mobile", typeof(String));
dt.Columns.Add("Trade", typeof(int));
dt.Columns.Add("SmsType", typeof(int));
dt.Columns.Add("CitySchool", typeof(String));
dt.Columns["Mobile"].Unique = true;
return dt;
}
public int SendingSingleSMS(String messageContnte, String mobile, int tradeID, int smsType, String citySchool)
{
String strSql = string.Format("INSERT INTO SendingSMS(MessageContent, Mobile, Trade, SmsType, CitySchool) " +
"VALUES ('{0}','{1}',{2},{3},'{4}')", messageContnte, mobile, tradeID, smsType, citySchool);
return mainDataBase.ExecuteNonQuery(CommandType.Text, strSql);
}
public int SendingSMS(String mobile, String msg)
{
String strSql = String.Format("INSERT INTO SendingSMS(MessageContent, Mobile) VALUES('{0}','{1}')", msg, mobile);
return mainDataBase.ExecuteNonQuery(CommandType.Text, strSql);
}
/// <summary>
/// 发送短信息
/// </summary>
/// <param name="areaID"></param>
/// <param name="countyID"></param>
/// <param name="villageID"></param>
/// <param name="corporationID"></param>
/// <param name="mainOperationID"></param>
/// <param name="childOperationID"></param>
/// <param name="traderID"></param>
/// <param name="sms"></param>
/// <param name="smsType"></param>
public void AddSMSToMainDataBase(int areaID, int countyID, int villageID, ArrayList corporationID,
ArrayList mainOperationID, ArrayList childOperationID, int traderID, String sms, int smsType)
{
DataTable dt = GetSendTableFormat();
DataTable userData = new DataTable("UserData");
userData.Columns.Add("Mobile", typeof(String));
userData.Columns.Add("TradeID", typeof(int));
userData = GetUserList(areaID, countyID, villageID, traderID, mainOperationID, childOperationID, corporationID);
if (userData.Rows.Count > 0)
{
for (int i = 0; i < userData.Rows.Count; i++)
{
try
{
DataRow row = dt.NewRow();
row["MessageContent"] = sms;
row["Mobile"] = userData.Rows[i]["Mobile"].ToString();
row["Trade"] = userData.Rows[i]["TradeID"];
row["SmsType"] = smsType;
row["CitySchool"] = "0";
dt.Rows.Add(row);
}
catch
{
continue;
}
}
for (int j = 0; j < dt.Rows.Count; j++)
{
String messageContnte = dt.Rows[j]["MessageContent"].ToString();
String mobile = dt.Rows[j]["Mobile"].ToString();
int tradeID = int.Parse(dt.Rows[j]["Trade"].ToString());
//int smsType = int.Parse(dt.Rows[j]["SmsType"].ToString());
String citySchool = dt.Rows[j]["CitySchool"].ToString();
SendingSingleSMS(messageContnte, mobile, tradeID, smsType, citySchool);
}
}
}
#region 得到用户注视
/*
/// <summary>
/// 根据用户地区编码得到用户手机号运营商信息
/// </summary>
/// <param name="areaID"></param>
/// <param name="countyID"></param>
/// <param name="villageID"></param>
/// <param name="tradeID"></param>
/// <returns></returns>
public DataTable GetUserListByArea(int areaID,int countyID,int villageID,int tradeID)
{
String formatSql = string.Format("SELECT Mobile, TradeID FROM UserInfo WHERE (AreaID = {0})",areaID);
//String strSql = string.Format("SELECT Mobile, TradeID FROM UserInfo WHERE (AreaID = {0}) AND (CountyID = {1}) " +
// "AND (VillageID = {2}) AND (TradeID = {3})", areaID, countyID, villageID, tradeID);
if (countyID != 0)
formatSql += string.Format(" AND (CountyID = {0}", countyID);
if (villageID != 0)
formatSql += string.Format(" AND (VillageID = {0}", villageID);
if (tradeID != 0)
formatSql += string.Format(" AND (TradeID = {0})", tradeID);
DataSet ds = db.ExecuteDataSet(CommandType.Text, formatSql);
return ds.Tables[0];
}
/// <summary>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?