📄 sms.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Runtime.InteropServices;
namespace UDS.Components
{
/// <summary>
/// SMS
/// </summary>
public class SMS
{
int CommIndex = 1;
/*
#region 引用组件
[DllImport("../bin/AscendSMS.dll")]
public static extern int OpenComm(int CommIndex);
[DllImport("../bin/AscendSMS.dll")]
public static extern int CloseComm(int CommIndex);
[DllImport("../bin/AscendSMS.dll")]
public static extern int ForceCloseComm(int CommIndex);
[DllImport("../bin/AscendSMS.dll")]
public static extern int SendMsg(int CommIndex,string Msg,string MobileNo,int Msg_Index,bool Chinese);
[DllImport("../bin/AscendSMS.dll")]
public static extern int GetUnSendCount(int CommIndex);
[DllImport("../bin/AscendSMS.dll")]
public static extern bool GetNextSendMsg(int CommIndex, string Msg,bool DeleteAfterRead);
[DllImport("../bin/AscendSMS.dll")]
public static extern bool GetNewMsg(int CommIndex, string Msg);
#endregion
/// <summary>
/// 发送短消息
/// 返回操作码 0 成功 -2 消息超过长度 -3 手机号码不正确 -4 发送阵列已满 -8 模块未打开 -1 串口未打开
/// </summary>
/// <param name="Msg">短消息内容</param>
/// <param name="MobileNo">目标端手机号码,包括一般号码及特殊号码</param>
/// <param name="MsgIndex">短消息标志位</param>
/// <param name="IsZh">是否中文(中文为True,否则为False)</param>
/// <returns>操作码</returns>
public int SendMobileMsg(string Msg, string MobileNo, int MsgIndex,bool IsZh)
{
CloseComm(CommIndex);
OpenComm(CommIndex);
String[] MoA = MobileNo.Split(',');
String[] RtnCodeA = MoA;
for(int i=0;i<MoA.Length;i++)
{
int RtnCode = SendMsg(CommIndex,Msg,MoA[i],MsgIndex,IsZh);
RtnCodeA[i] = RtnCode.ToString();
}
CloseComm(CommIndex);
if(RtnCodeA[0]=="0")
return 0;
else
return -1;
}
*/
public SMS()
{
//
// TODO:
//
}
/// <summary>
/// 得到在线人数
/// </summary>
/// <returns>返回int</returns>
public int GetOnlineCount()
{
Database data = new Database();
SqlDataReader dataReader = null;
try
{
data.RunProc("SP_SMS_GetOnlineCount",out dataReader);
if(dataReader.Read()) return Int32.Parse(dataReader[0].ToString());
else return 0;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("读取在线人数出错!",ex);
}
finally
{
data = null;
dataReader = null;
}
}
/// <summary>
/// 得到新消息总数
/// </summary>
/// <returns>返回int</returns>
public int GetNewMsgCount(string Username)
{
Database data = new Database();
SqlDataReader dataReader = null;
SqlParameter[] prams = {
data.MakeInParam("@username", SqlDbType.VarChar, 50, Username)
};
try
{
data.RunProc("SP_SMS_GetNewMsgCount",prams,out dataReader);
if(dataReader.Read()) return Int32.Parse(dataReader[0].ToString());
else return 0;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("得到新消息总数出错!",ex);
}
finally
{
data = null;
dataReader = null;
}
}
/// <summary>
/// 读消息
/// </summary>
public bool ReadMsg(string MsgIDS,string Username)
{
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@MsgIDS", SqlDbType.VarChar, 2000, MsgIDS),
data.MakeInParam("@Username", SqlDbType.VarChar, 20, Username),
};
try
{
data.RunProc("SP_SMS_ReadMsg",prams);
return true;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
// throw new Exception("读消息出错!",ex);
return false;
}
finally
{
data = null;
}
}
/// <summary>
/// 更新在线记录表.添加新的在线人员
/// </summary>
public void UpdateOnlineInfo(string Username,string HostAddr,string SessionID)
{
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@username", SqlDbType.VarChar, 50, Username),
data.MakeInParam("@hostaddr", SqlDbType.VarChar, 50, HostAddr),
data.MakeInParam("@sessionid", SqlDbType.VarChar, 50, SessionID)
};
try
{
data.RunProc("SP_SMS_UpdateOnlineInfo",prams);
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("更新在线记录表出错!",ex);
}
finally
{
data = null;
}
}
/// <summary>
/// 更新活动记录及检测未活动人员
/// </summary>
public string CheckUpdate(string Username,string SessionID,int ActiveNodeID)
{
string ReturnStr = "";
int ReturnID = 0;
int NewMsgFlag = 0;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@username", SqlDbType.VarChar, 100, Username),
data.MakeInParam("@sessionid", SqlDbType.VarChar, 100, SessionID),
data.MakeInParam("@ActiveNodeID", SqlDbType.Int, 4, ActiveNodeID),
data.MakeOutParam("@ReturnID", SqlDbType.Int, 4),
data.MakeOutParam("@NewMsgFlag", SqlDbType.Int, 4)
};
try
{
data.RunProc("SP_SMS_CheckUpdate",prams);
ReturnID = Int32.Parse(prams[3].Value.ToString());
if(ReturnID==-1)
NewMsgFlag = 0;
else
NewMsgFlag = Int32.Parse(prams[4].Value.ToString());
ReturnStr = ReturnID.ToString()+"|"+NewMsgFlag.ToString();
data = null;
return ReturnStr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("更新活动记录及检测未活动人员出错!",ex);
}
finally
{
data = null;
}
}
/// <summary>
/// 得到所有在线人员
/// </summary>
/// <returns></returns>
public SqlDataReader GetOnlinePerson()
{
Database data = new Database();
SqlDataReader dr = null;
try
{
data.RunProc("sp_SMS_GetOnlinePerson",out dr);
return dr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("读取在线人员数据出错!",ex);
}
finally
{
data = null;
dr = null;
}
}
/// <summary>
/// 得到聊天记录
/// </summary>
/// <returns></returns>
public SqlDataReader GetHistory(string Receiver,string Sender)
{
Database data = new Database();
SqlDataReader dr = null;
SqlParameter[] prams = {
data.MakeInParam("@Sender", SqlDbType.VarChar, 50, Sender),
data.MakeInParam("@Receiver", SqlDbType.VarChar, 50, Receiver)
};
try
{
data.RunProc("SP_SMS_GetHistory",prams,out dr);
return dr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("得到聊天记录出错!",ex);
}
finally
{
data = null;
dr = null;
}
}
/// <summary>
/// 得到我所接收的所有短讯
/// </summary>
/// <returns></returns>
public SqlDataReader GetMyReceive(string Username)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -