示例#1
0
        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();
            });
            ;
        }
示例#2
0
        /// <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
        }
示例#3
0
 public virtual void CreateCouponCode(CouponCodeSetting info)
 {
     ObjectFactory <CouponsAppService> .Instance.CreateCouponCode(info);
 }
示例#4
0
        /// <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);
        }
示例#5
0
 /// <summary>
 /// 新增优惠券
 /// </summary>
 /// <param name="info"></param>
 public virtual void CreateCouponCode(CouponCodeSetting info)
 {
     _processor.CreateCouponCode(info);
 }