/// <summary>
        /// 积分抵扣
        /// </summary>
        /// <param name="member"></param>
        /// <param name="Id"></param>
        /// <param name="integral"></param>
        private void DeductionIntegral(UserMemberInfo member, long Id, int integral)
        {
            if (integral == 0)
            {
                return;
            }
            MemberIntegralRecord record = new MemberIntegralRecord();

            record.UserName   = member.UserName;
            record.MemberId   = member.Id;
            record.RecordDate = DateTime.Now;
            var remark = "礼品预约单号:";

            record.TypeId = MemberIntegral.IntegralType.Exchange;
            remark       += Id.ToString();
            MemberIntegralRecordAction action = new MemberIntegralRecordAction();

            action.VirtualItemTypeId = MemberIntegral.VirtualItemType.Exchange;
            action.VirtualItemId     = Id;
            record.Himall_MemberIntegralRecordAction.Add(action);
            record.ReMark = remark;
            var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Exchange, integral);

            ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(record, memberIntegral);
        }
        public JsonResult AddComment(long subOrderId, int star, string content)
        {
            ProductCommentInfo model = new ProductCommentInfo();

            model.ReviewDate    = DateTime.Now;
            model.ReviewContent = content;
            model.UserId        = CurrentUser.Id;
            model.UserName      = CurrentUser.UserName;
            model.Email         = CurrentUser.Email;
            model.SubOrderId    = subOrderId;
            model.ReviewMark    = star;
            _iCommentService.AddComment(model);
            //TODO发表评论获得积分
            MemberIntegralRecord info = new MemberIntegralRecord();

            info.UserName   = CurrentUser.UserName;
            info.MemberId   = CurrentUser.Id;
            info.RecordDate = DateTime.Now;
            info.TypeId     = MemberIntegral.IntegralType.Comment;
            MemberIntegralRecordAction action = new MemberIntegralRecordAction();

            action.VirtualItemTypeId = MemberIntegral.VirtualItemType.Comment;
            action.VirtualItemId     = model.ProductId;
            info.Himall_MemberIntegralRecordAction.Add(action);
            var memberIntegral = _iMemberIntegralConversionFactoryService.Create(MemberIntegral.IntegralType.Comment);

            _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
            return(Json(new Result()
            {
                success = true, msg = "发表成功"
            }));
        }
Beispiel #3
0
        private void DeductionIntegral(UserMemberInfo member, long Id, int integral)
        {
            if (integral == 0)
            {
                return;
            }
            MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
            {
                UserName   = member.UserName,
                MemberId   = member.Id,
                RecordDate = new DateTime?(DateTime.Now)
            };
            string str = "礼品订单号:";

            memberIntegralRecord.TypeId = MemberIntegral.IntegralType.Exchange;
            str = string.Concat(str, Id.ToString());
            MemberIntegralRecordAction memberIntegralRecordAction = new MemberIntegralRecordAction()
            {
                VirtualItemTypeId = new MemberIntegral.VirtualItemType?(MemberIntegral.VirtualItemType.Exchange),
                VirtualItemId     = Id
            };

            memberIntegralRecord.Himall_MemberIntegralRecordAction.Add(memberIntegralRecordAction);
            memberIntegralRecord.ReMark = str;
            IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Exchange, integral);

            Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
        }
        /// <summary>
        /// 通过多个RecordAction,增加用户积分
        /// </summary>
        /// <param name="model"></param>
        /// <param name="type"></param>
        public static void AddMemberIntegralByEnum(MemberIntegralRecord model, MemberIntegral.IntegralType type)
        {
            var conversionService = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
            var conversionMemberIntegralEntity = conversionService.Create(MemberIntegral.IntegralType.Share);

            _iMemberIntegralService.AddMemberIntegralByRecordAction(model, conversionMemberIntegralEntity);
        }
Beispiel #5
0
        private void AddBindInergral(UserMemberInfo member)
        {
            if (context.MemberIntegralRecord.Any((MemberIntegralRecord a) => a.MemberId == member.Id && (int)a.TypeId == 6))
            {
                return;
            }
            try
            {
                MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
                {
                    UserName   = member.UserName,
                    MemberId   = member.Id,
                    RecordDate = new DateTime?(DateTime.Now),
                    TypeId     = MemberIntegral.IntegralType.BindWX,
                    ReMark     = "BiindWeiXin"
                };
                IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.BindWX, 0);

                Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
            }
            catch (Exception exception)
            {
                Log.Error(exception);
            }
        }
Beispiel #6
0
        public CouponRecordInfo AddCouponRecord(CouponRecordInfo info)
        {
            string     shopName = base.Context.ShopInfo.FindById <ShopInfo>(info.ShopId).ShopName;
            CouponInfo info2    = base.Context.CouponInfo.FirstOrDefault <CouponInfo>(d => d.Id == info.CouponId);

            if ((info2.IsSyncWeiXin == 1) && (info2.WXAuditStatus != 1))
            {
                throw new HimallException("优惠券状态错误,不可领取");
            }
            if (info2.ReceiveType == CouponInfo.CouponReceiveType.IntegralExchange)
            {
                MemberIntegralRecord model = new MemberIntegralRecord
                {
                    UserName   = info.UserName,
                    MemberId   = info.UserId,
                    RecordDate = new DateTime?(DateTime.Now),
                    TypeId     = MemberIntegral.IntegralType.Exchange,
                    Integral   = info2.NeedIntegral,
                    ReMark     = "兑换优惠券:面值" + info2.Price.ToString("f2")
                };
                IConversionMemberIntegralBase conversionMemberIntegralEntity = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Exchange, model.Integral);

                Instance <IMemberIntegralService> .Create.AddMemberIntegral(model, conversionMemberIntegralEntity);
            }
            info.CounponStatus = CouponRecordInfo.CounponStatuses.Unuse;
            info.CounponSN     = Guid.NewGuid().ToString().Replace("-", "");
            info.UsedTime      = null;
            info.CounponTime   = DateTime.Now;
            info.ShopName      = shopName;
            info.OrderId       = null;
            CouponRecordInfo info3 = base.Context.CouponRecordInfo.Add(info);

            base.Context.SaveChanges();
            return(info3);
        }
        public JsonResult Save(string Operation, int Integral, string userName, int?userId, string reMark)
        {
            if (string.IsNullOrWhiteSpace(userName))
            {
                throw new Core.HimallException("该用户不存在");
            }
            var memeber = _iMemberService.GetMemberByName(userName);

            if (memeber == null)
            {
                throw new Core.HimallException("该用户不存在");
            }
            if (Integral <= 0 || Integral > 100000)
            {
                throw new Core.HimallException("积分必须为大于0且小于十万的整数");
            }
            MemberIntegralRecord info = new MemberIntegralRecord();

            info.UserName   = userName;
            info.MemberId   = memeber.Id;
            info.RecordDate = DateTime.Now;
            info.TypeId     = MemberIntegral.IntegralType.SystemOper;
            info.ReMark     = reMark;
            if (Operation == "sub")
            {
                Integral = -Integral;
            }
            var memberIntegral = _iMemberIntegralConversionFactoryService.Create(MemberIntegral.IntegralType.SystemOper, Integral);

            _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
            return(Json(new Result()
            {
                success = true, msg = "操作成功"
            }));
        }
