示例#1
0
        private void FillAdvanceInfo(dynamic card, AdvanceInfo info)
        {
            if (info == null)
            {
                return;
            }

            card.advanced_info = new DynamicObject();

            if (info.UseCondition != null)
            {
                card.advanced_info.use_condition = new
                {
                    accept_category             = info.UseCondition.AcceptCategory,
                    reject_category             = info.UseCondition.RejectCategory,
                    least_cost                  = info.UseCondition.LeastCost,
                    object_use_for              = info.UseCondition.ObjectUseFor,
                    can_use_with_other_discount = info.UseCondition.CanUseWithOtherDiscount
                };
            }

            if (info.Abstract != null)
            {
                card.advanced_info.@abstract = new
                {
                    @abstract     = info.Abstract.Abstract,
                    icon_url_list = info.Abstract.IconUrlList
                };
            }

            if (info.TextImageList != null)
            {
                card.advanced_info.text_image_list = info.TextImageList.Select(t => new
                {
                    image_url = t.ImageUrl,
                    text      = t.Text
                });
            }

            if (info.BusinessServices != null)
            {
                card.advanced_info.business_service = info.BusinessServices.Select(t => t.ToString());
            }

            if (info.TimeLimit != null)
            {
                card.advanced_info.time_limit = info.TimeLimit.Select(t => new
                {
                    type         = t.Type.ToString(),
                    begin_hour   = t.BeginHour,
                    begin_minute = t.BeginMinute,
                    end_hour     = t.EndHour,
                    end_minute   = t.EndMinute
                });
            }
        }
示例#2
0
        private AdvanceInfo ToAdModel(JToken adinfo, string cardType)
        {
            AdvanceInfo ad = new AdvanceInfo();

            PropertyInfo[] properties = ad.GetType().GetProperties();

            JEnumerable <JToken> nodeList = adinfo.Children();

            foreach (JProperty item in nodeList)
            {
                string       name = item.Name;
                PropertyInfo p    = properties.Where(t => t.Name == name).FirstOrDefault();
                if (p == null)
                {
                    continue;
                }
                object val = item.Value.ToObject(p.PropertyType);
                p.SetValue(ad, Convert.ChangeType(val, p.PropertyType), null);
            }
            return(ad);
        }
示例#3
0
        /// <summary>
        /// 创建卡券
        /// </summary>
        private CreateCardResult CreateCard(CardType cardType, dynamic card, RequiredInfo required, BaseInfo baseInfo, AdvanceInfo advance)
        {
            var dic = new Dictionary <string, object>();

            dic.Add("card_type", cardType.ToString());
            dic.Add(cardType.ToString().ToLower(), card);
            FillBaseInfo(card, required, baseInfo);
            FillAdvanceInfo(card, advance);
            var data = new
            {
                card = dic
            };

            return(PostJson <CreateCardResult>("/card/create", data));
        }
示例#4
0
        /// <summary>
        /// 创建优惠券
        /// </summary>
        /// <param name="defaultDetail">优惠详情</param>
        /// <param name="required">必填信息</param>
        /// <param name="baseInfo">基本信息</param>
        /// <param name="advance">高级信息</param>
        public CreateCardResult CreateGeneralCouponCard(string defaultDetail, RequiredInfo required, BaseInfo baseInfo = null, AdvanceInfo advance = null)
        {
            dynamic card = new DynamicObject();

            card.default_detail = defaultDetail;
            return(CreateCard(CardType.GENERAL_COUPON, card, required, baseInfo, advance));
        }
示例#5
0
        /// <summary>
        /// 创建兑换券
        /// </summary>
        /// <param name="gift">兑换内容的名称</param>
        /// <param name="required">必填信息</param>
        /// <param name="baseInfo">基本信息</param>
        /// <param name="advance">高级信息</param>
        public CreateCardResult CreateGiftCard(string gift, RequiredInfo required, BaseInfo baseInfo = null, AdvanceInfo advance = null)
        {
            dynamic card = new DynamicObject();

            card.gift = gift;
            return(CreateCard(CardType.GIFT, card, required, baseInfo, advance));
        }
示例#6
0
        /// <summary>
        /// 创建折扣券
        /// </summary>
        /// <param name="discount">打折额度(百分比)。填30就是七折</param>
        /// <param name="required">必填信息</param>
        /// <param name="baseInfo">基本信息</param>
        /// <param name="advance">高级信息</param>
        public CreateCardResult CreateDiscountCard(int discount, RequiredInfo required, BaseInfo baseInfo = null, AdvanceInfo advance = null)
        {
            dynamic card = new DynamicObject();

            card.discount = discount;
            return(CreateCard(CardType.DISCOUNT, card, required, baseInfo, advance));
        }
示例#7
0
        /// <summary>
        /// 创建代金券
        /// </summary>
        /// <param name="leastCost">起用金额(单位为分),如果无起用门槛则填0</param>
        /// <param name="reduceCost">减免金额。(单位为分)</param>
        /// <param name="required">必填信息</param>
        /// <param name="baseInfo">基本信息</param>
        /// <param name="advance">高级信息</param>
        public CreateCardResult CreateCashCard(int leastCost, int reduceCost, RequiredInfo required, BaseInfo baseInfo = null, AdvanceInfo advance = null)
        {
            dynamic card = new DynamicObject();

            card.least_cost  = leastCost;
            card.reduce_cost = reduceCost;
            return(CreateCard(CardType.CASH, card, required, baseInfo, advance));
        }