From baf3630847c5b7abd75efe8e66e1413a4b10817e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Sun, 19 Nov 2023 21:08:18 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=E6=96=B0=E5=A2=9E=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81=E7=A0=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../System/monitor/SmsCodeLogController.cs | 77 +++++++++++++++++++ ZR.ServiceCore/Model/Dto/SmsCodeLogDto.cs | 61 +++++++++++++++ ZR.ServiceCore/Model/SmsCodeLog.cs | 45 +++++++++++ .../Services/IService/ISmsCodeLogService.cs | 20 +++++ ZR.ServiceCore/Services/SmsCodeLogService.cs | 65 ++++++++++++++++ ZR.ServiceCore/SqlSugar/InitTable.cs | 1 + 6 files changed, 269 insertions(+) create mode 100644 ZR.Admin.WebApi/Controllers/System/monitor/SmsCodeLogController.cs create mode 100644 ZR.ServiceCore/Model/Dto/SmsCodeLogDto.cs create mode 100644 ZR.ServiceCore/Model/SmsCodeLog.cs create mode 100644 ZR.ServiceCore/Services/IService/ISmsCodeLogService.cs create mode 100644 ZR.ServiceCore/Services/SmsCodeLogService.cs diff --git a/ZR.Admin.WebApi/Controllers/System/monitor/SmsCodeLogController.cs b/ZR.Admin.WebApi/Controllers/System/monitor/SmsCodeLogController.cs new file mode 100644 index 0000000..f36c494 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/System/monitor/SmsCodeLogController.cs @@ -0,0 +1,77 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Filters; +using ZR.Model.Dto; +using ZR.ServiceCore.Services; + +//创建时间:2023-11-19 +namespace ZR.Admin.WebApi.Controllers.System.monitor +{ + /// + /// 短信验证码记录 + /// + [Verify] + [Route("system/SmscodeLog")] + [ApiExplorerSettings(GroupName = "sys")] + public class SmsCodeLogController : BaseController + { + /// + /// 短信验证码记录接口 + /// + private readonly ISmsCodeLogService _SmscodeLogService; + + public SmsCodeLogController(ISmsCodeLogService SmscodeLogService) + { + _SmscodeLogService = SmscodeLogService; + } + + /// + /// 查询短信验证码记录列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "smscodelog:list")] + public IActionResult QuerySmscodeLog([FromQuery] SmscodeLogQueryDto parm) + { + var response = _SmscodeLogService.GetList(parm); + return SUCCESS(response); + } + + /// + /// 删除短信验证码记录 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "smscodelog:delete")] + [Log(Title = "短信验证码记录", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteSmscodeLog(string ids) + { + long[] idsArr = Tools.SpitLongArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _SmscodeLogService.Delete(idsArr); + + return ToResponse(response); + } + + /// + /// 导出短信验证码记录 + /// + /// + [Log(Title = "短信验证码记录", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)] + [HttpGet("export")] + [ActionPermissionFilter(Permission = "smscodelog:export")] + public IActionResult Export([FromQuery] SmscodeLogQueryDto parm) + { + parm.PageNum = 1; + parm.PageSize = 100000; + var list = _SmscodeLogService.GetList(parm).Result; + if (list == null || list.Count <= 0) + { + return ToResponse(ResultCode.FAIL, "没有要导出的数据"); + } + var result = ExportExcelMini(list, "短信验证码记录", "短信验证码记录"); + return ExportExcel(result.Item2, result.Item1); + } + } +} \ No newline at end of file diff --git a/ZR.ServiceCore/Model/Dto/SmsCodeLogDto.cs b/ZR.ServiceCore/Model/Dto/SmsCodeLogDto.cs new file mode 100644 index 0000000..5d30079 --- /dev/null +++ b/ZR.ServiceCore/Model/Dto/SmsCodeLogDto.cs @@ -0,0 +1,61 @@ +using System.ComponentModel.DataAnnotations; +using MiniExcelLibs.Attributes; + +namespace ZR.Model.Dto +{ + /// + /// 短信验证码记录查询对象 + /// + public class SmscodeLogQueryDto : PagerInfo + { + public int? Userid { get; set; } + public long? PhoneNum { get; set; } + public DateTime? BeginAddTime { get; set; } + public DateTime? EndAddTime { get; set; } + public int? SendType { get; set; } + } + + /// + /// 短信验证码记录输入输出对象 + /// + public class SmsCodeLogDto + { + [Required(ErrorMessage = "Id不能为空")] + [ExcelColumn(Name = "Id")] + [ExcelColumnName("Id")] + [JsonConverter(typeof(ValueToStringConverter))] + public long Id { get; set; } + + [ExcelColumn(Name = "短信验证码")] + [ExcelColumnName("短信验证码")] + public string SmsCode { get; set; } + + [ExcelColumn(Name = "用户id")] + [ExcelColumnName("用户id")] + public int? Userid { get; set; } + + [ExcelColumn(Name = "手机号")] + [ExcelColumnName("手机号")] + [JsonConverter(typeof(ValueToStringConverter))] + public long? PhoneNum { get; set; } + + [ExcelColumn(Name = "短信内容")] + [ExcelColumnName("短信内容")] + public string SmsContent { get; set; } + + [ExcelColumn(Name = "添加时间", Format = "yyyy-MM-dd HH:mm:ss")] + [ExcelColumnName("添加时间")] + public DateTime? AddTime { get; set; } + + [ExcelColumn(Name = "用户IP")] + [ExcelColumnName("用户IP")] + public string UserIP { get; set; } + + [ExcelColumn(Name = "发送类型")] + [ExcelColumnName("发送类型")] + public int? SendType { get; set; } + [ExcelColumn(Name = "地理位置")] + [ExcelColumnName("地理位置")] + public string Location { get; set; } + } +} \ No newline at end of file diff --git a/ZR.ServiceCore/Model/SmsCodeLog.cs b/ZR.ServiceCore/Model/SmsCodeLog.cs new file mode 100644 index 0000000..5c15b7d --- /dev/null +++ b/ZR.ServiceCore/Model/SmsCodeLog.cs @@ -0,0 +1,45 @@ +namespace ZR.ServiceCore.Model +{ + /// + /// 短信验证码记录 + /// + [SugarTable("smsCode_log")] + public class SmsCodeLog + { + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + /// + /// 短信验证码 + /// + public string SmsCode { get; set; } + /// + /// 用户id + /// + public long Userid { get; set; } + /// + /// 手机号 + /// + public long PhoneNum { get; set; } + /// + /// 短信内容 + /// + public string SmsContent { get; set; } + /// + /// 发送时间 + /// + public DateTime AddTime { get; set; } + /// + /// 用户IP + /// + public string UserIP { get; set; } + /// + /// 地理位置 + /// + public string Location { get; set; } + /// + /// 1、登录 2、注册 3、找回密码 + /// + public int SendType { get; set; } + } +} diff --git a/ZR.ServiceCore/Services/IService/ISmsCodeLogService.cs b/ZR.ServiceCore/Services/IService/ISmsCodeLogService.cs new file mode 100644 index 0000000..b4f9994 --- /dev/null +++ b/ZR.ServiceCore/Services/IService/ISmsCodeLogService.cs @@ -0,0 +1,20 @@ +using ZR.Model; +using ZR.Model.Dto; +using ZR.Service; +using ZR.ServiceCore.Model; + +namespace ZR.ServiceCore.Services +{ + /// + /// 短信验证码记录service接口 + /// + public interface ISmsCodeLogService : IBaseService + { + PagedInfo GetList(SmscodeLogQueryDto parm); + + SmsCodeLog GetInfo(long Id); + + SmsCodeLog AddSmscodeLog(SmsCodeLog parm); + + } +} diff --git a/ZR.ServiceCore/Services/SmsCodeLogService.cs b/ZR.ServiceCore/Services/SmsCodeLogService.cs new file mode 100644 index 0000000..f686288 --- /dev/null +++ b/ZR.ServiceCore/Services/SmsCodeLogService.cs @@ -0,0 +1,65 @@ +using Infrastructure.Attribute; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Repository; +using ZR.Service; +using ZR.ServiceCore.Model; + +namespace ZR.ServiceCore.Services +{ + /// + /// 短信验证码记录Service业务层处理 + /// + [AppService(ServiceType = typeof(ISmsCodeLogService), ServiceLifetime = LifeTime.Transient)] + public class SmsCodeLogService : BaseService, ISmsCodeLogService + { + /// + /// 查询短信验证码记录列表 + /// + /// + /// + public PagedInfo GetList(SmscodeLogQueryDto parm) + { + var predicate = Expressionable.Create(); + + predicate = predicate.AndIF(parm.Userid != null, it => it.Userid == parm.Userid); + predicate = predicate.AndIF(parm.PhoneNum != null, it => it.PhoneNum == parm.PhoneNum); + predicate = predicate.AndIF(parm.BeginAddTime == null, it => it.AddTime >= DateTime.Now.ToShortDateString().ParseToDateTime()); + predicate = predicate.AndIF(parm.BeginAddTime != null, it => it.AddTime >= parm.BeginAddTime); + predicate = predicate.AndIF(parm.EndAddTime != null, it => it.AddTime <= parm.EndAddTime); + predicate = predicate.AndIF(parm.SendType != null, it => it.SendType == parm.SendType); + var response = Queryable() + //.OrderBy("Id desc") + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public SmsCodeLog GetInfo(long Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加短信验证码记录 + /// + /// + /// + public SmsCodeLog AddSmscodeLog(SmsCodeLog model) + { + model.Id = Context.Insertable(model).ExecuteReturnSnowflakeId(); + return model; + } + } +} \ No newline at end of file diff --git a/ZR.ServiceCore/SqlSugar/InitTable.cs b/ZR.ServiceCore/SqlSugar/InitTable.cs index fc22837..15e3c64 100644 --- a/ZR.ServiceCore/SqlSugar/InitTable.cs +++ b/ZR.ServiceCore/SqlSugar/InitTable.cs @@ -50,6 +50,7 @@ namespace ZR.ServiceCore.SqlSugar db.CodeFirst.InitTables(typeof(SysDictType)); db.CodeFirst.InitTables(typeof(SqlDiffLog)); db.CodeFirst.InitTables(typeof(EmailTpl)); + db.CodeFirst.InitTables(typeof(SmsCodeLog)); } } }