public JsonResult DelReply(Guid id) { try { MpReplyService.BeginTransaction(); MpReply reply = MpReplyService.GetALL(x => x.Id == id).FirstOrDefault(); if (reply != null) { if (reply.MpMaterial.TypeName == "text") { MpMaterialItemService.Delete(reply.MpMaterial.MpMaterialItems.FirstOrDefault()); MpMaterialService.Delete(reply.MpMaterial); } MpReplyService.Delete(reply); } MpReplyService.Commit(); return(JsonMessage(true, "")); } catch (Exception e) { Log4NetImpl.Write("DelReply失败:" + e.Message); MpReplyService.Rollback(); return(JsonMessage(false, "")); } }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { Log4NetImpl.Write("关注事件触发:"); MpUser fromUser = MpUserService.GetByOpenID(requestMessage.FromUserName); if (fromUser != null) { Log4NetImpl.Write("EventKey:" + requestMessage.EventKey); fromUser.IsSubscribe = true; if (!string.IsNullOrEmpty(requestMessage.EventKey)) { fromUser.SceneId = Convert.ToInt32(requestMessage.EventKey.Replace("qrscene_", "")); Log4NetImpl.Write("OnEvent_SubscribeRequest:" + fromUser.SceneId.ToString()); } fromUser.LastVisitDate = DateTime.Now; MpUserService.Update(fromUser); } var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); MpReply reply = MpReplyService.GetALL(k => k.Action == "beadded").FirstOrDefault(); if (reply != null) { return(ResponseMsg(reply.MpMaterial)); } return(responseMessage); }
/// <summary> /// 处理链接消息请求 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnLinkRequest(RequestMessageLink requestMessage) { MpReply reply = MpReplyService.GetALL(k => k.Action == "autoreply").FirstOrDefault(); if (reply != null) { return(ResponseMsg(reply.MpMaterial)); } return(null); }
public ActionResult Index(string type) { if (type == "beadded") { if (!base.HasPermission("mpattentionreply", PermissionOperate.manager)) { return(base.ShowNotPermissionTip("")); } } if (type == "autoreply") { if (!base.HasPermission("mpmessagereply", PermissionOperate.manager)) { return(base.ShowNotPermissionTip("")); } } MpReply reply = MpReplyService.GetByAction(type); if (reply == null) { reply = new MpReply(); reply.Id = Guid.Empty; reply.Action = type; reply.CategoryID = Guid.Empty; reply.CreateDate = DateTime.Now; reply.CreateUser = Guid.Empty; reply.KeywordName = ""; reply.MatchMode = 0; reply.MaterialID = Guid.Empty; reply.MpMaterial = new MpMaterial { Id = Guid.Empty, TypeName = "text", TypeID = 5, CreateDate = DateTime.Now }; IList <MpMaterialItem> mpitems = new List <MpMaterialItem> { new MpMaterialItem { Id = Guid.Empty, CreateDate = DateTime.Now, ReplyContent = "" } }; reply.MpMaterial.MpMaterialItems = mpitems; reply.RuleName = ""; reply.SortIndex = 0; reply.UpdateDate = DateTime.Now; reply.UpdateUser = Guid.Empty; } ViewBag.strList = JsonConvert.SerializeObject(reply); return(View(reply)); }
/// <summary> /// 处理文字请求 /// </summary> /// <returns></returns> public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { MpReply reply = MpReplyService.GetALL(k => k.KeywordName == requestMessage.Content.Trim()).FirstOrDefault(); MpUser fromUser = MpUserService.GetByOpenID(requestMessage.FromUserName); if (fromUser != null) { if (reply == null) { reply = MpReplyService.GetALL(k => k.Action == "autoreply").FirstOrDefault(); } if (reply != null) { fromUser.LastVisitDate = DateTime.Now; fromUser.IsSubscribe = true; MpUserService.Update(fromUser); //用户接入 if (reply.MpMaterial.IsChat == 1) { Client.StartKfMeeting(fromUser.Id); return(null); } //用户断开 if (reply.MpMaterial.IsChat == 2 || fromUser.LastVisitDate.AddMinutes(120) < DateTime.Now) { fromUser.UserState = 0; Client.EndKfMeeting(fromUser.Id); return(null); } if (fromUser.UserState == 1) { //发送消息给客服 Client.SendPrivateMessage(fromUser.Id, requestMessage.Content); return(null); } return(ResponseMsg(reply.MpMaterial)); } } return(null); }