IA.Service/SmsService.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Configuration;
using System.Linq;
using IA.Common;
using IA.Core.Domain;
using IA.Interface;
using IA.Models;
using IA.Models.Common;
using Tonglu.Common.Extensions;

namespace IA.Service
{
    public class SmsService : ISmsService
    {
        /// <summary>
        /// 验证码可验证次数
        /// </summary>
        private static readonly int verifyCount = ConfigurationManager.AppSettings["VerifyCount"].TryInt();
        private readonly IRepository<VerficationCode> _verficationCodeRepository;

        public SmsService(IRepository<VerficationCode> verficationCodeRepository)
        {
            _verficationCodeRepository = verficationCodeRepository;
        }

        public Result SendUserVerifyCode(int userId, string phone, string messageContent, EnumVerifyType enumVerifyType,
            EnumUserType enumUserType)
        {
            DateTime curDateTime = DateTime.Now;

            //从数据库中找,如果已经有,直接拿来用并更新次数和过期时间
            var vVerficationCode = GetVerficationCode(userId, phone, enumVerifyType);
            TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(vVerficationCode.LastSendUtc).Ticks);
            TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(DateTime.Now).Ticks);
            TimeSpan ts = ts1.Subtract(ts2).Duration();
            if (vVerficationCode.Id > 0 && (ts.Hours * 60 + ts.Minutes) <= 60)
            {
                if (vVerficationCode.SendTimes >= verifyCount)
                {
                    return new Result { ErrMsg = "一小时内只能获取" + verifyCount + "次验证码,请稍后再试!" };
                }
                vVerficationCode.ExpirationUtc = curDateTime.AddHours(1);
                vVerficationCode.SendTimes += 1;
                vVerficationCode.LastSendUtc = curDateTime;

            }
            else
            {
                var code = TextHelper.GetVerificationCode();
                vVerficationCode = new VerficationCode
                {
                    UserId = userId,
                    MobilePhone = phone,
                    VerificationCode = code,
                    ExpirationUtc = curDateTime.AddHours(1),
                    Type = (int?)enumVerifyType,
                    SendTimes = 1,
                    LastSendUtc = curDateTime,
                    IsUsed = false,
                    UserType = (int?)enumUserType
后面还有 69 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。