Exemple #1
0
        /// <summary>
        /// 积分抵扣
        /// </summary>
        /// <param name="member"></param>
        /// <param name="Id"></param>
        /// <param name="integral"></param>
        private void AddIntegralToUser(long memberId, int integral, bool isReward)
        {
            if (integral == 0)
            {
                return;
            }
            //var member = Context.UserMemberInfo.FirstOrDefault(d => d.Id == memberId);
            var member = DbFactory.Default.Get <MemberInfo>().Where(d => d.Id == memberId).FirstOrDefault();

            Mall.Entities.MemberIntegralRecordInfo record = new Mall.Entities.MemberIntegralRecordInfo();
            record.UserName   = member.UserName;
            record.MemberId   = member.Id;
            record.RecordDate = DateTime.Now;
            var remark = "签到奖励";

            if (isReward)
            {
                remark += "(含额外奖励)";
            }
            record.TypeId = Mall.Entities.MemberIntegralInfo.IntegralType.SignIn;
            record.ReMark = remark;
            var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(Mall.Entities.MemberIntegralInfo.IntegralType.SignIn, integral);

            ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(record, memberIntegral);
        }
Exemple #2
0
        public CouponRecordInfo AddCouponRecord(CouponRecordInfo info)
        {
            var shop = DbFactory.Default.Get <ShopInfo>().Where(p => p.Id == info.ShopId).FirstOrDefault();

            if (shop == null)
            {
                throw new MallException("错误的店铺信息");
            }
            if (shop.ShopStatus != ShopInfo.ShopAuditStatus.Open)
            {
                throw new MallException("兑换失败,当前店铺已过期/冻结");
            }
            if (shop.EndDate < DateTime.Now)
            {
                throw new MallException("兑换失败,当前店铺已过期/冻结");
            }
            var shopName   = shop.ShopName;
            var coupondata = DbFactory.Default.Get <CouponInfo>().Where(d => d.Id == info.CouponId).FirstOrDefault();

            if (coupondata.IsSyncWeiXin == 1 && coupondata.WXAuditStatus != (int)WXCardLogInfo.AuditStatusEnum.Audited)
            {
                throw new MallException("优惠券状态错误,不可领取");
            }
            DbFactory.Default
            .InTransaction(() =>
            {
                //扣积分
                if (coupondata.ReceiveType == CouponInfo.CouponReceiveType.IntegralExchange)
                {
                    Mall.Entities.MemberIntegralRecordInfo mirinfo = new Mall.Entities.MemberIntegralRecordInfo();
                    mirinfo.UserName   = info.UserName;
                    mirinfo.MemberId   = info.UserId;
                    mirinfo.RecordDate = DateTime.Now;
                    mirinfo.TypeId     = Mall.Entities.MemberIntegralInfo.IntegralType.Exchange;
                    mirinfo.Integral   = coupondata.NeedIntegral;
                    mirinfo.ReMark     = "兑换优惠券:面值" + coupondata.Price.ToString("f2");
                    var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(Mall.Entities.MemberIntegralInfo.IntegralType.Exchange, mirinfo.Integral);
                    ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(mirinfo, memberIntegral);
                }

                info.CounponStatus = CouponRecordInfo.CounponStatuses.Unuse;
                info.CounponSN     = Guid.NewGuid().ToString().Replace("-", "");
                info.UsedTime      = null;
                info.CounponTime   = DateTime.Now;
                info.ShopName      = shopName;
                info.OrderId       = null;
                var flag           = DbFactory.Default.Add(info);
            });
            return(info);
        }
