/// <summary> /// 获取登录后所有消息 /// </summary> /// <param name="olId">在线编号</param> /// <returns></returns> public virtual IList <EyouSoft.Model.OnLineServer.OlServerMessageInfo> GetMessages(string olId) { IList <EyouSoft.Model.OnLineServer.OlServerMessageInfo> lsMsg = new List <EyouSoft.Model.OnLineServer.OlServerMessageInfo>(); EyouSoft.Model.OnLineServer.OlServerMessageInfo model = null; string sql = "select Id,SendId,SendName,AcceptId,AcceptName,[Message],SendTime from OL_ServerMessage where " + " (AcceptId = @AcceptId or SendId = @SendId) and SendTime > (select LoginTime from OL_ServerUsers where Id = @Id)" + " order by SendTime asc"; DbCommand cmd = this._db.GetSqlStringCommand(sql); this._db.AddInParameter(cmd, "AcceptId", DbType.AnsiStringFixedLength, olId); this._db.AddInParameter(cmd, "SendId", DbType.AnsiStringFixedLength, olId); this._db.AddInParameter(cmd, "Id", DbType.AnsiStringFixedLength, olId); using (IDataReader rdr = DbHelper.ExecuteReader(cmd, this._db)) { while (rdr.Read()) { #region 基本信息 model = new EyouSoft.Model.OnLineServer.OlServerMessageInfo(); model.MessageId = rdr.GetString(rdr.GetOrdinal("Id")); model.SendId = rdr.IsDBNull(rdr.GetOrdinal("SendId")) ? "" : rdr.GetString(rdr.GetOrdinal("SendId")); model.SendName = rdr.IsDBNull(rdr.GetOrdinal("SendName")) ? "" : rdr.GetString(rdr.GetOrdinal("SendName")); model.AcceptId = rdr.IsDBNull(rdr.GetOrdinal("AcceptId")) ? "" : rdr.GetString(rdr.GetOrdinal("AcceptId")); model.AcceptName = rdr.IsDBNull(rdr.GetOrdinal("AcceptName")) ? "" : rdr.GetString(rdr.GetOrdinal("AcceptName")); model.Message = rdr.IsDBNull(rdr.GetOrdinal("Message")) ? "" : rdr.GetString(rdr.GetOrdinal("Message")); model.SendTime = rdr.GetDateTime(rdr.GetOrdinal("SendTime")); #endregion lsMsg.Add(model); } } return(lsMsg); }
protected void Page_Load(object sender, EventArgs e) { //清理过了指定停留时间的在线用户的在线状态为不在线(不含客服人员) OlServerUtility.ClearUserOut(); EyouSoft.Model.OnLineServer.OlServerUserInfo olInfo = null; EyouSoft.Model.OnLineServer.OlServerUserInfo olCookieInfo = OlServerUtility.GetOlCookieInfo(this.IsService); EyouSoft.Model.OnLineServer.OlServerConfig configInfo = null; EyouSoft.BLL.OnLineServer.OLServer bll = new EyouSoft.BLL.OnLineServer.OLServer(); olInfo = bll.ServiceLogin(base.SiteUserInfo, true, base.SiteUserInfo.CompanyID); bll = null; //获取在线客服配置信息 configInfo = OlServerUtility.GetOlServerConfig(); string olserverinfo = "var olserverinfos={{uInfo:{0},configInfo:{1},mInfo:{2},lastTime:\"{3}\",CompanyName:\"{4}\"}};"; string userInfoJsonString = JsonConvert.SerializeObject(olInfo); string configInfoJsonString = JsonConvert.SerializeObject(configInfo); EyouSoft.Model.OnLineServer.OlServerMessageInfo MessageInfo = new EyouSoft.Model.OnLineServer.OlServerMessageInfo(); MessageInfo.AcceptId = string.Empty; MessageInfo.AcceptName = string.Empty; MessageInfo.Message = string.Empty; MessageInfo.MessageId = string.Empty; MessageInfo.SendId = string.Empty; MessageInfo.SendName = string.Empty; MessageInfo.SendTime = DateTime.Now; string messageInfoJsonString = JsonConvert.SerializeObject(MessageInfo); //设置cookie this.SetOlCookieInfo(this.IsService, userInfoJsonString); this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "DEFAULTINFOS", string.Format(olserverinfo, userInfoJsonString, configInfoJsonString, messageInfoJsonString, DateTime.Now.ToString(), SiteUserInfo.CompanyName), true); #region 设置企业名称 lbCompanyName1.Text = SiteUserInfo.CompanyName; lbCompanyName.Text = SiteUserInfo.CompanyName; EyouSoft.Model.CompanyStructure.CompanyAttachInfo ImgModel = EyouSoft.BLL.CompanyStructure.CompanyAttachInfo.CreateInstance().GetModel(SiteUserInfo.CompanyID); if (ImgModel != null && ImgModel.CompanyLogo != null && !string.IsNullOrEmpty(ImgModel.CompanyLogo.ImagePath)) { CompanyLogPath = Domain.FileSystem + ImgModel.CompanyLogo.ImagePath; } #endregion }
/// <summary> /// 写入消息,返回写入的消息编号 /// </summary> /// <param name="messageInfo">Model.OnLineServer.OlServerMessageInfo</param> /// <returns>string</returns> public string InsertMessage(EyouSoft.Model.OnLineServer.OlServerMessageInfo messageInfo) { if (messageInfo == null) { return(string.Empty); } //设置最后发送消息时间 if (dal.InsertMessage(messageInfo)) { dal.SetLastSendMessageTime(messageInfo.SendId, messageInfo.SendTime); } return(messageInfo.MessageId); }
/// <summary> /// 按条件分页获得聊天记录 /// </summary> /// <param name="StartTime">开始时间</param> /// <param name="EndTime">结束时间</param> /// <param name="LikeInfo">消息内容包含的文字</param> /// <param name="pageSize">单页显示的数量</param> /// <param name="pageIndex">页索引</param> /// <param name="recordSum">总记录数量</param> /// <returns></returns> public virtual IList <EyouSoft.Model.OnLineServer.OlServerMessageInfo> GetMessages(DateTime?StartTime, DateTime?EndTime, string LikeInfo, int pageSize, int pageIndex, ref int recordSum) { IList <EyouSoft.Model.OnLineServer.OlServerMessageInfo> lsMsg = new List <EyouSoft.Model.OnLineServer.OlServerMessageInfo>(); EyouSoft.Model.OnLineServer.OlServerMessageInfo model = null; string tableName = "OL_ServerMessage"; string primaryKey = "Id"; string orderByString = "SendTime asc"; string fields = " Id,SendId,SendName,AcceptId,AcceptName,[Message],SendTime"; StringBuilder cmdQuery = new StringBuilder(); if (StartTime != null && StartTime != DateTime.MaxValue && StartTime != DateTime.MinValue) { cmdQuery.AppendFormat(" and datediff(d,'{0}',SendTime) >= 0", StartTime); } if (EndTime != null && EndTime != DateTime.MaxValue && EndTime != DateTime.MinValue) { cmdQuery.AppendFormat(" and datediff(d,'{0}',SendTime) <= 0", EndTime); } if (!string.IsNullOrEmpty(LikeInfo)) { cmdQuery.AppendFormat(" and [Message] like '%{0}%'", LikeInfo); } using (IDataReader rdr = DbHelper.ExecuteReader(this._db, pageSize, pageIndex, ref recordSum, tableName, primaryKey, fields, cmdQuery.ToString(), orderByString)) { while (rdr.Read()) { #region 基本信息 model = new EyouSoft.Model.OnLineServer.OlServerMessageInfo(); model.MessageId = rdr.GetString(rdr.GetOrdinal("Id")); model.SendId = rdr.IsDBNull(rdr.GetOrdinal("Id")) ? "" : rdr.GetString(rdr.GetOrdinal("SnedId")); model.SendName = rdr.IsDBNull(rdr.GetOrdinal("SendName")) ? "" : rdr.GetString(rdr.GetOrdinal("SendName")); model.AcceptId = rdr.IsDBNull(rdr.GetOrdinal("AcceptId")) ? "" : rdr.GetString(rdr.GetOrdinal("AcceptId")); model.AcceptName = rdr.IsDBNull(rdr.GetOrdinal("AcceptName")) ? "" : rdr.GetString(rdr.GetOrdinal("AcceptName")); model.Message = rdr.IsDBNull(rdr.GetOrdinal("Message")) ? "" : rdr.GetString(rdr.GetOrdinal("Message")); model.SendTime = rdr.GetDateTime(rdr.GetOrdinal("SendTime")); #endregion lsMsg.Add(model); } } return(lsMsg); }
/// <summary> /// 写入消息,返回写入的消息编号 /// </summary> /// <param name="messageInfo">Model.OnLineServer.OlServerMessageInfo</param> /// <returns></returns> public virtual bool InsertMessage(EyouSoft.Model.OnLineServer.OlServerMessageInfo messageInfo) { if (messageInfo == null) { return(false); } messageInfo.MessageId = Guid.NewGuid().ToString(); string sql = "insert into OL_ServerMessage (Id,SendId,SendName,AcceptId,AcceptName,[Message],SendTime) values " + " (@Id,@SendId,@SendName,@AcceptId,@AcceptName,@Message,@SendTime)"; DbCommand cmd = this._db.GetSqlStringCommand(sql); this._db.AddInParameter(cmd, "Id", DbType.AnsiStringFixedLength, messageInfo.MessageId); this._db.AddInParameter(cmd, "SendId", DbType.AnsiStringFixedLength, messageInfo.SendId); this._db.AddInParameter(cmd, "SendName", DbType.String, messageInfo.SendName); this._db.AddInParameter(cmd, "AcceptId", DbType.AnsiStringFixedLength, messageInfo.AcceptId); this._db.AddInParameter(cmd, "AcceptName", DbType.String, messageInfo.AcceptName); this._db.AddInParameter(cmd, "Message", DbType.String, messageInfo.Message); this._db.AddInParameter(cmd, "SendTime", DbType.DateTime, messageInfo.SendTime); return(DbHelper.ExecuteSql(cmd, this._db) > 0 ? true : false); }
/// <summary> /// 根据最后发送消息时间获取最后发送消息时间以后发给自己的所有消息 /// </summary> /// <param name="olId">在线编号</param> /// <param name="LastSendMessageTime">最后发送消息时间</param> /// <returns></returns> public virtual IList <EyouSoft.Model.OnLineServer.OlServerMessageInfo> GetMessages(string olId, DateTime?LastSendMessageTime) { IList <EyouSoft.Model.OnLineServer.OlServerMessageInfo> lsMsg = new List <EyouSoft.Model.OnLineServer.OlServerMessageInfo>(); EyouSoft.Model.OnLineServer.OlServerMessageInfo model = null; string sql = "select Id,SendId,SendName,AcceptId,AcceptName,[Message],SendTime from OL_ServerMessage where AcceptId = @AcceptId {0}"; if (LastSendMessageTime.HasValue) { sql = string.Format(sql, string.Format(" and datediff(ss,SendTime,'{0}')<0", LastSendMessageTime.Value.ToString())); } else { sql = string.Format(sql, ""); } sql += " order by SendTime asc "; DbCommand cmd = this._db.GetSqlStringCommand(sql); this._db.AddInParameter(cmd, "AcceptId", DbType.AnsiStringFixedLength, olId); using (IDataReader rdr = DbHelper.ExecuteReader(cmd, this._db)) { while (rdr.Read()) { #region 基本信息 model = new EyouSoft.Model.OnLineServer.OlServerMessageInfo(); model.MessageId = rdr.GetString(rdr.GetOrdinal("Id")); model.SendId = rdr.IsDBNull(rdr.GetOrdinal("SendId")) ? "" : rdr.GetString(rdr.GetOrdinal("SendId")); model.SendName = rdr.IsDBNull(rdr.GetOrdinal("SendName")) ? "" : rdr.GetString(rdr.GetOrdinal("SendName")); model.AcceptId = rdr.IsDBNull(rdr.GetOrdinal("AcceptId")) ? "" : rdr.GetString(rdr.GetOrdinal("AcceptId")); model.AcceptName = rdr.IsDBNull(rdr.GetOrdinal("AcceptName")) ? "" : rdr.GetString(rdr.GetOrdinal("AcceptName")); model.Message = rdr.IsDBNull(rdr.GetOrdinal("Message")) ? "" : rdr.GetString(rdr.GetOrdinal("Message")); model.SendTime = rdr.GetDateTime(rdr.GetOrdinal("SendTime")); #endregion lsMsg.Add(model); } } return(lsMsg); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //获取发送的消息JSON字符串 string msginfo = context.Request.Form["msginfo"]; EyouSoft.Model.OnLineServer.OlServerMessageInfo messageInfo = null; //发送消息的结果信息 EyouSoft.Model.OnLineServer.OlServerSendMessageResultInfo sendResultInfo = new EyouSoft.Model.OnLineServer.OlServerSendMessageResultInfo(string.Empty, DateTime.Now, false); //将JSON字符串反序列化 try { messageInfo = (EyouSoft.Model.OnLineServer.OlServerMessageInfo)JsonConvert.DeserializeObject(msginfo, typeof(EyouSoft.Model.OnLineServer.OlServerMessageInfo)); } catch {} //消息转化成功写入 if (messageInfo != null) { messageInfo.SendTime = DateTime.Now; EyouSoft.BLL.OnLineServer.OLServer bll = new EyouSoft.BLL.OnLineServer.OLServer(); messageInfo.SendTime = sendResultInfo.SendTime; //消息内容过虑 messageInfo.Message = Utils.InputText(messageInfo.Message); sendResultInfo.MessageId = bll.InsertMessage(messageInfo); messageInfo = null; bll = null; sendResultInfo.IsSuccess = true; } //返回字符串 string sendResultInfoJsonString = JsonConvert.SerializeObject(sendResultInfo); context.Response.Write(sendResultInfoJsonString); }
protected void Page_Load(object sender, EventArgs e) { SetCompanyId(); //清理过了指定停留时间的在线用户的在线状态为不在线(不含客服人员) OlServerUtility.ClearUserOut(); EyouSoft.Model.OnLineServer.OlServerUserInfo olInfo = null; EyouSoft.Model.OnLineServer.OlServerUserInfo olCookieInfo = OlServerUtility.GetOlCookieInfo(this.IsService); EyouSoft.Model.OnLineServer.OlServerConfig configInfo = null; EyouSoft.BLL.OnLineServer.OLServer bll = new EyouSoft.BLL.OnLineServer.OLServer(); UserInfo userInfo = null; bool isLogin = EyouSoft.Security.Membership.UserProvider.IsUserLogin(out userInfo); if (!isLogin) { olInfo = bll.GuestLogin(olCookieInfo, _companyid); } else { olInfo = bll.ServiceLogin(userInfo, this.IsService, _companyid); } bll = null; //获取在线客服配置信息 configInfo = OlServerUtility.GetOlServerConfig(); string olserverinfo = "var olserverinfos={{uInfo:{0},configInfo:{1},mInfo:{2},lastTime:\"{3}\",CompanyName:\"{4}\"}};"; string userInfoJsonString = JsonConvert.SerializeObject(olInfo); string configInfoJsonString = JsonConvert.SerializeObject(configInfo); EyouSoft.Model.OnLineServer.OlServerMessageInfo MessageInfo = new EyouSoft.Model.OnLineServer.OlServerMessageInfo(); MessageInfo.AcceptId = string.Empty; MessageInfo.AcceptName = string.Empty; MessageInfo.Message = string.Empty; MessageInfo.MessageId = string.Empty; MessageInfo.SendId = string.Empty; MessageInfo.SendName = string.Empty; MessageInfo.SendTime = DateTime.Now; string messageInfoJsonString = JsonConvert.SerializeObject(MessageInfo); //设置cookie this.SetOlCookieInfo(this.IsService, userInfoJsonString); this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "DEFAULTINFOS", string.Format(olserverinfo, userInfoJsonString, configInfoJsonString, messageInfoJsonString, DateTime.Now.ToString(), _companyinfo.CompanyName), true); #region 设置企业名称 lbCompanyName1.Text = _companyinfo.CompanyName; lbCompanyName.Text = _companyinfo.CompanyName; ltrCompanyName.Text = _companyinfo.CompanyName; EyouSoft.Model.CompanyStructure.CompanyAttachInfo ImgModel = EyouSoft.BLL.CompanyStructure.CompanyAttachInfo.CreateInstance().GetModel(_companyid); if (ImgModel != null && ImgModel.CompanyLogo != null && !string.IsNullOrEmpty(ImgModel.CompanyLogo.ImagePath)) { CompanyLogPath = Domain.FileSystem + ImgModel.CompanyLogo.ImagePath; } ImgModel = null; if (_companyinfo != null) { StringBuilder strCompanyInfo = new StringBuilder(); if (!string.IsNullOrEmpty(_companyinfo.CompanyBrand)) { strCompanyInfo.AppendFormat("<strong>品牌名称:</strong>{0}<br />", _companyinfo.CompanyBrand); } if (_companyinfo.ContactInfo != null && !string.IsNullOrEmpty(_companyinfo.ContactInfo.ContactName)) { strCompanyInfo.AppendFormat("联系人:{0}<br />", _companyinfo.ContactInfo.ContactName); } if (_companyinfo.ContactInfo != null && !string.IsNullOrEmpty(_companyinfo.ContactInfo.Mobile)) { strCompanyInfo.AppendFormat("手机:{0}<br />", _companyinfo.ContactInfo.Mobile); } if (_companyinfo.ContactInfo != null && !string.IsNullOrEmpty(_companyinfo.ContactInfo.Tel)) { strCompanyInfo.AppendFormat("电话:{0}<br />", _companyinfo.ContactInfo.Tel); } if (_companyinfo.ContactInfo != null && !string.IsNullOrEmpty(_companyinfo.ContactInfo.Fax)) { strCompanyInfo.AppendFormat("传真:{0}<br />", _companyinfo.ContactInfo.Fax); } if (!string.IsNullOrEmpty(_companyinfo.CompanyAddress)) { strCompanyInfo.AppendFormat("地址:{0}", _companyinfo.CompanyAddress); } if (strCompanyInfo.Length > 0) { strCompanyInfo.Insert(0, "<li>"); strCompanyInfo.Append("</li>"); } ltrCompanyInfo.Text = strCompanyInfo.ToString(); } #endregion }