|
@@ -0,0 +1,104 @@
|
|
|
+using Hotline.Push;
|
|
|
+using Hotline.Repository.SqlSugar.Extensions;
|
|
|
+using Hotline.Share.Dtos;
|
|
|
+using Hotline.Share.Dtos.Push;
|
|
|
+using MapsterMapper;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using XF.Domain.Exceptions;
|
|
|
+
|
|
|
+namespace Hotline.Api.Controllers
|
|
|
+{
|
|
|
+ public class TemplateDomainController : BaseController
|
|
|
+ {
|
|
|
+ private readonly IMessageTemplateRepository _messageTemplateRepository;
|
|
|
+ private readonly IMapper _mapper;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="messageTemplateRepository"></param>
|
|
|
+ public TemplateDomainController(IMessageTemplateRepository messageTemplateRepository, IMapper mapper)
|
|
|
+ {
|
|
|
+ _messageTemplateRepository = messageTemplateRepository;
|
|
|
+ _mapper = mapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 新增
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPut("add")]
|
|
|
+ public async Task<string> AddTemplate([FromBody] TemplateDto dto)
|
|
|
+ {
|
|
|
+ var template = _mapper.Map<MessageTemplate>(dto);
|
|
|
+
|
|
|
+ var data = await _messageTemplateRepository.GetAsync(p => p.Code == template.Code, HttpContext.RequestAborted);
|
|
|
+ if (data != null)
|
|
|
+ throw UserFriendlyException.SameMessage("存在相同Code!");
|
|
|
+
|
|
|
+ return await _messageTemplateRepository.AddAsync(template, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 修改
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPut("update")]
|
|
|
+ public async Task UpdateTemplate([FromBody] UpdateTemplateDto dto)
|
|
|
+ {
|
|
|
+ var template = _mapper.Map<MessageTemplate>(dto);
|
|
|
+
|
|
|
+ var data = await _messageTemplateRepository.GetAsync(p => p.Code == template.Code && p.Id != template.Id, HttpContext.RequestAborted);
|
|
|
+ if (data != null)
|
|
|
+ throw UserFriendlyException.SameMessage("存在相同Code!");
|
|
|
+
|
|
|
+ await _messageTemplateRepository.UpdateAsync(template, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpDelete("remove")]
|
|
|
+ public async Task RemoveType(string Id)
|
|
|
+ {
|
|
|
+ await _messageTemplateRepository.RemoveAsync(Id, false, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 查询详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("info/{Id}")]
|
|
|
+ public async Task<UpdateTemplateDto> Info(string Id)
|
|
|
+ {
|
|
|
+ var template = await _messageTemplateRepository.GetAsync(Id, HttpContext.RequestAborted);
|
|
|
+ if (template is null)
|
|
|
+ throw UserFriendlyException.SameMessage("查询失败!");
|
|
|
+ return _mapper.Map<UpdateTemplateDto>(template);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 查询列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("getlist")]
|
|
|
+ public async Task<PagedDto<TemplateDataDto>> GetList([FromQuery] TemplatePagedDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _messageTemplateRepository
|
|
|
+ .Queryable()
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Keyword), d => d.Code.Contains(pagedDto.Keyword!) || d.Content.Contains(pagedDto.Keyword!))
|
|
|
+ .WhereIF(pagedDto.PushBusiness.HasValue, d => d.PushBusiness == pagedDto.PushBusiness)
|
|
|
+ .OrderByDescending(it => it.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ return new PagedDto<TemplateDataDto>(total, _mapper.Map<IReadOnlyList<TemplateDataDto>>(items));
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|