Exemple #3
0
        public object PostOrderShareAddIntegral(OrderShareAddIntegralModel OrderIds)
        {
            CheckUserLogin();
            var orderids = OrderIds.orderids;

            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new MallException("订单号不能为空!");
            }
            long orderId = 0;
            var  ids     = orderids.Split(',').Select(e =>
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                else
                {
                    throw new MallException("订单分享增加积分时,订单号异常!");
                }
            }
                                                      );

            if (MemberIntegralApplication.OrderIsShared(ids))
            {
                throw new MallException("订单已经分享过!");
            }
            Mall.Entities.MemberIntegralRecordInfo record = new Mall.Entities.MemberIntegralRecordInfo();
            record.MemberId   = CurrentUser.Id;
            record.UserName   = CurrentUser.UserName;
            record.RecordDate = DateTime.Now;
            record.TypeId     = Mall.Entities.MemberIntegralInfo.IntegralType.Share;
            record.ReMark     = string.Format("订单号:{0}", orderids);
            List <Mall.Entities.MemberIntegralRecordActionInfo> recordAction = new List <Mall.Entities.MemberIntegralRecordActionInfo>();

            foreach (var id in ids)
            {
                recordAction.Add(new Mall.Entities.MemberIntegralRecordActionInfo
                {
                    VirtualItemId     = id,
                    VirtualItemTypeId = Mall.Entities.MemberIntegralInfo.VirtualItemType.ShareOrder
                });
            }
            record.MemberIntegralRecordActionInfo = recordAction;
            MemberIntegralApplication.AddMemberIntegralByEnum(record, Mall.Entities.MemberIntegralInfo.IntegralType.Share);
            return(new { success = true, msg = "晒单添加积分成功!" });
        }
        public void AddOrderComment(OrderCommentInfo info, int productNum)
        {
            var order = DbFactory.Default.Get <OrderInfo>().Where(a => a.Id == info.OrderId && a.UserId == info.UserId).FirstOrDefault();

            if (order == null)
            {
                throw new MallException("该订单不存在,或者不属于该用户!");
            }
            var orderComment = DbFactory.Default.Get <OrderCommentInfo>().Where(a => a.OrderId == info.OrderId && a.UserId == info.UserId);

            if (orderComment.Count() > 0)
            {
                throw new MallException("您已经评论过该订单!");
            }
            info.ShopId      = order.ShopId;
            info.ShopName    = order.ShopName;
            info.UserName    = order.UserName;
            info.CommentDate = DateTime.Now;
            info.OrderId     = order.Id;
            DbFactory.Default.Add(info);

            Mall.Entities.MemberIntegralRecordInfo record = new Mall.Entities.MemberIntegralRecordInfo();
            record.UserName   = info.UserName;
            record.ReMark     = "订单号:" + info.OrderId;
            record.MemberId   = info.UserId;
            record.RecordDate = DateTime.Now;
            record.TypeId     = Mall.Entities.MemberIntegralInfo.IntegralType.Comment;
            Mall.Entities.MemberIntegralRecordActionInfo action = new Mall.Entities.MemberIntegralRecordActionInfo();
            action.VirtualItemTypeId = Mall.Entities.MemberIntegralInfo.VirtualItemType.Comment;
            action.VirtualItemId     = info.OrderId;
            record.MemberIntegralRecordActionInfo.Add(action);
            var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(Mall.Entities.MemberIntegralInfo.IntegralType.Comment);

            if (memberIntegral != null)
            {
                record.Integral = productNum * memberIntegral.ConversionIntegral();
            }
            ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(record, null);
        }
        public ActionResult CheckCode(string pluginId, string code, string destination)
        {
            var cache     = CacheKeyCollection.MemberPluginCheck(CurrentUser.UserName, pluginId + destination);
            var cacheCode = Core.Cache.Get <string>(cache);
            var member    = CurrentUser;
            var mark      = "";

            if (cacheCode != null && cacheCode == code)
            {
                var service = _iMessageService;
                if (service.GetMemberContactsInfo(pluginId, destination, Entities.MemberContactInfo.UserTypes.General) != null)
                {
                    return(Json(new Result()
                    {
                        success = false, msg = destination + "已经绑定过了!"
                    }));
                }
                if (pluginId.ToLower().Contains("email"))
                {
                    member.Email = destination;
                    mark         = "邮箱";
                }
                else if (pluginId.ToLower().Contains("sms"))
                {
                    member.CellPhone = destination;
                    mark             = "手机";
                }

                _iMemberService.UpdateMember(member);
                service.UpdateMemberContacts(new Entities.MemberContactInfo()
                {
                    Contact         = destination,
                    ServiceProvider = pluginId,
                    UserId          = CurrentUser.Id,
                    UserType        = Entities.MemberContactInfo.UserTypes.General
                });
                Core.Cache.Remove(CacheKeyCollection.MemberPluginCheck(CurrentUser.UserName, pluginId));
                Core.Cache.Remove(CacheKeyCollection.Member(CurrentUser.Id));//移除用户缓存
                Core.Cache.Remove("Rebind" + CurrentUser.Id);

                Mall.Entities.MemberIntegralRecordInfo info = new Mall.Entities.MemberIntegralRecordInfo();
                //_iMemberIntegralConversionFactoryService = ServiceApplication.Create<im;
                //_iMemberIntegralService = ServiceApplication.Create<IMemberIntegralService>();
                //_iMemberInviteService = ServiceApplication.Create<IMemberInviteService>();
                info.UserName   = member.UserName;
                info.MemberId   = member.Id;
                info.RecordDate = DateTime.Now;
                info.TypeId     = Mall.Entities.MemberIntegralInfo.IntegralType.Reg;
                info.ReMark     = "绑定" + mark;
                var memberIntegral = ServiceApplication.Create <IMemberIntegralConversionFactoryService>().Create(Mall.Entities.MemberIntegralInfo.IntegralType.Reg);
                ServiceApplication.Create <IMemberIntegralService>().AddMemberIntegral(info, memberIntegral);


                var inviteMember = _iMemberService.GetMember(member.InviteUserId);
                if (inviteMember != null)
                {
                    ServiceApplication.Create <IMemberInviteService>().AddInviteIntegel(member, inviteMember);
                }

                return(Json(new Result()
                {
                    success = true, msg = "验证正确"
                }));
            }
            else
            {
                return(Json(new Result()
                {
                    success = false, msg = "验证码不正确或者已经超时"
                }));
            }
        }
Exemple #6
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;
         Mall.Entities.MemberIntegralRecordInfo info = new Mall.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(Mall.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     = Mall.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);
 }