/// <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); }
/// <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); } } }
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 = "操作成功" })); }
/// <summary> /// //用户积分记录增加 /// </summary> /// <param name="model"></param> /// <param name="conversionMemberIntegralEntity"></param> public static void AddMemberIntegral(MemberIntegralRecordInfo model, IConversionMemberIntegralBase conversionMemberIntegralEntity = null) { _iMemberIntegralService.AddMemberIntegral(model, conversionMemberIntegralEntity); }