/// <summary> /// 查询历史记录 /// </summary> /// <param name="chatID">聊天ID</param> /// <returns></returns> public JsonResult GetChatHistoryByID(string chatID) { List <string> formatMessages = new List <string>(); try { SPhone_Chat chat = SPhone_ChatBLL.GetChat(chatID); formatMessages = GetChatText(chat, string.Empty); } catch { } return(Jsonp(formatMessages, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 创建Chat记录 /// </summary> /// <param name="enterID"></param> /// <param name="inneractionID"></param> /// <param name="fromQueue"></param> /// <param name="currentQueue"></param> /// <param name="customerID"></param> /// <param name="customerName"></param> /// <param name="machineNo"></param> /// <param name="mailAddress"></param> /// <param name="agentID"></param> /// <param name="isTransfer"></param> /// <param name="isRTO"></param> /// <param name="isMeeting"></param> /// <returns></returns> public ActionResult ChatCreate(string chatID, string enterID, string inneractionID, string fromQueue, string currentQueue , long?customerID, string customerName, string machineNo, string mailAddress , string agentID, long?beginDate, int isTransfer, int isMeeting) { var result = new AjaxReturn(); SPhone_Chat entity = new SPhone_Chat(); entity.CreateBy = agentID; long ticks = Convert.ToInt64(beginDate); if (ticks == 0) { ticks = DateTime.Now.Ticks; } entity.CreateTime = DateTime.MinValue.AddMilliseconds(ticks / 10000); entity.ChatBeginTime = entity.CreateTime; entity.ChatEndTime = entity.CreateTime; entity.ChatID = chatID; entity.ConnectionID = inneractionID; entity.CustomerID = Convert.ToInt64(customerID); entity.CustomerName = customerName; entity.Enterid = enterID; entity.MachineNo = machineNo; entity.MailAddress = mailAddress; //entity.ServicecardNo = ""; //entity.WSISID = ""; entity.EmployeeID = agentID; entity.PlaceIP = this.Request.UserHostAddress; entity.FromQueueName = fromQueue; entity.CurrentQueueName = currentQueue; //entity.NextQueueName = ""; entity.ContentText = string.Empty; entity.IsConference = isMeeting; entity.IsRTO = 0; entity.IsTransfer = isTransfer; try { SPhone_ChatBLL.AddNewChat(entity); } catch (Exception ex) { result.SetError(ex.Message); } return(Jsonp(result, JsonRequestBehavior.AllowGet)); }
private void BuildChatText(SPhone_Chat chat) { string emptyMessage = "聊天内容为空。"; StringBuilder sb = new StringBuilder(); try { string chatContent = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(chat.ContentText)); sb.AppendLine("<div class='chatContent'>"); sb.AppendLine(string.Format("<h3> {0} </h3>", chat.ChatID)); if (string.IsNullOrEmpty(chatContent)) { sb.AppendLine(emptyMessage); } else { List <ChatMessage> chatMessages = JsonConvert.DeserializeObject <List <ChatMessage> >(chatContent); if (chatMessages.Count == 0) { sb.AppendLine(emptyMessage); } else { chatMessages.ForEach(msg => { string content = HttpUtility.UrlDecode(msg.FormatMessage); // 替换标签URL content = content.Replace("/Content/Images/emote/", "/Images/emote/"); sb.AppendLine(content); }); } } sb.AppendLine("</div>"); } catch { } if (sb.Length > 0) { this.ltlContent.Text += sb.ToString(); } }
private List <string> GetChatText(SPhone_Chat chat, string keyword) { List <string> msgList = new List <string>(); try { string chatContent = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(chat.ContentText)); msgList.Add(string.Format("========= {0} ========<br />", chat.ChatID)); if (!string.IsNullOrEmpty(chatContent)) { List <Chat.Common.ChatMessage> chatMessages = JsonConvert.DeserializeObject <List <Chat.Common.ChatMessage> >(chatContent); if (!string.IsNullOrEmpty(keyword)) { chatMessages = chatMessages.FindAll(item => item.Message.IndexOf(keyword) != -1); } chatMessages.ForEach(msg => msgList.Add(msg.FormatMessage)); msgList.Add("<br />"); } } catch { } return(msgList); }