using YD_Event.Application.Certificate.Dtos; using YD_Event.Core.Entities; namespace YD_Event.Application.Certificate; /// /// 证书管理服务 /// public class CertificateService : BaseService, ITransient { private readonly ISqlSugarRepository _repository; private readonly IIdGenerator _idGenerator; public CertificateService(ISqlSugarRepository repository, IIdGenerator idGenerator) : base(repository) { _repository = repository; _idGenerator = idGenerator; } /// /// 证书分页查询 /// [DisplayName("证书分页查询")] [HttpGet] public async Task> Page([FromQuery] CertificateQueryInput input) { return await _repository.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(input.Name), x => x.Name.Contains(input.Name)) .OrderBy(x => x.Sort) .OrderByDescending(x => x.CreatedTime) .Select(x => new CertificateListOutput { Id = x.Id, Name = x.Name, Issuer = x.Issuer, TemplateContent = x.TemplateContent, Sort = x.Sort, CreatedTime = x.CreatedTime }) .ToPagedListAsync(input); } /// /// 添加证书 /// [DisplayName("添加证书")] [HttpPost("add")] public async Task Add(AddCertificateInput input) { var entity = input.Adapt(); entity.Id = _idGenerator.NextId(); await _repository.InsertAsync(entity); } /// /// 更新证书 /// [DisplayName("更新证书")] [HttpPut("edit")] public async Task Update(UpdateCertificateInput input) { var entity = await _repository.GetByIdAsync(input.Id); if (entity == null) throw Oops.Bah("证书不存在"); input.Adapt(entity); await _repository.UpdateAsync(entity); } /// /// 删除证书 /// [DisplayName("删除证书")] public async Task Delete(List ids) { if (ids == null || !ids.Any()) return; await _repository.DeleteAsync(x => ids.Contains(x.Id)); } /// /// 获取证书详情 /// [DisplayName("获取证书详情")] [HttpGet("detail")] public async Task Detail([FromQuery] long id) { return await _repository.GetByIdAsync(id); } }