//关注时触发 public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { DataProviderWx.CountDao.AddCount(publishmentSystemInfo.PublishmentSystemId, ECountType.UserSubscribe); var keywordID = 0; var keyword = string.Empty; if (accountInfo.IsWelcome && !string.IsNullOrEmpty(accountInfo.WelcomeKeyword)) { keyword = accountInfo.WelcomeKeyword; keywordID = DataProviderWx.KeywordMatchDao.GetKeywordIdbyMpController(publishmentSystemInfo.PublishmentSystemId, keyword); } KeywordInfo keywordInfo = null; if (keywordID > 0) { keywordInfo = DataProviderWx.KeywordDao.GetKeywordInfo(keywordID); } return(GetResponseMessage(keywordInfo, keyword)); }
private IResponseMessageBase GetResponseMessage(string keyword) { KeywordInfo keywordInfo = null; var keywordID = DataProviderWX.KeywordMatchDAO.GetKeywordIDByMPController(publishmentSystemInfo.PublishmentSystemId, keyword); if (keywordID == 0 && StringUtils.StartsWith(keyword, "GX_")) { var keywordType = EKeywordTypeUtils.GetEnumType(keyword.Substring(3)); keywordInfo = new KeywordInfo(0, publishmentSystemInfo.PublishmentSystemId, keyword, false, keywordType, EMatchType.Exact, string.Empty, DateTime.Now, 0); } if (keywordID == 0 && keywordInfo == null && accountInfo.IsDefaultReply && !string.IsNullOrEmpty(accountInfo.DefaultReplyKeyword)) { keywordID = DataProviderWX.KeywordMatchDAO.GetKeywordIDByMPController(publishmentSystemInfo.PublishmentSystemId, accountInfo.DefaultReplyKeyword); } if (keywordInfo == null && keywordID > 0) { keywordInfo = DataProviderWX.KeywordDAO.GetKeywordInfo(keywordID); } return(GetResponseMessage(keywordInfo, keyword)); }
private IResponseMessageBase GetResponseMessage(KeywordInfo keywordInfo, string keyword) { try { if (keywordInfo != null && !keywordInfo.IsDisabled) { if (keywordInfo.KeywordType == EKeywordType.Text) { DataProviderWX.CountDAO.AddCount(publishmentSystemInfo.PublishmentSystemId, ECountType.RequestText); var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = keywordInfo.Reply; return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.News) { DataProviderWX.CountDAO.AddCount(publishmentSystemInfo.PublishmentSystemId, ECountType.RequestNews); var responseMessage = CreateResponseMessage <ResponseMessageNews>(); foreach (var resourceInfo in DataProviderWX.KeywordResourceDAO.GetResourceInfoList(keywordInfo.KeywordID)) { var imageUrl = PageUtils.AddProtocolToUrl(PageUtility.ParseNavigationUrl(publishmentSystemInfo, resourceInfo.ImageUrl)); var pageUrl = string.Empty; if (resourceInfo.ResourceType == EResourceType.Site) { if (resourceInfo.ChannelID > 0 && resourceInfo.ContentID > 0) { pageUrl = PageUtilityWX.GetContentUrl(publishmentSystemInfo, resourceInfo.ChannelID, resourceInfo.ContentID, false); } else if (resourceInfo.ChannelID > 0) { pageUrl = PageUtilityWX.GetChannelUrl(publishmentSystemInfo, resourceInfo.ChannelID); } else { pageUrl = PageUtilityWX.GetChannelUrl(publishmentSystemInfo, publishmentSystemInfo.PublishmentSystemId); } } else if (resourceInfo.ResourceType == EResourceType.Content) { pageUrl = PageUtilityWX.GetWeiXinFileUrl(publishmentSystemInfo, resourceInfo.KeywordID, resourceInfo.ResourceID); } else if (resourceInfo.ResourceType == EResourceType.Url) { pageUrl = resourceInfo.NavigationUrl; } responseMessage.Articles.Add(new Article() { Title = resourceInfo.Title, Description = MPUtils.GetSummary(resourceInfo.Summary, resourceInfo.Content), PicUrl = imageUrl, Url = pageUrl }); } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Coupon) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = CouponManager.Trigger(keywordInfo, keyword, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Vote) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = VoteManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Message) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = MessageManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Appointment) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = AppointmentManager.Trigger(keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Conference) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = ConferenceManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Map) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = MapManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.View360) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = View360Manager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Album) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = AlbumManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Scratch) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = LotteryManager.Trigger(keywordInfo, ELotteryType.Scratch, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.BigWheel) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = LotteryManager.Trigger(keywordInfo, ELotteryType.BigWheel, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.GoldEgg) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = LotteryManager.Trigger(keywordInfo, ELotteryType.GoldEgg, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Flap) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = LotteryManager.Trigger(keywordInfo, ELotteryType.Flap, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.YaoYao) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = LotteryManager.Trigger(keywordInfo, ELotteryType.YaoYao, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Search) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = SearchManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Store) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = StoreManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Collect) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = CollectManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } else if (keywordInfo.KeywordType == EKeywordType.Card) { var responseMessage = CreateResponseMessage <ResponseMessageNews>(); var articleList = CardManager.Trigger(publishmentSystemInfo, keywordInfo, RequestMessage.FromUserName); if (articleList.Count > 0) { foreach (var article in articleList) { responseMessage.Articles.Add(article); } } return(responseMessage); } } } catch (Exception ex) { LogUtils.AddLog(string.Empty, "Gexia Error", ex.StackTrace); } return(null); }