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

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

            record.TypeId = MemberIntegralInfo.IntegralType.Exchange;
            remark       += Id.ToString();
            var action = new MemberIntegralRecordActionInfo();

            action.VirtualItemTypeId = MemberIntegralInfo.VirtualItemType.Exchange;
            action.VirtualItemId     = Id;
            record.MemberIntegralRecordActionInfo = new List <MemberIntegralRecordActionInfo>();
            record.MemberIntegralRecordActionInfo.Add(action);
            record.ReMark = remark;
            var memberIntegral = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create.Create(Himall.Entities.MemberIntegralInfo.IntegralType.Exchange, integral);

            ServiceProvider.Instance <IMemberIntegralService> .Create.AddMemberIntegral(record, memberIntegral);
        }
Exemple #2
0
        /// <summary>
        /// 通过多个RecordAction,增加用户积分
        /// </summary>
        /// <param name="model"></param>
        /// <param name="type"></param>
        public static void AddMemberIntegralByEnum(MemberIntegralRecordInfo model, MemberIntegralInfo.IntegralType type)
        {
            var conversionService = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
            var conversionMemberIntegralEntity = conversionService.Create(MemberIntegralInfo.IntegralType.Share);

            _iMemberIntegralService.AddMemberIntegralByRecordAction(model, conversionMemberIntegralEntity);
        }
        public void AddMemberIntegralNotAddHistoryIntegrals(MemberIntegralRecordInfo 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))
            if (!DbFactory.Default.Get <MemberInfo>().Where(a => a.Id == model.MemberId && a.UserName == model.UserName).Exist())
            {
                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);
            var userIntegral = DbFactory.Default.Get <MemberIntegralInfo>().Where(a => a.MemberId == model.MemberId).FirstOrDefault();

            if (userIntegral == null)
            {
                userIntegral          = new MemberIntegralInfo();
                userIntegral.MemberId = model.MemberId;
                userIntegral.UserName = model.UserName;
                if (model.Integral <= 0)
                {
                    throw new Himall.Core.HimallException("用户积分不足以扣减该积分!");
                }
                userIntegral.AvailableIntegrals += model.Integral;
                //Context.MemberIntegral.Add(userIntegral);
                DbFactory.Default.Add(userIntegral);
            }
            else
            {
                if (model.Integral <= 0)
                {
                    if (userIntegral.AvailableIntegrals < Math.Abs(model.Integral))
                    {
                        throw new Himall.Core.HimallException("用户积分不足以扣减该积分!");
                    }
                }
                userIntegral.AvailableIntegrals += model.Integral;
                DbFactory.Default.Update(userIntegral);
            }

            DbFactory.Default.Add(model);
            if (model.MemberIntegralRecordActionInfo != null)
            {
                model.MemberIntegralRecordActionInfo.ForEach(p => p.IntegralRecordId = model.Id);
                DbFactory.Default.AddRange(model.MemberIntegralRecordActionInfo);
            }
        }
        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, Entities.MemberContactInfo.UserTypes.General) != null)
            {
                return(new { success = false, msg = contact + "已经绑定过了!" });
            }
            member.CellPhone = contact;
            MemberApplication.UpdateMember(member.Map <DTO.Members>());
            Application.MessageApplication.UpdateMemberContacts(new Entities.MemberContactInfo()
            {
                Contact         = contact,
                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);

            Entities.MemberInfo inviteMember = MemberApplication.GetMember(member.InviteUserId);


            var info = new MemberIntegralRecordInfo();

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

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

            return(base.OnCheckCheckCodeSuccess(contact));
        }
        public void AddInviteIntegel(MemberInfo RegMember, MemberInfo InviteMember, bool hasEmailOrPhone = false)
        {
            var InviteRule = GetInviteRule();

            if (InviteRule == null)
            {
                return;
            }

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

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

                    var inviteInfo = new InviteRecordInfo();
                    inviteInfo.RegIntegral    = InviteRule.RegIntegral;
                    inviteInfo.InviteIntegral = InviteRule.InviteIntegral;
                    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);
                }
            }
        }
Exemple #6
0
        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且小于十万的整数");
            }
            var info = new MemberIntegralRecordInfo();

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

            _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
            string CACHE_USER_KEY = CacheKeyCollection.Member(memeber.Id);

            Core.Cache.Remove(CACHE_USER_KEY);
            return(Json(new Result()
            {
                success = true, msg = "操作成功"
            }));
        }
Exemple #7
0
 /// <summary>
 ///  //用户积分记录增加
 /// </summary>
 /// <param name="model"></param>
 /// <param name="conversionMemberIntegralEntity"></param>
 public static void AddMemberIntegral(MemberIntegralRecordInfo model, IConversionMemberIntegralBase conversionMemberIntegralEntity = null)
 {
     _iMemberIntegralService.AddMemberIntegral(model, conversionMemberIntegralEntity);
 }