Beispiel #8
0
        public void AddMemberIntegral(MemberIntegralRecord model, IConversionMemberIntegralBase conversionMemberIntegralEntity = null)
        {
            if (null == model)
            {
                throw new NullReferenceException("添加会员积分记录时,会员积分Model为空.");
            }
            if (0 == model.MemberId)
            {
                throw new NullReferenceException("添加会员积分记录时,会员Id为空.");
            }
            if (!Context.UserMemberInfo.Any(a => a.Id == model.MemberId && a.UserName == model.UserName))
            {
                throw new Himall.Core.HimallException("不存在此会员");
            }
            if (null != conversionMemberIntegralEntity)
            {
                model.Integral = conversionMemberIntegralEntity.ConversionIntegral();
            }
            if (model.Integral == 0)
            {
                return;
            }
            var userIntegral = Context.MemberIntegral.FirstOrDefault(a => a.MemberId == model.MemberId);

            if (userIntegral == null)
            {
                userIntegral          = new MemberIntegral();
                userIntegral.MemberId = model.MemberId;
                userIntegral.UserName = model.UserName;
                if (model.Integral > 0)
                {
                    userIntegral.HistoryIntegrals += model.Integral;
                }
                else
                {
                    throw new Himall.Core.HimallException("用户积分不足以扣减该积分!");
                }
                userIntegral.AvailableIntegrals += model.Integral;
                Context.MemberIntegral.Add(userIntegral);
            }
            else
            {
                if (model.Integral > 0)
                {
                    userIntegral.HistoryIntegrals += model.Integral;
                }
                else
                {
                    if (userIntegral.AvailableIntegrals < Math.Abs(model.Integral))
                    {
                        throw new Himall.Core.HimallException("用户积分不足以扣减该积分!");
                    }
                }
                userIntegral.AvailableIntegrals += model.Integral;
            }
            Context.MemberIntegralRecord.Add(model);
            Context.SaveChanges();
        }
