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);
        }
Ejemplo n.º 2
0
        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
            }
        }
Ejemplo n.º 3
0
 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);
 }