✨ 新增邮件模板
This commit is contained in:
parent
2e0db37d42
commit
e234189af3
103
ZR.Admin.WebApi/Controllers/System/EmailTplController.cs
Normal file
103
ZR.Admin.WebApi/Controllers/System/EmailTplController.cs
Normal file
@ -0,0 +1,103 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Admin.WebApi.Filters;
|
||||
using ZR.Model.Dto;
|
||||
using ZR.Service.System.ISystemService;
|
||||
using ZR.ServiceCore.Model;
|
||||
|
||||
//创建时间:2023-11-12
|
||||
namespace ZR.Admin.WebApi.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件模板
|
||||
/// </summary>
|
||||
[Verify]
|
||||
[Route("system/EmailTpl")]
|
||||
public class EmailTplController : BaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件模板接口
|
||||
/// </summary>
|
||||
private readonly IEmailTplService _EmailTplService;
|
||||
|
||||
public EmailTplController(IEmailTplService EmailTplService)
|
||||
{
|
||||
_EmailTplService = EmailTplService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询邮件模板列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "tool:emailtpl:list")]
|
||||
public IActionResult QueryEmailTpl([FromQuery] EmailTplQueryDto parm)
|
||||
{
|
||||
var response = _EmailTplService.GetList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询邮件模板详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
public IActionResult GetEmailTpl(int Id)
|
||||
{
|
||||
var response = _EmailTplService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<EmailTpl>();
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加邮件模板
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "tool:emailtpl:add")]
|
||||
[Log(Title = "邮件模板", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult AddEmailTpl([FromBody] EmailTplDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<EmailTpl>().ToCreate(HttpContext);
|
||||
|
||||
var response = _EmailTplService.AddEmailTpl(modal);
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新邮件模板
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "tool:emailtpl:edit")]
|
||||
[Log(Title = "邮件模板", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateEmailTpl([FromBody] EmailTplDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<EmailTpl>().ToUpdate(HttpContext);
|
||||
var response = _EmailTplService.UpdateEmailTpl(modal);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除邮件模板
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{ids}")]
|
||||
[ActionPermissionFilter(Permission = "tool:emailtpl:delete")]
|
||||
[Log(Title = "邮件模板", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteEmailTpl(string ids)
|
||||
{
|
||||
int[] idsArr = Tools.SpitIntArrary(ids);
|
||||
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
|
||||
|
||||
var response = _EmailTplService.Delete(idsArr);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
39
ZR.ServiceCore/Model/Dto/EmailTplDto.cs
Normal file
39
ZR.ServiceCore/Model/Dto/EmailTplDto.cs
Normal file
@ -0,0 +1,39 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace ZR.Model.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件模板查询对象
|
||||
/// </summary>
|
||||
public class EmailTplQueryDto : PagerInfo
|
||||
{
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 邮件模板输入输出对象
|
||||
/// </summary>
|
||||
public class EmailTplDto
|
||||
{
|
||||
public int? Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "Name不能为空")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "模板内容不能为空")]
|
||||
public string Content { get; set; }
|
||||
|
||||
public string CreateBy { get; set; }
|
||||
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
public string UpdateBy { get; set; }
|
||||
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
public string Remark { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
17
ZR.ServiceCore/Model/EmailTpl.cs
Normal file
17
ZR.ServiceCore/Model/EmailTpl.cs
Normal file
@ -0,0 +1,17 @@
|
||||
using ZR.Model.System;
|
||||
|
||||
namespace ZR.ServiceCore.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件发送模板
|
||||
/// </summary>
|
||||
[SugarTable("emailTpl")]
|
||||
public class EmailTpl : SysBase
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
[SugarColumn(ColumnDescription = "模板内容", ColumnDataType = StaticConfig.CodeFirst_BigString)]
|
||||
public string Content { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,4 @@
|
||||
using MiniExcelLibs.Attributes;
|
||||
using Newtonsoft.Json;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
|
||||
namespace ZR.Model.System
|
||||
{
|
||||
|
||||
70
ZR.ServiceCore/Services/EmailTplService.cs
Normal file
70
ZR.ServiceCore/Services/EmailTplService.cs
Normal file
@ -0,0 +1,70 @@
|
||||
using Infrastructure.Attribute;
|
||||
using ZR.Model;
|
||||
using ZR.Model.Dto;
|
||||
using ZR.Repository;
|
||||
using ZR.Service.System.ISystemService;
|
||||
using ZR.ServiceCore.Model;
|
||||
|
||||
namespace ZR.Service.System
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件模板Service业务层处理
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(IEmailTplService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class EmailTplService : BaseService<EmailTpl>, IEmailTplService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询邮件模板列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<EmailTplDto> GetList(EmailTplQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<EmailTpl>();
|
||||
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Name), it => it.Name == parm.Name);
|
||||
var response = Queryable()
|
||||
//.OrderBy("Id desc")
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<EmailTpl, EmailTplDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public EmailTpl GetInfo(int Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加邮件模板
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public EmailTpl AddEmailTpl(EmailTpl model)
|
||||
{
|
||||
return Context.Insertable(model).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改邮件模板
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateEmailTpl(EmailTpl model)
|
||||
{
|
||||
return Update(model, true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
21
ZR.ServiceCore/Services/IService/IEmailTplService.cs
Normal file
21
ZR.ServiceCore/Services/IService/IEmailTplService.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using ZR.Model;
|
||||
using ZR.Model.Dto;
|
||||
using ZR.ServiceCore.Model;
|
||||
|
||||
namespace ZR.Service.System.ISystemService
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件模板service接口
|
||||
/// </summary>
|
||||
public interface IEmailTplService : IBaseService<EmailTpl>
|
||||
{
|
||||
PagedInfo<EmailTplDto> GetList(EmailTplQueryDto parm);
|
||||
|
||||
EmailTpl GetInfo(int Id);
|
||||
|
||||
EmailTpl AddEmailTpl(EmailTpl parm);
|
||||
|
||||
int UpdateEmailTpl(EmailTpl parm);
|
||||
|
||||
}
|
||||
}
|
||||
@ -197,7 +197,7 @@ namespace ZR.Service.System
|
||||
.SplitInsert(it => it.NotAny())
|
||||
.WhereColumns(it => it.Name)
|
||||
.ToStorage();
|
||||
var result = x.AsInsertable.OffIdentity().ExecuteCommand();
|
||||
var result = x.AsInsertable.ExecuteCommand();
|
||||
|
||||
string msg = $"[字典数据] 插入{x.InsertList.Count} 错误{x.ErrorList.Count} 总共{x.TotalList.Count}";
|
||||
return (msg, x.ErrorList, x.IgnoreList);
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
using Infrastructure;
|
||||
using SqlSugar.IOC;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Model.System;
|
||||
|
||||
namespace ZR.ServiceCore.SqlSugar
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
using ZR.Model.Models;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Generate;
|
||||
using ZR.ServiceCore.Model;
|
||||
|
||||
namespace ZR.ServiceCore.SqlSugar
|
||||
{
|
||||
@ -48,7 +49,7 @@ namespace ZR.ServiceCore.SqlSugar
|
||||
db.CodeFirst.InitTables(typeof(SysDictData));
|
||||
db.CodeFirst.InitTables(typeof(SysDictType));
|
||||
db.CodeFirst.InitTables(typeof(SqlDiffLog));
|
||||
db.CodeFirst.InitTables(typeof(EmailTpl));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user