Beispiel #9
0
        public void AddMemberIntegral(MemberIntegralRecord model, IConversionMemberIntegralBase conversionMemberIntegralEntity = null)
        {
            if (model == null)
            {
                throw new NullReferenceException("添加会员积分记录时,会员积分Model为空.");
            }
            if (0 == model.MemberId)
            {
                throw new NullReferenceException("添加会员积分记录时,会员Id为空.");
            }
            if (!context.UserMemberInfo.Any((UserMemberInfo a) => a.Id == model.MemberId && (a.UserName == model.UserName)))
            {
                throw new HimallException("不存在此会员");
            }
            if (conversionMemberIntegralEntity != null)
            {
                model.Integral = conversionMemberIntegralEntity.ConversionIntegral();
            }
            if (model.Integral == 0)
            {
                return;
            }
            MemberIntegral memberIntegral = context.MemberIntegral.FirstOrDefault((MemberIntegral a) => a.MemberId == model.MemberId);

            if (memberIntegral != null)
            {
                if (model.Integral > 0)
                {
                    MemberIntegral historyIntegrals = memberIntegral;
                    historyIntegrals.HistoryIntegrals = historyIntegrals.HistoryIntegrals + model.Integral;
                }
                else if (memberIntegral.AvailableIntegrals < Math.Abs(model.Integral))
                {
                    throw new HimallException("用户积分不足以扣减该积分!");
                }
                MemberIntegral availableIntegrals = memberIntegral;
                availableIntegrals.AvailableIntegrals = availableIntegrals.AvailableIntegrals + model.Integral;
            }
            else
            {
                memberIntegral = new MemberIntegral()
                {
                    MemberId = new long?(model.MemberId),
                    UserName = model.UserName
                };
                if (model.Integral <= 0)
                {
                    throw new HimallException("用户积分不足以扣减该积分!");
                }
                MemberIntegral historyIntegrals1 = memberIntegral;
                historyIntegrals1.HistoryIntegrals = historyIntegrals1.HistoryIntegrals + model.Integral;
                MemberIntegral availableIntegrals1 = memberIntegral;
                availableIntegrals1.AvailableIntegrals = availableIntegrals1.AvailableIntegrals + model.Integral;
                context.MemberIntegral.Add(memberIntegral);
            }
            context.MemberIntegralRecord.Add(model);
            context.SaveChanges();
        }
        protected override object OnCheckCheckCodeSuccess(string contact)
        {
            CheckUserLogin();

            string pluginId = PluginsManagement.GetInstalledPluginInfos(Core.Plugins.PluginType.SMS).First().PluginId;

            var _iMemberIntegralConversionFactoryService = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
            var _iMemberIntegralService = ServiceProvider.Instance <IMemberIntegralService> .Create;
            var _iMemberInviteService   = ServiceProvider.Instance <IMemberInviteService> .Create;

            var member = CurrentUser;

            if (Application.MessageApplication.GetMemberContactsInfo(pluginId, contact, MemberContactsInfo.UserTypes.General) != null)
            {
                return(Json(new { success = false, msg = contact + "已经绑定过了!" }));
            }
            member.CellPhone = contact;
            MemberApplication.UpdateMember(member.Map <DTO.Members>());
            Application.MessageApplication.UpdateMemberContacts(new MemberContactsInfo()
            {
                Contact = contact, ServiceProvider = pluginId, UserId = CurrentUser.Id, UserType = MemberContactsInfo.UserTypes.General
            });
            Core.Cache.Remove(CacheKeyCollection.MemberPluginCheck(CurrentUser.UserName, pluginId));
            Core.Cache.Remove(CacheKeyCollection.Member(CurrentUser.Id));            //移除用户缓存
            Core.Cache.Remove("Rebind" + CurrentUser.Id);

            UserMemberInfo inviteMember = null;

            if (member.InviteUserId.HasValue)
            {
                inviteMember = Application.MemberApplication.GetMember(member.InviteUserId.Value);
            }

            MemberIntegralRecord info = new MemberIntegralRecord();

            info.UserName   = member.UserName;
            info.MemberId   = member.Id;
            info.RecordDate = DateTime.Now;
            info.TypeId     = MemberIntegral.IntegralType.Reg;
            info.ReMark     = "绑定手机";
            var memberIntegral = _iMemberIntegralConversionFactoryService.Create(MemberIntegral.IntegralType.Reg);

            _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
            if (inviteMember != null)
            {
                _iMemberInviteService.AddInviteIntegel(member, inviteMember);
            }

            return(base.OnCheckCheckCodeSuccess(contact));
        }
        public void AddInviteIntegel(UserMemberInfo RegMember, UserMemberInfo InviteMember)
        {
            InviteRuleInfo inviteRule = GetInviteRule();

            if (inviteRule != null)
            {
                int?inviteIntegral = inviteRule.InviteIntegral;
                if ((inviteIntegral.GetValueOrDefault() != 0 ? true : !inviteIntegral.HasValue))
                {
                    if (!HasInviteIntegralRecord(RegMember.Id))
                    {
                        IMemberIntegralConversionFactoryService create = Instance <IMemberIntegralConversionFactoryService> .Create;
                        IMemberIntegralService memberIntegralService   = Instance <IMemberIntegralService> .Create;
                        MemberIntegralRecord   memberIntegralRecord    = new MemberIntegralRecord()
                        {
                            UserName   = RegMember.UserName,
                            MemberId   = RegMember.Id,
                            RecordDate = new DateTime?(DateTime.Now),
                            ReMark     = "被邀请注册",
                            TypeId     = MemberIntegral.IntegralType.Others
                        };
                        IConversionMemberIntegralBase conversionMemberIntegralBase = create.Create(MemberIntegral.IntegralType.Others, inviteRule.RegIntegral.Value);
                        memberIntegralService.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
                        MemberIntegralRecord memberIntegralRecord1 = new MemberIntegralRecord()
                        {
                            UserName   = InviteMember.UserName,
                            MemberId   = InviteMember.Id,
                            RecordDate = new DateTime?(DateTime.Now),
                            ReMark     = "邀请会员",
                            TypeId     = MemberIntegral.IntegralType.InvitationMemberRegiste
                        };
                        memberIntegralService.AddMemberIntegral(memberIntegralRecord1, create.Create(MemberIntegral.IntegralType.InvitationMemberRegiste, 0));
                        InviteRecordInfo inviteRecordInfo = new InviteRecordInfo()
                        {
                            RegIntegral    = new int?(inviteRule.RegIntegral.GetValueOrDefault()),
                            InviteIntegral = inviteRule.InviteIntegral.GetValueOrDefault(),
                            RecordTime     = new DateTime?(DateTime.Now),
                            RegTime        = new DateTime?(RegMember.CreateDate),
                            RegUserId      = new long?(RegMember.Id),
                            RegName        = RegMember.UserName,
                            UserId         = new long?(InviteMember.Id),
                            UserName       = InviteMember.UserName
                        };
                        AddInviteRecord(inviteRecordInfo);
                    }
                    return;
                }
            }
        }
        public object PostOrderShareAddIntegral(OrderShareAddIntegralModel OrderIds)
        {
            CheckUserLogin();
            var orderids = OrderIds.orderids;

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

            if (MemberIntegralApplication.OrderIsShared(ids))
            {
                throw new HimallException("订单已经分享过!");
            }
            MemberIntegralRecord record = new MemberIntegralRecord();

            record.MemberId   = CurrentUser.Id;
            record.UserName   = CurrentUser.UserName;
            record.RecordDate = DateTime.Now;
            record.TypeId     = MemberIntegral.IntegralType.Share;
            record.ReMark     = string.Format("订单号:{0}", orderids);
            List <MemberIntegralRecordAction> recordAction = new List <MemberIntegralRecordAction>();

            foreach (var id in ids)
            {
                recordAction.Add(new MemberIntegralRecordAction
                {
                    VirtualItemId     = id,
                    VirtualItemTypeId = MemberIntegral.VirtualItemType.ShareOrder
                });
            }
            record.Himall_MemberIntegralRecordAction = recordAction;
            MemberIntegralApplication.AddMemberIntegralByEnum(record, MemberIntegral.IntegralType.Share);
            return(Json(new { success = true, msg = "晒单添加积分成功!" }));
        }
        public object PostOrderShareAddIntegral(OrderShareAddIntegralModel OrderIds)
        {
            this.CheckUserLogin();
            string orderids1 = OrderIds.orderids;

            if (string.IsNullOrWhiteSpace(orderids1))
            {
                throw new HimallException("订单号不能为空!");
            }
            long orderId = 0L;
            IEnumerable <long> orderids2 = Enumerable.Select <string, long>((IEnumerable <string>)orderids1.Split(','), (Func <string, long>)(e =>
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                throw new HimallException("订单分享增加积分时,订单号异常!");
            }));

            if (MemberIntegralApplication.OrderIsShared(orderids2))
            {
                throw new HimallException("订单已经分享过!");
            }
            MemberIntegralRecord model = new MemberIntegralRecord();

            model.MemberId   = this.CurrentUser.Id;
            model.UserName   = this.CurrentUser.UserName;
            model.RecordDate = new DateTime?(DateTime.Now);
            model.TypeId     = MemberIntegral.IntegralType.Share;
            model.ReMark     = string.Format("订单号:{0}", (object)orderids1);
            List <MemberIntegralRecordAction> list = new List <MemberIntegralRecordAction>();

            foreach (long num in orderids2)
            {
                list.Add(new MemberIntegralRecordAction()
                {
                    VirtualItemId     = num,
                    VirtualItemTypeId = new MemberIntegral.VirtualItemType?(MemberIntegral.VirtualItemType.ShareOrder)
                });
            }
            model.Himall_MemberIntegralRecordAction = (ICollection <MemberIntegralRecordAction>)list;
            MemberIntegralApplication.AddMemberIntegralByEnum(model, MemberIntegral.IntegralType.Share);
            return((object)this.Json(new
            {
                success = true,
                msg = "晒单添加积分成功!"
            }));
        }
Beispiel #14
0
        private void AddIntegel(UserMemberInfo member)
        {
            if (!Instance <IMemberIntegralService> .Create.HasLoginIntegralRecord(member.Id))
            {
                MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
                {
                    UserName   = member.UserName,
                    MemberId   = member.Id,
                    RecordDate = new DateTime?(DateTime.Now),
                    ReMark     = "每天登录",
                    TypeId     = MemberIntegral.IntegralType.Login
                };
                IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Login, 0);

                Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
            }
        }
