Example #1
0
        public async Task <ApiResult> SendCode(string phoneNumber)
        {
            using (var dbcontext = new DataContext())
            {
                if (!dbcontext.Managers.Any(t => t.PhoneNumber == phoneNumber))
                {
                    throw new Exception("手机号不存在");
                }
            }

            string sended = _cache.Get <string>("LoginCodeSended" + phoneNumber);

            if (!string.IsNullOrEmpty(sended))
            {
                throw new Exception("验证码已发送,稍后再试");
            }

            int code = new Random().Next(100000, 999999);

            var sendRes = await DingTalkHelper.SendCode(_httpClientFactory, phoneNumber, code);

            if (!sendRes)
            {
                throw new Exception("验证码发送失败");
            }

            _cache.Set("LoginCodeSended" + phoneNumber, phoneNumber, DateTime.Now.AddMinutes(1));
            _cache.Set("LoginCode" + phoneNumber, code, DateTime.Now.AddMinutes(5));

            return(new ApiResult()
            {
                Message = "验证码已发送"
            });
        }