Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        /// <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()));
            }
        }