Beispiel #15
0
        public void AddOrderComment(OrderCommentInfo info)
        {
            OrderInfo orderInfo = (
                from a in context.OrderInfo
                where a.Id == info.OrderId && a.UserId == info.UserId
                select a).FirstOrDefault();

            if (orderInfo == null)
            {
                throw new HimallException("该订单不存在,或者不属于该用户!");
            }
            if ((
                    from a in context.OrderCommentInfo
                    where a.OrderId == info.OrderId && a.UserId == info.UserId
                    select a).Count() > 0)
            {
                throw new HimallException("您已经评论过该订单!");
            }
            info.ShopId      = orderInfo.ShopId;
            info.ShopName    = orderInfo.ShopName;
            info.UserName    = orderInfo.UserName;
            info.CommentDate = DateTime.Now;
            context.OrderCommentInfo.Add(info);
            context.SaveChanges();
            MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
            {
                UserName   = info.UserName,
                ReMark     = string.Concat("订单号:", info.OrderId),
                MemberId   = info.UserId,
                RecordDate = new DateTime?(DateTime.Now),
                TypeId     = MemberIntegral.IntegralType.Comment
            };
            MemberIntegralRecordAction memberIntegralRecordAction = new MemberIntegralRecordAction()
            {
                VirtualItemTypeId = new MemberIntegral.VirtualItemType?(MemberIntegral.VirtualItemType.Comment),
                VirtualItemId     = info.OrderId
            };

            memberIntegralRecord.ChemCloud_MemberIntegralRecordAction.Add(memberIntegralRecordAction);
            IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Comment, 0);

            Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
        }
Beispiel #16
0
        public JsonResult OrderShareAddIntegral(string orderids)
        {
            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new HimallException("预约单号不能为空!");
            }
            long orderId = 0L;
            IEnumerable <long> enumerable = orderids.Split(new char[] { ',' }).Select <string, long>(delegate(string e)
            {
                if (!long.TryParse(e, out orderId))
                {
                    throw new HimallException("预约单分享增加积分时,预约单号异常!");
                }
                return(orderId);
            });

            if (MemberIntegralApplication.OrderIsShared(enumerable))
            {
                throw new HimallException("预约单已经分享过!");
            }
            MemberIntegralRecord model = new MemberIntegralRecord
            {
                MemberId   = base.CurrentUser.Id,
                UserName   = base.CurrentUser.UserName,
                RecordDate = new DateTime?(DateTime.Now),
                TypeId     = MemberIntegral.IntegralType.Share,
                ReMark     = string.Format("预约单号:{0}", orderids)
            };
            List <MemberIntegralRecordAction> list = new List <MemberIntegralRecordAction>();

            foreach (long num in enumerable)
            {
                MemberIntegralRecordAction item = new MemberIntegralRecordAction
                {
                    VirtualItemId     = num,
                    VirtualItemTypeId = MemberIntegral.VirtualItemType.ShareOrder
                };
                list.Add(item);
            }
            model.Himall_MemberIntegralRecordAction = list;
            MemberIntegralApplication.AddMemberIntegralByEnum(model, MemberIntegral.IntegralType.Share);
            return(base.Json(new { success = true, msg = "晒单添加积分成功!" }));
        }
        public void AddInviteIntegel(UserMemberInfo RegMember, UserMemberInfo InviteMember)
        {
            var InviteRule = GetInviteRule();

            if (InviteRule == null)
            {
                return;
            }

            if (!HasInviteIntegralRecord(RegMember.Id)) //没有过邀请得分,加积分
            {
                var factoryService        = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
                var integralService       = ServiceProvider.Instance <IMemberIntegralService> .Create;
                MemberIntegralRecord info = new MemberIntegralRecord();
                info.UserName   = RegMember.UserName;
                info.MemberId   = RegMember.Id;
                info.RecordDate = DateTime.Now;
                info.ReMark     = "被邀请注册";
                info.TypeId     = MemberIntegral.IntegralType.Others;
                var memberIntegral = factoryService.Create(MemberIntegral.IntegralType.Others, InviteRule.RegIntegral.Value);
                integralService.AddMemberIntegral(info, memberIntegral);

                MemberIntegralRecord info2 = new MemberIntegralRecord();
                info2.UserName   = InviteMember.UserName;
                info2.MemberId   = InviteMember.Id;
                info2.RecordDate = DateTime.Now;
                info2.ReMark     = "邀请会员";
                info2.TypeId     = MemberIntegral.IntegralType.InvitationMemberRegiste;
                var memberIntegral2 = factoryService.Create(MemberIntegral.IntegralType.InvitationMemberRegiste);
                integralService.AddMemberIntegral(info2, memberIntegral2);

                InviteRecordInfo inviteInfo = new InviteRecordInfo();
                inviteInfo.RegIntegral    = InviteRule.RegIntegral.GetValueOrDefault();
                inviteInfo.InviteIntegral = InviteRule.InviteIntegral.GetValueOrDefault();
                inviteInfo.RecordTime     = DateTime.Now;
                inviteInfo.RegTime        = RegMember.CreateDate;
                inviteInfo.RegUserId      = RegMember.Id;
                inviteInfo.RegName        = RegMember.UserName;
                inviteInfo.UserId         = InviteMember.Id;
                inviteInfo.UserName       = InviteMember.UserName;
                AddInviteRecord(inviteInfo);
            }
        }
Beispiel #18
0
        public JsonResult Management(string Operation, int Integral, string userName, int?userId, string reMark)
        {
            if (string.IsNullOrWhiteSpace(userName))
            {
                throw new HimallException("该用户不存在");
            }
            UserMemberInfo memberByName = ServiceHelper.Create <IMemberService>().GetMemberByName(userName);

            if (memberByName == null)
            {
                throw new HimallException("该用户不存在");
            }
            if (Integral <= 0)
            {
                throw new HimallException("积分必须为大于0的整数");
            }
            MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
            {
                UserName   = userName,
                MemberId   = memberByName.Id,
                RecordDate = new DateTime?(DateTime.Now),
                TypeId     = MemberIntegral.IntegralType.SystemOper,
                ReMark     = reMark
            };

            if (Operation == "sub")
            {
                Integral = -Integral;
            }
            IConversionMemberIntegralBase conversionMemberIntegralBase = ServiceHelper.Create <IMemberIntegralConversionFactoryService>().Create(MemberIntegral.IntegralType.SystemOper, Integral);

            ServiceHelper.Create <IMemberIntegralService>().AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
            Result result = new Result()
            {
                success = true,
                msg     = "操作成功"
            };

            return(Json(result));
        }
        public JsonResult AddComment(long subOrderId, int star, string content)
        {
            ProductCommentInfo productCommentInfo = new ProductCommentInfo()
            {
                ReviewDate    = DateTime.Now,
                ReviewContent = content,
                UserId        = base.CurrentUser.Id,
                UserName      = base.CurrentUser.UserName,
                Email         = base.CurrentUser.Email,
                SubOrderId    = new long?(subOrderId),
                ReviewMark    = star
            };

            ServiceHelper.Create <ICommentService>().AddComment(productCommentInfo);
            MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
            {
                UserName   = base.CurrentUser.UserName,
                MemberId   = base.CurrentUser.Id,
                RecordDate = new DateTime?(DateTime.Now),
                TypeId     = MemberIntegral.IntegralType.Comment
            };
            MemberIntegralRecordAction memberIntegralRecordAction = new MemberIntegralRecordAction()
            {
                VirtualItemTypeId = new MemberIntegral.VirtualItemType?(MemberIntegral.VirtualItemType.Comment),
                VirtualItemId     = productCommentInfo.ProductId
            };

            memberIntegralRecord.ChemCloud_MemberIntegralRecordAction.Add(memberIntegralRecordAction);
            IConversionMemberIntegralBase conversionMemberIntegralBase = ServiceHelper.Create <IMemberIntegralConversionFactoryService>().Create(MemberIntegral.IntegralType.Comment, 0);

            ServiceHelper.Create <IMemberIntegralService>().AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
            Result result = new Result()
            {
                success = true,
                msg     = "发表成功"
            };

            return(Json(result));
        }
