예제 #1
0
        public JsonResult ReceiveCoupons(long couponId, long shopId)
        {
            var service = _iCouponService;
            var model   = service.GetCouponInfo(shopId, couponId);

            if (CurrentUser == null)
            {
                return(Json(new Result {
                    success = false, msg = "请登录后领取", status = -1
                }));
            }
            if (model.EndTime < DateTime.Now.Date)
            {
                return(Json(new Result {
                    success = false, msg = "此优惠券已过期", status = -2
                }));
            }
            var max = service.GetUserReceiveCoupon(couponId, CurrentUser.Id);

            if (model.PerMax != 0 && max >= model.PerMax)
            {
                return(Json(new Result {
                    success = false, msg = "每人最多领取" + model.PerMax + "张该类型的优惠券", status = -3
                }));
            }
            var record = service.GetRecordCountByCoupon(couponId);

            if (record >= model.Num)
            {
                return(Json(new Result {
                    success = false, msg = "优惠券已领完", status = -3
                }));
            }

            if (model.ReceiveType == Entities.CouponInfo.CouponReceiveType.IntegralExchange)
            {
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                if (userInte.AvailableIntegrals < model.NeedIntegral)
                {
                    return(Json(new Result {
                        success = false, msg = "积分不足", status = -4
                    }));
                }
            }
            Entities.CouponRecordInfo info = new Entities.CouponRecordInfo();
            info.UserId   = CurrentUser.Id;
            info.UserName = CurrentUser.UserName;
            info.ShopId   = shopId;
            info.CouponId = couponId;
            service.AddCouponRecord(info);
            return(Json(new Result {
                success = true, msg = "领取成功", status = 1
            }));
        }
예제 #2
0
        public JsonResult AcceptCoupon(long vshopid, long couponid)
        {
            var couponService = _iCouponService;
            var couponInfo    = couponService.GetCouponInfo(couponid);

            if (couponInfo.EndTime < DateTime.Now)
            {//已经失效
                return(ErrorResult("优惠券已经过期.", 2, true));
            }
            CouponRecordQuery crQuery = new CouponRecordQuery();

            crQuery.CouponId = couponid;
            crQuery.UserId   = CurrentUser.Id;
            var pageModel = couponService.GetCouponRecordList(crQuery);

            if (couponInfo.PerMax != 0 && pageModel.Total >= couponInfo.PerMax)
            {//达到个人领取最大张数
                return(Json(new { code = 3, success = false, msg = "达到个人领取最大张数,不能再领取." }));
            }
            crQuery = new CouponRecordQuery()
            {
                CouponId = couponid
            };
            pageModel = couponService.GetCouponRecordList(crQuery);
            if (pageModel.Total >= couponInfo.Num)
            {//达到领取最大张数
                return(Json(new { code = 4, success = false, msg = "此优惠券已经领完了." }));
            }
            int MemberAvailableIntegrals = 0;

            if (couponInfo.ReceiveType == Entities.CouponInfo.CouponReceiveType.IntegralExchange)
            {
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                if (userInte.AvailableIntegrals < couponInfo.NeedIntegral)
                {
                    //积分不足
                    return(Json(new { code = 5, success = false, msg = "积分不足 " + couponInfo.NeedIntegral.ToString() }));
                }
                MemberAvailableIntegrals = userInte.AvailableIntegrals;
            }
            Entities.CouponRecordInfo couponRecordInfo = new Entities.CouponRecordInfo()
            {
                CouponId = couponid,
                UserId   = CurrentUser.Id,
                UserName = CurrentUser.UserName,
                ShopId   = couponInfo.ShopId
            };
            couponService.AddCouponRecord(couponRecordInfo);

            return(Json(new { code = 0, success = true, msg = "领取成功", crid = couponRecordInfo.Id, Integral_balance = MemberAvailableIntegrals }));//执行成功
        }
예제 #3
0
 public static void WinnerSubmit(WeiActivityWinModel winModel)
 {
     Entities.WeiActivityInfoInfo model = _iActivityInfoService.GetActivityModel(winModel.activityId);
     //添加中奖信息记录
     Entities.WeiActivityWinInfoInfo activityWinInfo = new Entities.WeiActivityWinInfoInfo();
     activityWinInfo.ActivityId = winModel.activityId;
     activityWinInfo.AddDate    = DateTime.Now;
     activityWinInfo.UserId     = winModel.userId;
     activityWinInfo.IsWin      = winModel.isWin;
     //消耗积分
     if (winModel.integrals > 0)
     {
         var factoryService = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
         Himall.Entities.MemberIntegralRecordInfo info = new Himall.Entities.MemberIntegralRecordInfo();
         info.UserName   = MemberApplication.GetMember(activityWinInfo.UserId).UserName;
         info.MemberId   = activityWinInfo.UserId;
         info.RecordDate = DateTime.Now;
         info.ReMark     = ((WeiActivityType)model.ActivityType).ToDescription() + "消耗";
         info.TypeId     = Entities.MemberIntegralInfo.IntegralType.WeiActivity;
         var memberIntegral = factoryService.Create(Himall.Entities.MemberIntegralInfo.IntegralType.WeiActivity, -winModel.integrals);
         MemberIntegralApplication.AddMemberIntegral(info, memberIntegral);
     }
     if (activityWinInfo.IsWin)
     {
         if (winModel.awardType == WeiActivityAwardType.Integral)//积分
         {
             activityWinInfo.AwardName = winModel.awardName + " 积分";
             //新增积分记录
             var factoryService = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
             Entities.MemberIntegralRecordInfo info = new Entities.MemberIntegralRecordInfo();
             info.UserName   = MemberApplication.GetMember(activityWinInfo.UserId).UserName;
             info.MemberId   = activityWinInfo.UserId;
             info.RecordDate = DateTime.Now;
             info.ReMark     = ((WeiActivityType)model.ActivityType).ToDescription() + "中奖";
             info.TypeId     = Himall.Entities.MemberIntegralInfo.IntegralType.WeiActivity;
             var memberIntegral = factoryService.Create(Entities.MemberIntegralInfo.IntegralType.WeiActivity, Convert.ToInt32(winModel.awardName));//winModel.integrals为消耗积分 此处不是用户总积分
             MemberIntegralApplication.AddMemberIntegral(info, memberIntegral);
         }
         else if (winModel.awardType == WeiActivityAwardType.Bonus)//红包
         {
             activityWinInfo.AwardName = winModel.awardName;
             BonusApplication.SetShareByUserId(winModel.bonusId, false, winModel.userId);//添加红包记录
             BonusApplication.IncrReceiveCount(winModel.bonusId);
         }
         else
         {
             activityWinInfo.AwardName = winModel.awardName;
             //添加优惠券记录
             Entities.CouponRecordInfo recordInfo = new Entities.CouponRecordInfo();
             recordInfo.UserId   = winModel.userId;
             recordInfo.UserName = MemberApplication.GetMember(winModel.userId).UserName;
             recordInfo.ShopId   = CouponApplication.GetCouponInfo(winModel.couponId).ShopId;
             recordInfo.CouponId = winModel.couponId;
             CouponApplication.AddCouponRecord(recordInfo);
         }
     }
     else
     {
         activityWinInfo.AwardName = winModel.awardName;
     }
     activityWinInfo.AwardId = winModel.awardId;
     _iWeiActivityWinService.AddWinner(activityWinInfo);
 }