/// <summary>
        /// 获取蓄电池券后价
        /// </summary>
        /// <param name="oids"></param>
        /// <returns></returns>
        private async Task <List <Service.Member.Models.ProductGetRuleModel> > SelectProductUsefulPromotionAsync(List <Service.Member.Request.ProductModel> products)
        {
            var result = new List <Service.Member.Models.ProductGetRuleModel>();

            if (products != null && products.Any())
            {
                using (var client = new Service.Member.PromotionClient())
                {
                    var batchSize = 200;
                    for (var i = 0; i < Math.Ceiling(products.Count * 1.0 / 200); i++) ////分批查询 每批次200个
                    {
                        var clientResult = await client.SelectProductUsefulPromotionAsync(
                            new Service.Member.Request.SelectProductUsefulPromotionRequest()
                        {
                            UserId          = null,
                            OrderPayMethod  = 1,
                            InstallType     = 1,
                            EnabledGroupBuy = false,
                            ProductList     = products.Skip(i *batchSize).Take(batchSize).ToList()
                        });

                        if (!clientResult.Success && clientResult.Exception != null)
                        {
                            throw new Exception("调用Member服务SelectProductPromotionGetRuleByOids失败", clientResult.Exception);
                        }
                        result.AddRange(clientResult.Result);
                    }
                }
            }
            return(result);
        }
Exemple #2
0
 /// <summary>
 /// 根据GetRuleGUIDs获取优惠券信息
 /// </summary>
 /// <param name="getRuleIds"></param>
 /// <returns></returns>
 public static IEnumerable <Service.Member.Models.CouponRuleModel> GetCouponRules(IEnumerable <Guid> getRuleIds)
 {
     using (var client = new Service.Member.PromotionClient())
     {
         var serviceResult = client.GetCouponRules(getRuleIds);
         serviceResult.ThrowIfException(true);
         return(serviceResult.Result);
     }
 }