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 }); } }
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); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }