예제 #1
0
        public string RefreshCache()
        {
            var _result = new { state = 0, msg = "" };

            try
            {
                using (var client = new Tuhu.Service.Product.ProductClient())
                {
                    var result = client.RefreshDiscountRuleCache();
                    if (result.Result)
                    {
                        _result = new { state = 1, msg = "" }
                    }
                    ;
                    else
                    {
                        _result = new { state = 0, msg = result.ErrorMessage }
                    };
                }
            }
            catch (Exception ex)
            {
                _result = new { state = 0, msg = ex.ToString() };
            }
            return(Newtonsoft.Json.JsonConvert.SerializeObject(_result));
        }
 public void Execute(IJobExecutionContext context)
 {
     try
     {
         Logger.Info("开始刷新城市缓存");
         var cityids = DAL.ProductCacheDal.SelectCityIds();
         if (cityids != null && cityids.Any())
         {
             Logger.Info($"开始刷新城市缓存 共{cityids.Count()}个.");
             foreach (var cityid in cityids)
             {
                 using (var client = new Tuhu.Service.Product.ProductClient())
                 {
                     Logger.Info($"开始刷新{cityid}");
                     var result = client.SelectProductsRegionStockByForceUpdate(cityid, new List <string>(), true);
                     Logger.Info($"结束刷新{cityid}.Success:{result.Success}");
                     result.ThrowIfException(true);
                 }
             }
         }
     }
     catch (System.Exception ex)
     {
         Logger.Warn(ex);
     }
     Logger.Info("结束刷新城市缓存");
 }
예제 #3
0
        public async Task TaskMethod()
        {
            try
            {
                string sql = @"SELECT * FROM Activity.dbo.tbl_OrderGroupBuy WITH (NOLOCK) WHERE OrderStatus=1 AND (IsPush =1 OR IsPush IS NULL)";

                var list = DbHelper.ExecuteSelect <OrderGroupBuyModel>(true, sql);
                if (list != null)
                {
                    foreach (var item in list)
                    {
                        using (var productClient = new Tuhu.Service.Product.ProductClient())
                            using (var orderClient = new Tuhu.Service.Order.OrderQueryClient())
                            {
                                var orderResult   = orderClient.FetchOrderByOrderIdAsync(Convert.ToInt32(item.OrderID.Replace("TH", "")));
                                var productResult = productClient.SelectProductDetailAsync(new List <string>()
                                {
                                    item.PID
                                });
                                await Task.WhenAll(productResult, orderResult);

                                if (orderResult.Result.Success && orderResult?.Result?.Result?.SubmitDate.ToString("yyyyMMdd") != "00010101")
                                {
                                    UpdateOrderGroupIsPush(item.ID);
                                    await PushOrderFinish(item.UserId, productResult?.Result?.Result?.FirstOrDefault()?.DisplayName, orderResult.Result.Result.SumMoney, item.OrderID);
                                }
                            }
                    }
                }
            }
            catch (Exception em)
            {
                Logger.Error(em.Message, em);
            }
        }
        /// <summary>
        /// 上传 xlsx
        /// </summary>
        /// <returns></returns>
        public ActionResult AddProduct(int id)
        {
            try
            {
                //var file = Request.Files[0];

                // if (!file.FileName.Contains(".xlsx") || !file.FileName.Contains(".xls"))
                //     return Json(new { Status = -1, Error = "请上传.xlsx文件或者.xls文件" }, "text/html");

                // var excel = new Tuhu.Provisioning.Controls.ExcelHelper(file.InputStream, file.FileName);
                // var dt = excel.ExcelToDataTable("分享赚钱活动产品", true);
                ShareMakeMoneyManager manager = new ShareMakeMoneyManager();
                var dt = manager.GetFenxiangzhuanqianProduct();
                if (dt == null || dt.Rows.Count == 0)
                {
                    return(Content(JsonConvert.SerializeObject(new { Status = -1, Error = "没有要同步的数据" })));
                }
                List <SE_ShareMakeImportProducts> list = new List <SE_ShareMakeImportProducts>();
                Guid BatchGuid = Guid.NewGuid();
                int  i         = 1;
                foreach (DataRow dr in dt.Rows)
                {
                    if (string.IsNullOrWhiteSpace(dr["PID"].ToString()))
                    {
                        continue;
                    }

                    double times = Convert.ToDouble(dr["multiple"].ToString());
                    if (times < 0.1 || times > 10)
                    {
                        return(Json(new { Status = -1, Error = "积分奖励倍数不符合,配置的PID:" + dr["PID"].ToString() + "积分奖励倍数:" + dr[2].ToString() }, "text/html"));
                    }
                    list.Add(new SE_ShareMakeImportProducts()
                    {
                        BatchGuid   = BatchGuid.ToString(),
                        IsMakeMoney = true,
                        IsShare     = false,
                        Orderby     = i++,
                        PID         = dr["PID"].ToString(),
                        Times       = dr["multiple"].ToString()
                    });
                }

                using (var client = new Tuhu.Service.Product.ProductClient())
                {
                    int baseNumber = 1000;
                    int number     = (list.Count / baseNumber);
                    for (int j = 0; j <= number; j++)
                    {
                        var temp   = list.GetRange(j * baseNumber, list.Count < baseNumber ? list.Count : ((j + 1) * baseNumber - list.Count) > 0 ? (list.Count - (j * baseNumber)) : baseNumber);
                        var result = client.SelectSkuProductListByPids(temp.Select(o => o.PID).ToList());
                        result.ThrowIfException(true);

                        if (result.Success)
                        {
                            var pids = result.Result.Select(o => o.Pid);
                            foreach (var item in temp)
                            {
                                if (!pids.Contains(item.PID))
                                {
                                    return(Content(JsonConvert.SerializeObject((new { Status = -1, Error = "PID配置有误:PID:" + item.PID }))));
                                }
                                else
                                {
                                    if (temp.Where(o => o.PID == item.PID).Count() > 1)
                                    {
                                        return(Content(JsonConvert.SerializeObject(new { Status = -1, Error = "PID配置有误,同一批次不能有相同的:PID:" + item.PID })));
                                    }
                                    var product = result.Result.Where(o => o.Pid == item.PID).FirstOrDefault();
                                    if (product == null)
                                    {
                                        return(Content(JsonConvert.SerializeObject(new { Status = -1, Error = "PID未查询出来误:PID:" + item.PID })));
                                    }
                                    else
                                    {
                                        item.DisplayName = product.DisplayName;
                                    }
                                }
                            }
                        }
                        else
                        {
                            return(Content(JsonConvert.SerializeObject(new { Status = -1, Error = "调用服务验证产品信息失败" + result.ErrorMessage })));
                        }
                    }
                }


                int resultID = manager.AddProducts(list, id);
                if (resultID > 0)
                {
                    return(Content(JsonConvert.SerializeObject(new { Status = 0, ID = resultID })));
                }
                else
                {
                    return(Content(JsonConvert.SerializeObject(new { Status = -1, Error = "保存失败" })));
                }
            }
            catch (Exception em)
            {
                return(Content(JsonConvert.SerializeObject(new { Status = -1, Error = "请检查文件内容格式是否正确", ErrorMsg = em.Message })));
            }
        }