public void CreateCouponCode(CouponCodeSettingViewModel codeVM, Action callback) { CouponCodeSetting entity = codeVM.ConvertVM <CouponCodeSettingViewModel, CouponCodeSetting>(); string relativeUrl = "/MKTService/Coupons/CouponCode/Create"; restClient.Create <CouponCodeSettingViewModel>(relativeUrl, entity, (obj, args) => { if (args.FaultsHandle()) { return; } callback(); }); ; }
/// <summary> /// 计算优惠券code有效期 /// </summary> /// <param name="master"></param> /// <param name="codeEntity"></param> public static void GetCodeExpireDate(CouponsInfo master, CouponCodeSetting codeEntity) { #region beginDate,EndDate switch (master.ValidPeriod.Value) { case CouponsValidPeriodType.All: codeEntity.StartTime = master.StartTime; codeEntity.EndTime = master.EndTime; break; case CouponsValidPeriodType.PublishDayToOneWeek: codeEntity.StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); codeEntity.EndTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddDays(7); break; case CouponsValidPeriodType.PublishDayToOneMonth: codeEntity.StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); codeEntity.EndTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddMonths(1); break; case CouponsValidPeriodType.PublishDayToTwoMonths: codeEntity.StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); codeEntity.EndTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddMonths(2); break; case CouponsValidPeriodType.PublishDayToThreeMonths: codeEntity.StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); codeEntity.EndTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddMonths(3); break; case CouponsValidPeriodType.PublishDayToSixMonths: codeEntity.StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); codeEntity.EndTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddMonths(6); break; case CouponsValidPeriodType.CustomPeriod: codeEntity.StartTime = master.CustomBindBeginDate; codeEntity.EndTime = master.CustomBindEndDate; break; default: codeEntity.StartTime = master.StartTime; codeEntity.EndTime = master.EndTime; break; } #endregion }
public virtual void CreateCouponCode(CouponCodeSetting info) { ObjectFactory <CouponsAppService> .Instance.CreateCouponCode(info); }
/// <summary> /// 检查订单是否满足赠送优惠券条件,如果满足则赠送优惠券给订单用户 /// </summary> /// <param name="soInfo">订单信息</param> /// <returns></returns> public bool CheckAndGivingPromotionCodeForSO(SOInfo soInfo) { if (soInfo == null || soInfo.Merchant == null || !soInfo.Merchant.SysNo.HasValue || soInfo.BaseInfo == null || !soInfo.BaseInfo.CreateTime.HasValue) { throw new BizException("订单信息不完整,错误的操作"); } //获取订单商家在订单时间时有效的购物赠送优惠券活动 var coupons = ObjectFactory <CouponsProcessor> .Instance.QueryCoupons(soInfo.Merchant.SysNo.Value, soInfo.BaseInfo.CreateTime.Value); if (coupons == null || coupons.Count == 0) { return(false); } foreach (CouponsInfo couponsInfo in coupons) { //(3) 活动类型为“购物赠送型” if (couponsInfo.BindCondition != CouponsBindConditionType.SO) { continue; } //(4) 订单金额大于等于“订单门槛金额” if (couponsInfo.BindRule.AmountLimit > soInfo.BaseInfo.SOAmount) { continue; } //(5) 商品范围为“所有商品”或者(商品范围为“限定商品”且(“指定商品”或者“排除商品”)) if (couponsInfo.BindRule.ProductRangeType == ProductRangeType.Limit) { if (couponsInfo.BindRule.RelProducts != null && couponsInfo.BindRule.RelProducts.ProductList != null && couponsInfo.BindRule.RelProducts.ProductList.Count > 0) { bool?ok = null; foreach (var item in soInfo.Items) { //规则里面是否包含订单商品 bool contain = couponsInfo.BindRule.RelProducts.ProductList.Find(p => p.ProductSysNo.Value.Equals(item.ProductSysNo.Value)) != null; if (couponsInfo.BindRule.RelProducts.IsIncludeRelation.Value && contain) { //包含商品 ok = true; break; } if (!couponsInfo.BindRule.RelProducts.IsIncludeRelation.Value && contain) { //排除商品 ok = false; break; } } if (ok.HasValue && !ok.Value) { continue; } } } //(6) 顾客范围为“所有顾客”或者指定“顾客” if (couponsInfo.CustomerCondition != null && couponsInfo.CustomerCondition.RelCustomers != null && couponsInfo.CustomerCondition.RelCustomers.CustomerIDList != null && couponsInfo.CustomerCondition.RelCustomers.CustomerIDList.Count > 0) { bool ok = false; foreach (var c in couponsInfo.CustomerCondition.RelCustomers.CustomerIDList) { if (c.CustomerSysNo.Value == soInfo.BaseInfo.CustomerSysNo.Value) { ok = true; break; } } if (!ok) { continue; } } //判断用户是否已经赠送过了 if (ObjectFactory <CouponsProcessor> .Instance.CheckExistCouponCodeCustomerLog(couponsInfo.SysNo.Value, soInfo.BaseInfo.CustomerSysNo.Value, soInfo.SysNo.Value)) { continue; } //生成一张优惠券并发给用户 CouponCodeSetting info = new CouponCodeSetting() { CouponsSysNo = couponsInfo.SysNo, CouponCodeType = CouponCodeType.ThrowIn, InUser = "******", }; GetCodeExpireDate(couponsInfo, info); ObjectFactory <CouponsProcessor> .Instance.CreateCouponCodeToCustomer(info, soInfo.BaseInfo.CustomerSysNo.Value, soInfo.SysNo.Value); } return(true); }
/// <summary> /// 新增优惠券 /// </summary> /// <param name="info"></param> public virtual void CreateCouponCode(CouponCodeSetting info) { _processor.CreateCouponCode(info); }