public override string ResultGet() { JXSearchEntityResult result = new JXSearchEntityResult() { resultCode = "Fail" }; try { string szJson = HttpContext.Current.Request["para"]; if (string.IsNullOrEmpty(szJson)) { result.resultMsg = "未指定查询参数"; return(ResultResponse(result, "listKeywords")); } // 构造查询FORM RequestForm form = JsonHelper.ParseFromJson <RequestForm>(szJson); if (form == null || form.pageForm == null || form.queryForm == null) { result.resultMsg = "解析查询参数出错"; return(ResultResponse(result, "listKeywords")); } // 搜索数据 int recCount = 0; JXSearchProvider provider = JXSearchProviderCreator.CreateProvider(JXSearchType.Keywords); result = provider.Search(form.queryForm.keyword, form.pageForm.size, form.pageForm.page, out recCount); if (result == null) { result = new JXSearchEntityResult() { resultCode = "Fail", resultMsg = "无结果" } } ; else { result.total = recCount; } } catch (Exception ex) { result.resultMsg = ex.Message; } return(ResultResponse(result, "listKeywords")); }
/// <summary> /// 更新搜索关键词 /// </summary> private static void UpdateSearchKeyword() { try { Console.WriteLine("SearchKeyword === 开始执行搜索关键词推荐商品"); // 查询关键词 int recordCount = 0; DataTable dTable = JXAPI.Component.BLL.SqlBLL.Instance.SearchKeyword_GetListForSearch(); if (dTable == null || dTable.Rows.Count <= 0) { Console.WriteLine("SearchKeyword === 未找到搜索关键词"); return; } Console.WriteLine(string.Format("SearchKeyword === 准备:{0}条数据", dTable.Rows.Count)); // 定义商品搜索 int recCount = 0; JXSearchProductResult result = null; JXSearchProvider providerProduct = JXSearchProviderCreator.CreateProvider(JXSearchType.Product); // 定义关键词搜索 JXSearchEntityResult entityResult = null; JXSearchProvider providerKeyword = JXSearchProviderCreator.CreateProvider(JXSearchType.Keywords); // string related = string.Empty, salled = string.Empty, recommend = string.Empty, preferential = string.Empty, hotSalled = string.Empty; // 遍历关键词 foreach (DataRow row in dTable.Rows) { #region 关键词相关 try { entityResult = providerKeyword.Search(row["ChineseName"].ToString(), 10, 1, out recCount); if (entityResult == null || entityResult.listKeyword == null || entityResult.listKeyword.Count <= 0) { related = string.Empty; } else { related = string.Join(",", entityResult.listKeyword.Select(i => i.chineseName).ToArray()); } } catch (Exception ex) { Console.WriteLine(string.Format("SearchKeyword === 推荐(0):{0}", ex.Message)); } #endregion #region 关键词下商品 try { result = providerProduct.Search(new RequestForm() { pageForm = new PageForm() { page = 1, size = 100 }, queryForm = new QueryForm() { keyword = row["ChineseName"].ToString() } }, out recCount); if (result == null || result.listProductList == null || result.listProductList.Count <= 0) { salled = string.Empty; recommend = string.Empty; preferential = string.Empty; hotSalled = string.Empty; } else { salled = string.Join(",", result.listProductList.OrderByDescending(i => i.sellCount).Take(10).Select(i => i.productID).ToArray()); recommend = string.Join(",", result.listProductList.OrderByDescending(i => i.recommend).Take(10).Select(i => i.productID).ToArray()); preferential = string.Join(",", result.listProductList.OrderByDescending(i => i.preferential).Take(10).Select(i => i.productID).ToArray()); hotSalled = string.Join(",", result.listProductList.OrderByDescending(i => i.preferential).ThenBy(i => i.sellCount).Take(10).Select(i => i.productID).ToArray()); } } catch (Exception ex) { Console.WriteLine(string.Format("SearchKeyword === 推荐(1):{0}", ex.Message)); } #endregion #region 保存 try { JXAPI.Component.BLL.SqlBLL.Instance.Update_SearchKeyword(related, salled, recommend, preferential, hotSalled, recCount, int.Parse(row["keywordID"].ToString())); } catch (Exception ex) { Console.WriteLine(string.Format("SearchKeyword === 推荐(2):{0}", ex.Message)); } #endregion } Console.WriteLine(string.Format("SearchKeyword === {0}条搜索关键词,推荐完成", recordCount)); } catch (Exception ex) { Console.WriteLine(string.Format("SearchKeyword === 搜索关键词推荐商品失败:{0}", ex.Message.ToString())); } }