:sparkles:新增邮件发送日志
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace ZR.Model.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件发送记录查询对象
|
||||
/// </summary>
|
||||
public class EmailLogQueryDto : PagerInfo
|
||||
{
|
||||
public string FromEmail { get; set; }
|
||||
public string Subject { get; set; }
|
||||
public DateTime? BeginAddTime { get; set; }
|
||||
public DateTime? EndAddTime { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 邮件发送记录输入输出对象
|
||||
/// </summary>
|
||||
public class EmailLogDto
|
||||
{
|
||||
//[Required(ErrorMessage = "Id不能为空")]
|
||||
[JsonConverter(typeof(ValueToStringConverter))]
|
||||
public long Id { get; set; }
|
||||
|
||||
public string FromEmail { get; set; }
|
||||
|
||||
public string Subject { get; set; }
|
||||
|
||||
public string ToEmails { get; set; }
|
||||
|
||||
public string EmailContent { get; set; }
|
||||
|
||||
public DateTime? AddTime { get; set; }
|
||||
/// <summary>
|
||||
/// 是否已发送
|
||||
/// </summary>
|
||||
public int IsSend { get; set; }
|
||||
/// <summary>
|
||||
/// 发送结果
|
||||
/// </summary>
|
||||
public string SendResult { get; set; }
|
||||
public long[] IdArr { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
namespace ZR.ServiceCore.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件发送记录
|
||||
/// </summary>
|
||||
[SugarTable("email_log")]
|
||||
public class EmailLog
|
||||
{
|
||||
[JsonConverter(typeof(ValueToStringConverter))]
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
|
||||
public long Id { get; set; }
|
||||
/// <summary>
|
||||
/// 发送邮箱
|
||||
/// </summary>
|
||||
public string FromEmail { get; set; }
|
||||
/// <summary>
|
||||
/// 邮件主题
|
||||
/// </summary>
|
||||
public string Subject { get; set; }
|
||||
/// <summary>
|
||||
/// 接收邮箱
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString)]
|
||||
public string ToEmails{ get; set; }
|
||||
/// <summary>
|
||||
/// 邮件内容
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString)]
|
||||
public string EmailContent { get; set; }
|
||||
/// <summary>
|
||||
/// 发送时间
|
||||
/// </summary>
|
||||
public DateTime AddTime { get; set; } = DateTime.Now;
|
||||
/// <summary>
|
||||
/// 是否已发送
|
||||
/// </summary>
|
||||
public int IsSend { get; set; }
|
||||
/// <summary>
|
||||
/// 发送结果
|
||||
/// </summary>
|
||||
public string SendResult { get; set; }
|
||||
/// <summary>
|
||||
/// 附件地址
|
||||
/// </summary>
|
||||
public string FileUrl { get; set; }
|
||||
/// <summary>
|
||||
/// 发送时间
|
||||
/// </summary>
|
||||
public DateTime SendTime { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -44,10 +44,10 @@ namespace ZR.Model.System
|
||||
public string Component { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否缓存(1缓存 0不缓存)
|
||||
/// 是否缓存(1不缓存 0缓存)
|
||||
/// </summary>
|
||||
[SugarColumn(DefaultValue = "0", ColumnDataType = "int")]
|
||||
public string IsCache { get; set; }
|
||||
public string IsCache { get; set; } = "0";
|
||||
/// <summary>
|
||||
/// 是否外链 1、是 0、否
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
using Infrastructure.Attribute;
|
||||
using ZR.Model;
|
||||
using ZR.Model.Dto;
|
||||
using ZR.Repository;
|
||||
using ZR.Service;
|
||||
using ZR.ServiceCore.Model;
|
||||
using ZR.ServiceCore.Services;
|
||||
|
||||
namespace ZR.ServiceCore
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件发送记录Service业务层处理
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(IEmailLogService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class EmailLogService : BaseService<EmailLog>, IEmailLogService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询邮件发送记录列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<EmailLogDto> GetList(EmailLogQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<EmailLog>();
|
||||
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.FromEmail), it => it.FromEmail == parm.FromEmail);
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Subject), it => it.Subject.Contains(parm.Subject));
|
||||
predicate = predicate.AndIF(parm.BeginAddTime == null, it => it.AddTime >= DateTime.Now.AddDays(-7).ToShortDateString().ParseToDateTime());
|
||||
predicate = predicate.AndIF(parm.BeginAddTime != null, it => it.AddTime >= parm.BeginAddTime);
|
||||
predicate = predicate.AndIF(parm.EndAddTime != null, it => it.AddTime <= parm.EndAddTime);
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<EmailLog, EmailLogDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public EmailLog GetInfo(long Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加邮件发送记录
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public EmailLog AddEmailLog(EmailLog model)
|
||||
{
|
||||
model.Id = Insertable(model).ExecuteReturnSnowflakeId();
|
||||
return model;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改邮件发送记录
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateEmailLog(EmailLog model)
|
||||
{
|
||||
return Update(model, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using ZR.Model;
|
||||
using ZR.Model.Dto;
|
||||
using ZR.Service;
|
||||
using ZR.ServiceCore.Model;
|
||||
|
||||
namespace ZR.ServiceCore.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件发送记录service接口
|
||||
/// </summary>
|
||||
public interface IEmailLogService : IBaseService<EmailLog>
|
||||
{
|
||||
PagedInfo<EmailLogDto> GetList(EmailLogQueryDto parm);
|
||||
|
||||
EmailLog GetInfo(long Id);
|
||||
|
||||
EmailLog AddEmailLog(EmailLog parm);
|
||||
|
||||
int UpdateEmailLog(EmailLog parm);
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace ZR.ServiceCore.SqlSugar
|
||||
//var entityes = AssemblyUtils.GetAllTypes().Where(p => !p.IsAbstract && p != baseType && p.GetCustomAttribute<SugarTable>() != null).ToArray();
|
||||
//db.CodeFirst.InitTables(entityes);
|
||||
|
||||
//24个表,建议先使用下面方法初始化表,方便排查问题
|
||||
//27个表,建议先使用下面方法初始化表,方便排查问题
|
||||
db.CodeFirst.InitTables(typeof(SysUser));
|
||||
db.CodeFirst.InitTables(typeof(SysRole));
|
||||
db.CodeFirst.InitTables(typeof(SysDept));
|
||||
@@ -51,6 +51,7 @@ namespace ZR.ServiceCore.SqlSugar
|
||||
db.CodeFirst.InitTables(typeof(SqlDiffLog));
|
||||
db.CodeFirst.InitTables(typeof(EmailTpl));
|
||||
db.CodeFirst.InitTables(typeof(SmsCodeLog));
|
||||
db.CodeFirst.InitTables(typeof(EmailLog));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user