Beispiel #1
0
        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
            }));
        }
Beispiel #2
0
        //[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},五分钟后过期"));
        }