Beispiel #20
0
        public void AddCouponRecord(CouponRecordInfo info)
        {
            string     shopName   = context.ShopInfo.FindById <ShopInfo>(info.ShopId).ShopName;
            CouponInfo couponInfo = context.CouponInfo.FirstOrDefault((CouponInfo d) => d.Id == info.CouponId);

            if (couponInfo.IsSyncWeiXin == 1 && couponInfo.WXAuditStatus != 1)
            {
                throw new HimallException("优惠券状态错误,不可领取");
            }
            if (couponInfo.ReceiveType == CouponInfo.CouponReceiveType.IntegralExchange)
            {
                MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
                {
                    UserName   = info.UserName,
                    MemberId   = info.UserId,
                    RecordDate = new DateTime?(DateTime.Now),
                    TypeId     = MemberIntegral.IntegralType.Exchange,
                    Integral   = couponInfo.NeedIntegral
                };
                decimal price = couponInfo.Price;
                memberIntegralRecord.ReMark = string.Concat("兑换优惠券:面值", price.ToString("f2"));
                IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Exchange, memberIntegralRecord.Integral);

                Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
            }
            info.CounponStatus = CouponRecordInfo.CounponStatuses.Unuse;
            CouponRecordInfo couponRecordInfo = info;
            Guid             guid             = Guid.NewGuid();

            couponRecordInfo.CounponSN = guid.ToString().Replace("-", "");
            info.UsedTime    = null;
            info.CounponTime = DateTime.Now;
            info.ShopName    = shopName;
            info.OrderId     = null;
            context.CouponRecordInfo.Add(info);
            context.SaveChanges();
        }
Beispiel #21
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);
            MemberIntegralRecord record = new MemberIntegralRecord();

            record.UserName   = member.UserName;
            record.MemberId   = member.Id;
            record.RecordDate = DateTime.Now;
            var remark = "签到奖励";

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

            ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(record, memberIntegral);
        }
Beispiel #22
0
        public void AddOrderComment(OrderCommentInfo info)
        {
            var order = Context.OrderInfo.Where(a => a.Id == info.OrderId && a.UserId == info.UserId).FirstOrDefault();

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

            if (orderComment.Count() > 0)
            {
                throw new HimallException("您已经评论过该订单!");
            }
            info.ShopId      = order.ShopId;
            info.ShopName    = order.ShopName;
            info.UserName    = order.UserName;
            info.CommentDate = DateTime.Now;
            Context.OrderCommentInfo.Add(info);
            Context.SaveChanges();
            MemberIntegralRecord record = new MemberIntegralRecord();

            record.UserName   = info.UserName;
            record.ReMark     = "订单号:" + info.OrderId;
            record.MemberId   = info.UserId;
            record.RecordDate = DateTime.Now;
            record.TypeId     = MemberIntegral.IntegralType.Comment;
            MemberIntegralRecordAction action = new MemberIntegralRecordAction();

            action.VirtualItemTypeId = MemberIntegral.VirtualItemType.Comment;
            action.VirtualItemId     = info.OrderId;
            record.Himall_MemberIntegralRecordAction.Add(action);
            var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Comment);

            ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(record, memberIntegral);
        }
