public APIResult Register([FromBody] RegisterArgsModel args) { if (!CheckVerificationCode(args.Phone, args.Code)) { return(Error("验证码错误")); } int memberId = GetMemberId(); var model = db.Query <ShopMember>() .FirstOrDefault(m => !m.IsDel && m.MemberId == memberId && m.ShopId == args.ShopId.Value); if (model != null) { throw new Exception("该会员已注册过"); } var members = memberDb.Members.Find(memberId); var shopMember = new ShopMember() { ShopId = args.ShopId.Value, AddIp = GetIp(), AddTime = DateTime.Now, MemberId = memberId, Sex = args.Sex, Phone = args.Phone, Credits = 0, Balance = 0, BirthDay = args.BirthDay.Value, Name = members.NickName }; db.Add(shopMember); var shopMemberServer = new ShopMemberServer(db, shopMember); if (!shopMemberServer.CheckPhoneNumCanUse(args.Phone, args.ShopId.Value)) { return(Error("该手机号码已注册")); } //shopMemberServer.SetPassword(args.Password); db.SaveChanges(); //更新会员等级 ShopMemberLevelServer.UpdateMemberLevel(db, db.ShopMemberSet.FirstOrDefault(m => m.ShopId.Equals(args.ShopId) && !m.IsDel), memberId, args.ShopId.Value, _logger); return(Success(new { shopMember.Id })); }
//[HttpPost] //[Authorize(AuthenticationSchemes = "jwt")] //public APIResult MemberTransaction([FromBody]GetSingleArgsModel args) //{ //} /// <summary> /// 发送验证码 /// </summary> /// <param name="phone"></param> /// <returns></returns> public APIResult SendVerificationCode([FromBody] RegisterArgsModel args) { var shopMembers = db.ShopMembers.FirstOrDefault(m => m.Phone.Equals(args.Phone) && !m.IsDel); if (shopMembers != null) { return(Error("该号码已经绑定过了")); } string cacheKey = args.Phone; string code; if (!_memoryCache.TryGetValue(cacheKey, out code)) { code = new Random().Next(1000, 9999).ToString(); //设置绝对过期时间2分钟 _memoryCache.Set(cacheKey, code, new MemoryCacheEntryOptions() .SetAbsoluteExpiration(TimeSpan.FromMinutes(5))); } //发送验证码 return(SMSHelper.Send(args.Phone, $"验证码为{code},五分钟后过期")); }