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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