Beispiel #23
0
        public CouponRecordInfo AddCouponRecord(CouponRecordInfo info)
        {
            var shopName   = Context.ShopInfo.FindById(info.ShopId).ShopName;
            var coupondata = Context.CouponInfo.FirstOrDefault(d => d.Id == info.CouponId);

            if (coupondata.IsSyncWeiXin == 1 && coupondata.WXAuditStatus != (int)WXCardLogInfo.AuditStatusEnum.Audited)
            {
                throw new HimallException("优惠券状态错误,不可领取");
            }

            //扣积分
            if (coupondata.ReceiveType == Himall.Model.CouponInfo.CouponReceiveType.IntegralExchange)
            {
                MemberIntegralRecord mirinfo = new MemberIntegralRecord();
                mirinfo.UserName   = info.UserName;
                mirinfo.MemberId   = info.UserId;
                mirinfo.RecordDate = DateTime.Now;
                mirinfo.TypeId     = MemberIntegral.IntegralType.Exchange;
                mirinfo.Integral   = coupondata.NeedIntegral;
                mirinfo.ReMark     = "兑换优惠券:面值" + coupondata.Price.ToString("f2");
                var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.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 item = Context.CouponRecordInfo.Add(info);

            Context.SaveChanges();
            return(item);
        }
        public ActionResult CheckCode(string pluginId, string code, string destination)
        {
            string         str         = CacheKeyCollection.MemberPluginCheck(base.CurrentUser.UserName, pluginId);
            object         obj         = Cache.Get(str);
            UserMemberInfo currentUser = base.CurrentUser;
            string         str1        = "";

            if (obj == null || !(obj.ToString() == code))
            {
                Result result = new Result()
                {
                    success = false,
                    msg     = "验证码不正确或者已经超时"
                };
                return(Json(result));
            }
            IMessageService messageService = ServiceHelper.Create <IMessageService>();

            if (messageService.GetMemberContactsInfo(pluginId, destination, MemberContactsInfo.UserTypes.General) != null)
            {
                Result result1 = new Result()
                {
                    success = false,
                    msg     = string.Concat(destination, "已经绑定过了!")
                };
                return(Json(result1));
            }
            if (pluginId.ToLower().Contains("email"))
            {
                currentUser.Email = destination;
                str1 = "邮箱";
            }
            else if (pluginId.ToLower().Contains("sms"))
            {
                currentUser.CellPhone = destination;
                str1 = "手机";
            }
            ServiceHelper.Create <IMemberService>().UpdateMember(currentUser);
            MemberContactsInfo memberContactsInfo = new MemberContactsInfo()
            {
                Contact         = destination,
                ServiceProvider = pluginId,
                UserId          = base.CurrentUser.Id,
                UserType        = MemberContactsInfo.UserTypes.General
            };

            messageService.UpdateMemberContacts(memberContactsInfo);
            Cache.Remove(CacheKeyCollection.MemberPluginCheck(base.CurrentUser.UserName, pluginId));
            Cache.Remove(CacheKeyCollection.Member(base.CurrentUser.Id));
            Cache.Remove(string.Concat("Rebind", base.CurrentUser.Id));
            UserMemberInfo member = null;

            if (currentUser.InviteUserId.HasValue)
            {
                member = ServiceHelper.Create <IMemberService>().GetMember(currentUser.InviteUserId.Value);
            }
            Task.Factory.StartNew(() => {
                MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
                {
                    UserName   = currentUser.UserName,
                    MemberId   = currentUser.Id,
                    RecordDate = new DateTime?(DateTime.Now),
                    TypeId     = MemberIntegral.IntegralType.Reg,
                    ReMark     = string.Concat("绑定", str1)
                };
                IConversionMemberIntegralBase conversionMemberIntegralBase = ServiceHelper.Create <IMemberIntegralConversionFactoryService>().Create(MemberIntegral.IntegralType.Reg, 0);
                ServiceHelper.Create <IMemberIntegralService>().AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
                if (member != null)
                {
                    ServiceHelper.Create <IMemberInviteService>().AddInviteIntegel(currentUser, member);
                }
            });
            Result result2 = new Result()
            {
                success = true,
                msg     = "验证正确"
            };

            return(Json(result2));
        }
 /// <summary>
 ///  //用户积分记录增加
 /// </summary>
 /// <param name="model"></param>
 /// <param name="conversionMemberIntegralEntity"></param>
 public static void AddMemberIntegral(MemberIntegralRecord model, IConversionMemberIntegralBase conversionMemberIntegralEntity = null)
 {
     _iMemberIntegralService.AddMemberIntegral(model, conversionMemberIntegralEntity);
 }
Beispiel #26
0
        public void ConfirmRefund(long refundId, string managerRemark, string managerName)
        {
            decimal?        nullable;
            OrderRefundInfo now = context.OrderRefundInfo.FindById <OrderRefundInfo>(refundId);

            if (now.RefundPayType.HasValue)
            {
                switch (now.RefundPayType.Value)
                {
                case OrderRefundInfo.OrderRefundPayType.BackOut:
                {
                    if (now.RefundPayStatus.HasValue && now.RefundPayStatus.Value == OrderRefundInfo.OrderRefundPayStatus.PaySuccess)
                    {
                        break;
                    }
                    string paymentTypeGateway = now.OrderItemInfo.OrderInfo.PaymentTypeGateway;
                    IEnumerable <Plugin <IPaymentPlugin> > plugins =
                        from item in PluginsManagement.GetPlugins <IPaymentPlugin>(true)
                        where item.PluginInfo.PluginId == paymentTypeGateway
                        select item;
                    if (plugins.Count <Plugin <IPaymentPlugin> >() <= 0)
                    {
                        throw new HimallException("退款时,未找到支付方式!");
                    }
                    OrderPayInfo      orderPayInfo = context.OrderPayInfo.FirstOrDefault((OrderPayInfo e) => e.PayState && e.OrderId == now.OrderId);
                    IQueryable <long> nums         =
                        from item in context.OrderPayInfo
                        where item.PayId == orderPayInfo.PayId && item.PayState
                        select item into e
                        select e.OrderId;
                    decimal num = (
                        from o in context.OrderInfo
                        where nums.Contains(o.Id)
                        select o).ToList().Sum <OrderInfo>((OrderInfo e) => e.OrderTotalAmount);
                    if (orderPayInfo == null)
                    {
                        throw new HimallException("退款时,未找到原支付订单信息!");
                    }
                    PaymentPara paymentPara = new PaymentPara()
                    {
                        out_refund_no = now.Id.ToString(),
                        out_trade_no  = orderPayInfo.PayId.ToString(),
                        refund_fee    = now.Amount,
                        total_fee     = num
                    };
                    PaymentPara paymentPara1 = paymentPara;
                    PaymentInfo paymentInfo  = plugins.FirstOrDefault <Plugin <IPaymentPlugin> >().Biz.ProcessRefundFee(paymentPara1);
                    if (paymentInfo.OrderIds == null || paymentInfo.OrderIds.Count() <= 0)
                    {
                        break;
                    }
                    now.RefundPayStatus = new OrderRefundInfo.OrderRefundPayStatus?(OrderRefundInfo.OrderRefundPayStatus.PaySuccess);
                    context.SaveChanges();
                    break;
                }

                case OrderRefundInfo.OrderRefundPayType.BackCapital:
                {
                    if (now.RefundPayStatus.HasValue && now.RefundPayStatus.Value == OrderRefundInfo.OrderRefundPayStatus.PaySuccess)
                    {
                        break;
                    }
                    CapitalInfo capitalInfo = context.CapitalInfo.FirstOrDefault((CapitalInfo e) => e.MemId == now.UserId);
                    OrderBO     orderBO     = new OrderBO();
                    if (capitalInfo != null)
                    {
                        CapitalDetailInfo capitalDetailInfo = new CapitalDetailInfo()
                        {
                            Amount     = now.Amount,
                            CapitalID  = capitalInfo.Id,
                            CreateTime = new DateTime?(DateTime.Now),
                            SourceType = CapitalDetailInfo.CapitalDetailType.Refund,
                            SourceData = now.Id.ToString(),
                            Id         = orderBO.GenerateOrderNumber()
                        };
                        CapitalDetailInfo capitalDetailInfo1 = capitalDetailInfo;
                        CapitalInfo       capitalInfo1       = capitalInfo;
                        decimal?          balance            = capitalInfo1.Balance;
                        decimal           amount             = now.Amount;
                        if (balance.HasValue)
                        {
                            nullable = new decimal?(balance.GetValueOrDefault() + amount);
                        }
                        else
                        {
                            nullable = null;
                        }
                        capitalInfo1.Balance = nullable;
                        context.CapitalDetailInfo.Add(capitalDetailInfo1);
                    }
                    else
                    {
                        CapitalInfo capitalInfo2 = new CapitalInfo()
                        {
                            Balance      = new decimal?(now.Amount),
                            MemId        = now.UserId,
                            FreezeAmount = new decimal?(new decimal(0)),
                            ChargeAmount = new decimal?(new decimal(0))
                        };
                        List <CapitalDetailInfo> capitalDetailInfos = new List <CapitalDetailInfo>();
                        CapitalDetailInfo        capitalDetailInfo2 = new CapitalDetailInfo()
                        {
                            Amount     = now.Amount,
                            CreateTime = new DateTime?(DateTime.Now),
                            SourceData = now.Id.ToString(),
                            SourceType = CapitalDetailInfo.CapitalDetailType.Refund,
                            Id         = orderBO.GenerateOrderNumber()
                        };
                        capitalDetailInfos.Add(capitalDetailInfo2);
                        capitalInfo2.ChemCloud_CapitalDetail = capitalDetailInfos;
                        capitalInfo = capitalInfo2;
                        context.CapitalInfo.Add(capitalInfo);
                    }
                    now.RefundPayStatus = new OrderRefundInfo.OrderRefundPayStatus?(OrderRefundInfo.OrderRefundPayStatus.PaySuccess);
                    context.SaveChanges();
                    break;
                }
                }
            }
            if (now.ManagerConfirmStatus != OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm)
            {
                throw new HimallException("只有未确认状态的退款/退货才能进行确认操作");
            }
            now.ManagerConfirmStatus = OrderRefundInfo.OrderRefundConfirmStatus.Confirmed;
            now.ManagerConfirmDate   = DateTime.Now;
            now.ManagerRemark        = managerRemark;
            OrderOperationLogInfo orderOperationLogInfo = new OrderOperationLogInfo()
            {
                Operator       = managerName,
                OrderId        = now.OrderId,
                OperateDate    = DateTime.Now,
                OperateContent = "确认退款/退货"
            };

            context.OrderOperationLogInfo.Add(orderOperationLogInfo);
            UserMemberInfo userMemberInfo   = context.UserMemberInfo.FindById <UserMemberInfo>(now.UserId);
            OrderInfo      orderInfo        = context.OrderInfo.FindById <OrderInfo>(now.OrderId);
            decimal        orderTotalAmount = orderInfo.OrderTotalAmount - orderInfo.Freight;
            decimal        amount1          = now.Amount - (orderInfo.IntegralDiscount * (now.Amount / orderTotalAmount));

            amount1 = Math.Round(amount1, 2);
            if (amount1 > new decimal(0))
            {
                OrderInfo refundTotalAmount = orderInfo;
                refundTotalAmount.RefundTotalAmount = refundTotalAmount.RefundTotalAmount + amount1;
                if (orderInfo.RefundTotalAmount > orderTotalAmount)
                {
                    orderInfo.RefundTotalAmount = orderTotalAmount;
                }
            }
            if (now.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund)
            {
                MemberIntegralExchangeRules integralChangeRule = Instance <IMemberIntegralService> .Create.GetIntegralChangeRule();

                if (integralChangeRule != null)
                {
                    int            moneyPerIntegral = integralChangeRule.MoneyPerIntegral;
                    int            num1             = (int)Math.Floor(now.Amount / moneyPerIntegral);
                    MemberIntegral memberIntegral   = userMemberInfo.ChemCloud_MemberIntegral.FirstOrDefault();
                    int            num2             = (memberIntegral == null ? 0 : memberIntegral.AvailableIntegrals);
                    if (num1 > 0 && num2 > 0 && orderInfo.OrderStatus == OrderInfo.OrderOperateStatus.Finish)
                    {
                        MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
                        {
                            UserName   = userMemberInfo.UserName,
                            MemberId   = userMemberInfo.Id,
                            RecordDate = new DateTime?(DateTime.Now),
                            TypeId     = MemberIntegral.IntegralType.Others
                        };
                        object[] id = new object[] { "售后编号【", now.Id, "】退款应扣除积分", num1.ToString() };
                        memberIntegralRecord.ReMark = string.Concat(id);
                        num1 = (num1 > num2 ? num2 : num1);
                        num1 = -num1;
                        IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Others, num1);

                        Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);
                    }
                }
            }
            context.SaveChanges();
            MessageOrderInfo messageOrderInfo = new MessageOrderInfo()
            {
                OrderId     = orderInfo.Id.ToString(),
                ShopId      = orderInfo.ShopId,
                ShopName    = orderInfo.ShopName,
                RefundMoney = now.Amount,
                SiteName    = Instance <ISiteSettingService> .Create.GetSiteSettings().SiteName,
                TotalMoney  = orderInfo.OrderTotalAmount
            };

            Task.Factory.StartNew(() => Instance <IMessageService> .Create.SendMessageOnOrderRefund(orderInfo.UserId, messageOrderInfo));
            if (orderInfo.PayDate.HasValue)
            {
                UpdateShopVisti(now, orderInfo.PayDate.Value);
                UpdateProductVisti(now, orderInfo.PayDate.Value);
            }
        }
