public async Task <PartialViewResult> CreateOrEditModal(int id) { if (id != 0) { var output = await _mpSelfArticleAppService.Get(new EntityDto <int>(id)); var viewModel = new CreateOrEditMpSelfArticleViewModel(output); return(PartialView("_CreateOrEditModal", viewModel)); } else { var mpID = await _userMpAppService.GetDefaultMpId(); var model = new CreateOrEditMpSelfArticleViewModel() { MpID = mpID }; return(PartialView("_CreateOrEditModal", model)); } }
/// <summary> /// 获取实体中的回复 /// </summary> /// <param name="type"></param> /// <param name="imageMediaID"></param> /// <param name="content"></param> /// <param name="voiceMediaID"></param> /// <param name="videoID"></param> /// <param name="articleID"></param> /// <param name="articleGroupID"></param> /// <returns></returns> private async Task <IResponseMessageBase> GetEntityResponse(string type, string imageMediaID, string content, string voiceMediaID, string videoID, string articleID, string articleGroupID, RequestMessageText requestMessage = null) { if (type == ReplyMsgType.kf.ToString()) { #region 春雨医生逻辑处理 var chunyuHandler = _iocResolver.Resolve <IChunYuMessageHandler>(); //如果春雨医生未结束,先引导用户主动关闭春雨医生会话 if (await chunyuHandler.IsAsking(mpId, requestMessage.FromUserName)) { return(await chunyuHandler.CustomerNotice(mpId, requestMessage)); } #endregion #region 客服逻辑处理 var kefuMessageHandler = _iocResolver.Resolve <IKeFuMessageHandler>(); return(await kefuMessageHandler.InCustomer(mpId, requestMessage)); #endregion } else if (type == ReplyMsgType.doctor.ToString()) { #region 客服逻辑处理 var kefuMessageHandler = _iocResolver.Resolve <IKeFuMessageHandler>(); if (await kefuMessageHandler.IsAsking(mpId, requestMessage.FromUserName)) { return(await kefuMessageHandler.ChunYuNotice(mpId, requestMessage)); } #endregion #region 春雨医生逻辑处理 var chunyuHandler = _iocResolver.Resolve <IChunYuMessageHandler>(); return(await chunyuHandler.CreateProblem(mpId, requestMessage)); #endregion } else if (type == ReplyMsgType.none.ToString()) { return(base.CreateResponseMessage <ResponseMessageNoResponse>()); } else if (type == ReplyMsgType.image.ToString()) { var responseMessage = base.CreateResponseMessage <ResponseMessageImage>(); responseMessage.Image.MediaId = imageMediaID; return(responseMessage); } else if (type == ReplyMsgType.text.ToString()) { var responseMessage = base.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = content; return(responseMessage); } else if (type == ReplyMsgType.voice.ToString()) { var responseMessage = base.CreateResponseMessage <ResponseMessageVoice>(); responseMessage.Voice.MediaId = voiceMediaID; return(responseMessage); } else if (type == ReplyMsgType.video.ToString()) { var responseMessage = base.CreateResponseMessage <ResponseMessageVideo>(); int vedioId = 0; int.TryParse(videoID, out vedioId); var video = await _mpMediaVideoAppService.Get(new EntityDto <int> { Id = vedioId }); if (video != null) { responseMessage.Video.MediaId = video.MediaID; responseMessage.Video.Title = video.Title; responseMessage.Video.Description = video.Description; return(responseMessage); } else { return(base.CreateResponseMessage <ResponseMessageNoResponse>()); } } else if (type == ReplyMsgType.mpnews.ToString()) { var responseMessage = base.CreateResponseMessage <ResponseMessageNews>(); int articleId = 0; int.TryParse(articleID, out articleId); var article = await _mpSelfArticleAppService.Get(new EntityDto <int> { Id = articleId }); if (article != null) { responseMessage.Articles.Add(new Article() { Title = article.Title, Description = article.Description, Url = article.AUrl, PicUrl = article.FilePathOrUrl }); return(responseMessage); } else { return(base.CreateResponseMessage <ResponseMessageNoResponse>()); } } else if (type == ReplyMsgType.mpmultinews.ToString()) { var responseMessage = base.CreateResponseMessage <ResponseMessageNews>(); int articleGroupId = 0; int.TryParse(articleGroupID, out articleGroupId); var groupItems = await _mpSelfArticleGroupItemAppService.GetGroupItems(articleGroupId); if (!(groupItems == null || groupItems.Count() < 2)) { var articleIds = groupItems.Select(m => m.ArticleID).ToList(); var articles = await _mpSelfArticleAppService.GetListByIds(articleIds); foreach (var id in articleIds) { var item = articles.Where(m => m.Id == id).FirstOrDefault(); responseMessage.Articles.Add(new Article() { Title = item.Title, Description = item.Description, Url = item.AUrl, PicUrl = item.FilePathOrUrl }); } return(responseMessage); } else { return(base.CreateResponseMessage <ResponseMessageNoResponse>()); } } else { return(null); } }