public List <MediaMappingCoPresent> WeiXinQuery(MediaKeywordMappingMongo searchTsk, List <MediaKeywordMappingMongo> taskList) { List <MediaMappingCoPresent> linkvaluelist = new List <MediaMappingCoPresent>(); BotTaskService bt = new BotTaskService(); var keyIds = taskList.Select(x => x.KeywordId.ToString()).ToList(); //获取链接数据 List <Dnl_Link_BaiduDto> linklist = bt.GetWeiXininkTitleList(keyIds); //获取当前计算映射的位置 int index = 0; for (int i = 0; i < taskList.Count; i++) { if (searchTsk.Keyword == taskList[i].Keyword) { index = i; } } //计算与其他映射关系 for (int i = 0; i < taskList.Count; i++) { MediaMappingCoPresent lk = new MediaMappingCoPresent(); lk.source = index; lk.target = i; lk.KeywordMappingId = searchTsk._id; lk.ProjectId = searchTsk.ProjectId; lk.CategoryId = searchTsk.CategoryId; int linkNum = 0; foreach (var item in linklist) { if (!string.IsNullOrEmpty(item.Title)) { if (item.Title.Contains(searchTsk.Keyword) && item.Title.Contains(taskList[i].Keyword)) { linkNum = linkNum + 1; } else if (!string.IsNullOrEmpty(item.Description) && item.Description.Contains(searchTsk.Keyword) && item.Description.Contains(taskList[i].Keyword)) { linkNum = linkNum + 1; } } } if (index == i && linkNum == 0) { linkNum = 1; } lk.value = linkNum; linkvaluelist.Add(lk); // } } SaveWeiXinResult(linkvaluelist); return(linkvaluelist); }
public void Run() { while (true) { #region 百度 //百度 BotTaskService bt = new BotTaskService(); Dnl_KeywordMapping keyTask = bt.GetBaiduBotTask(); //get_task(); //if (keyTask == null || keyTask.Keyword == "" || keyTask.Keyword == null) //{ // log("无计算目标,休眠一天!"); // Thread.Sleep(24 * 60 * 60 * 1000); // //WX_Data wscData = bt.GetWxData(); // //if (wscData == null) // //{ // //} // continue; //} //更新项目内所有该关键词的计算状态 if (keyTask != null) { var update = new UpdateDocument { { "$set", new QueryDocument { { "JisuanStatus", 1 } } } }; var builderMap = Builders <Dnl_KeywordMapping> .Filter; var filterMap = builderMap.Eq(x => x.ProjectId, keyTask.ProjectId) & builderMap.Eq(x => x.KeywordId, keyTask.KeywordId); var result = MongoDBHelper.Instance.GetDnl_KeywordMapping().UpdateMany(filterMap, update); List <Dnl_KeywordMapping> listKey = bt.GetBaiduBotTaskList(keyTask.ProjectId); BaiduSnapshot(keyTask, listKey); try { update = new UpdateDocument { { "$set", new QueryDocument { { "JisuanStatus", 2 } } } }; result = MongoDBHelper.Instance.GetDnl_KeywordMapping().UpdateMany(filterMap, update); } catch (Exception ex) { log(DateTime.Now + "错误:" + ex.Message); Thread.Sleep(2000); } } #endregion #region 微信 MediaKeywordMappingMongo WXKeyTask = bt.GetMediaBotTask(); //get_task(); if (WXKeyTask == null || WXKeyTask.Keyword == "" || WXKeyTask.Keyword == null) { log("无计算目标,休眠一天!"); Thread.Sleep(24 * 60 * 60 * 1000); //WX_Data wscData = bt.GetWxData(); //if (wscData == null) //{ //} continue; } //更新项目内所有该关键词的计算状态 var WXupdate = new UpdateDocument { { "$set", new QueryDocument { { "JisuanStatus", 1 } } } }; var builderMediaMap = Builders <MediaKeywordMappingMongo> .Filter; var filterMediaMap = builderMediaMap.Eq(x => x.ProjectId, WXKeyTask.ProjectId) & builderMediaMap.Eq(x => x.KeywordId, WXKeyTask.KeywordId); MongoDBHelper.Instance.GetMediaKeywordMapping().UpdateMany(filterMediaMap, WXupdate); List <MediaKeywordMappingMongo> listMediaKey = bt.GetWeiXinBotTaskList(WXKeyTask.ProjectId); WeiXinSnapshot(WXKeyTask, listMediaKey); try { WXupdate = new UpdateDocument { { "$set", new QueryDocument { { "JisuanStatus", 2 } } } }; MongoDBHelper.Instance.GetMediaKeywordMapping().UpdateMany(filterMediaMap, WXupdate); } catch (Exception ex) { log(DateTime.Now + "错误:" + ex.Message); Thread.Sleep(2000); } #endregion } }
void WeiXinSnapshot(MediaKeywordMappingMongo searchTask, List <MediaKeywordMappingMongo> listKey) { List <IW2S_Data> xListings = new List <IW2S_Data>(); WeChatQuery wc = new WeChatQuery(searchTask.Keyword); var links360 = wc.WeiXinQuery(searchTask, listKey); }