新增邮件模板

This commit is contained in:
不做码农 2023-11-13 19:50:35 +08:00
parent 2e0db37d42
commit e234189af3
10 changed files with 253 additions and 6 deletions

View 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.

View 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; }
}
}

View 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; }
}
}

View File

@ -1,7 +1,4 @@
using MiniExcelLibs.Attributes;
using Newtonsoft.Json;
using SqlSugar;
using System;
namespace ZR.Model.System
{

View 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);
}
}
}

View 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);
}
}

View File

@ -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);

View File

@ -1,6 +1,5 @@
using Infrastructure;
using SqlSugar.IOC;
using ZR.Model.Business;
using ZR.Model.System;
namespace ZR.ServiceCore.SqlSugar

View File

@ -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));
}
}
}