Beispiel #27
0
        public UserMemberInfo Register(string username, string password, string email = "", long introducer = 0L)
        {
            UserMemberInfo nullable;

            if (string.IsNullOrWhiteSpace(username))
            {
                throw new ArgumentNullException("用户名不能为空");
            }
            if (CheckMemberExist(username))
            {
                throw new HimallException(string.Concat("用户名 ", username, " 已经被其它会员注册"));
            }
            if (string.IsNullOrWhiteSpace(password))
            {
                throw new ArgumentNullException("密码不能为空");
            }
            if (!string.IsNullOrEmpty(email) && CheckEmailExist(email))
            {
                throw new HimallException("邮箱已经被其它会员注册");
            }
            password = password.Trim();
            Guid   guid = Guid.NewGuid();
            string str  = guid.ToString("N").Substring(12);

            password = GetPasswrodWithTwiceEncode(password, str);
            using (TransactionScope transactionScope = new TransactionScope())
            {
                UserMemberInfo userMemberInfo = new UserMemberInfo()
                {
                    UserName      = username,
                    PasswordSalt  = str,
                    CreateDate    = DateTime.Now,
                    LastLoginDate = DateTime.Now,
                    Nick          = username,
                    RealName      = username,
                    Email         = email
                };
                nullable = userMemberInfo;
                if (introducer != 0)
                {
                    nullable.InviteUserId = new long?(introducer);
                }
                nullable.Password = password;
                nullable          = context.UserMemberInfo.Add(nullable);
                context.SaveChanges();
                if (!string.IsNullOrEmpty(email))
                {
                    IMessageService    create             = Instance <IMessageService> .Create;
                    MemberContactsInfo memberContactsInfo = new MemberContactsInfo()
                    {
                        Contact         = email,
                        ServiceProvider = "Himall.Plugin.Message.Email",
                        UserId          = nullable.Id,
                        UserType        = MemberContactsInfo.UserTypes.General
                    };
                    create.UpdateMemberContacts(memberContactsInfo);
                    MemberIntegralRecord memberIntegralRecord = new MemberIntegralRecord()
                    {
                        UserName   = username,
                        MemberId   = nullable.Id,
                        RecordDate = new DateTime?(DateTime.Now),
                        TypeId     = MemberIntegral.IntegralType.Reg,
                        ReMark     = "Bind Email"
                    };
                    IConversionMemberIntegralBase conversionMemberIntegralBase = Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Reg, 0);

                    Instance <IMemberIntegralService> .Create.AddMemberIntegral(memberIntegralRecord, conversionMemberIntegralBase);

                    IMemberInviteService memberInviteService = Instance <IMemberInviteService> .Create;
                    if (introducer != 0)
                    {
                        UserMemberInfo member = GetMember(introducer);
                        if (member != null)
                        {
                            memberInviteService.AddInviteIntegel(nullable, member);
                        }
                    }
                }
                transactionScope.Complete();
            }
            return(nullable);
        }
        public static void WinnerSubmit(WeiActivityWinModel winModel)
        {
            //添加中奖信息记录
            WeiActivityWinInfo activityWinInfo = new WeiActivityWinInfo();

            activityWinInfo.ActivityId = winModel.activityId;
            activityWinInfo.AddDate    = DateTime.Now;
            activityWinInfo.UserId     = winModel.userId;
            activityWinInfo.IsWin      = winModel.isWin;
            if (activityWinInfo.IsWin)
            {
                if (winModel.awardType == WeiActivityAwardType.Integral)//积分
                {
                    activityWinInfo.AwardName = winModel.awardName + " 积分";
                    //新增积分记录
                    var factoryService        = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
                    MemberIntegralRecord info = new MemberIntegralRecord();
                    info.UserName   = _iMemberService.GetMember(activityWinInfo.UserId).UserName;
                    info.MemberId   = activityWinInfo.UserId;
                    info.RecordDate = DateTime.Now;
                    info.ReMark     = "微信活动中奖";
                    info.TypeId     = MemberIntegral.IntegralType.WeiActivity;
                    var memberIntegral = factoryService.Create(MemberIntegral.IntegralType.WeiActivity, Convert.ToInt32(winModel.awardName));//winModel.integrals为消耗积分 此处不是用户总积分
                    _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
                }
                else if (winModel.awardType == WeiActivityAwardType.Bonus)//红包
                {
                    activityWinInfo.AwardName = winModel.awardName;
                    _iBonusService.SetShareByUserId(winModel.bonusId, false, winModel.userId);//添加红包记录
                    _iBonusService.IncrReceiveCount(winModel.bonusId);
                }
                else
                {
                    activityWinInfo.AwardName = winModel.awardName;
                    //添加优惠券记录
                    CouponRecordInfo recordInfo = new CouponRecordInfo();
                    recordInfo.UserId   = winModel.userId;
                    recordInfo.UserName = _iMemberService.GetMember(winModel.userId).UserName;
                    recordInfo.ShopId   = _iCouponService.GetCouponInfo(winModel.couponId).ShopId;
                    recordInfo.CouponId = winModel.couponId;
                    _iCouponService.AddCouponRecord(recordInfo);
                }
            }
            else
            {
                activityWinInfo.AwardName = winModel.awardName;
            }
            activityWinInfo.AwardId = winModel.awardId;
            _iWeiActivityWinService.AddWinner(activityWinInfo);

            //消耗积分
            if (winModel.integrals > 0)
            {
                var factoryService        = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
                MemberIntegralRecord info = new MemberIntegralRecord();
                info.UserName   = _iMemberService.GetMember(activityWinInfo.UserId).UserName;
                info.MemberId   = activityWinInfo.UserId;
                info.RecordDate = DateTime.Now;
                info.ReMark     = "微信活动消耗";
                info.TypeId     = MemberIntegral.IntegralType.WeiActivity;
                var memberIntegral = factoryService.Create(MemberIntegral.IntegralType.WeiActivity, -winModel.integrals);
                _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
            }
        }
        public ActionResult CheckCode(string pluginId, string code, string destination)
        {
            var cache     = CacheKeyCollection.MemberPluginCheck(CurrentUser.UserName, pluginId + destination);
            var cacheCode = Core.Cache.Get(cache);
            var member    = CurrentUser;
            var mark      = "";

            if (cacheCode != null && cacheCode.ToString() == code)
            {
                var service = _iMessageService;
                if (service.GetMemberContactsInfo(pluginId, destination, MemberContactsInfo.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 Model.MemberContactsInfo()
                {
                    Contact = destination, ServiceProvider = pluginId, UserId = CurrentUser.Id, UserType = MemberContactsInfo.UserTypes.General
                });
                Core.Cache.Remove(CacheKeyCollection.MemberPluginCheck(CurrentUser.UserName, pluginId));
                Core.Cache.Remove(CacheKeyCollection.Member(CurrentUser.Id));//移除用户缓存
                Core.Cache.Remove("Rebind" + CurrentUser.Id);

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

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

                return(Json(new Result()
                {
                    success = true, msg = "验证正确"
                }));
            }
            else
            {
                return(Json(new Result()
                {
                    success = false, msg = "验证码不正确或者已经超时"
                }));
            }
        }
Beispiel #30
0
        public void AppendComment(List <AppendCommentModel> list)
        {
            var  userid   = 0L;
            var  userName = "";
            long orderId  = 0;

            foreach (var model in list)
            {
                var m = Context.ProductCommentInfo.FindBy(item => item.Id == model.Id && item.UserId == model.UserId).FirstOrDefault();
                if (model.UserId == 0 || m == null)
                {
                    throw new Himall.Core.HimallException("该诊疗项目尚未评论,请先评论。");
                }
                if (m.AppendDate.HasValue)
                {
                    throw new Himall.Core.HimallException("您已追加评价过了,不需再重复操作。");
                }
                userid          = m.UserId;
                userName        = m.UserName;
                orderId         = m.Himall_OrderItems.OrderId;
                m.AppendContent = model.AppendContent;
                m.AppendDate    = DateTime.Now;
                if (model.Images != null && model.Images.Length > 0)
                {
                    foreach (var img in model.Images)
                    {
                        var p = new ProductCommentsImagesInfo();
                        p.CommentType  = 1;//1代表表示追加评论的图片
                        p.CommentImage = MoveImages(img, model.UserId);
                        m.Himall_ProductCommentsImages.Add(p);
                    }
                }
                else if (model.WXmediaId != null && model.WXmediaId.Length > 0)
                {
                    foreach (var img in model.WXmediaId)
                    {
                        var p = new ProductCommentsImagesInfo();
                        p.CommentType  = 1;//1表示追加的图片
                        p.CommentImage = DownloadWxImage(img);
                        if (!string.IsNullOrEmpty(p.CommentImage))
                        {
                            m.Himall_ProductCommentsImages.Add(p);
                        }
                    }
                }
            }
            Context.SaveChanges();
            try
            {
                //TODO发表追加评论获得积分
                MemberIntegralRecord info = new MemberIntegralRecord();
                info.UserName   = userName;
                info.MemberId   = userid;
                info.RecordDate = DateTime.Now;
                info.TypeId     = MemberIntegral.IntegralType.Comment;
                info.ReMark     = "追加评论,预约单号:" + orderId;
                MemberIntegralRecordAction action = new MemberIntegralRecordAction();
                action.VirtualItemTypeId = MemberIntegral.VirtualItemType.Comment;
                action.VirtualItemId     = orderId;
                info.Himall_MemberIntegralRecordAction.Add(action);
                var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(MemberIntegral.IntegralType.Comment);

                ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(info, memberIntegral);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }
        }