马梓彭 99a1857088 完善二期接口
补齐接口文档和上线SQL
优化底层保存逻辑
2026-08-30 21:46:05 +08:00

55 lines
1.4 KiB
C#

namespace YD_Event.Application;
public abstract class BaseService<TEntity> : IDynamicApiController where TEntity : Entity<long>, ISoftDelete, IAvailability, new()
{
private readonly ISqlSugarRepository<TEntity> _repository;
protected BaseService(ISqlSugarRepository<TEntity> repository)
{
_repository = repository;
}
/// <summary>
/// 删除信息
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[DisplayName("删除信息"), HttpDelete("delete")]
public virtual async Task Delete(KeyDto dto)
{
bool success = await _repository.SoftDeleteByIdAsync(dto.Id);
if (!success)
{
throw Oops.Bah("删除失败");
}
await ClearCache();
}
/// <summary>
/// 修改状态
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[DisplayName("修改状态"), HttpPost("setStatus")]
public virtual async Task SetStatus(AvailabilityDto dto)
{
bool success = await _repository.UpdateAsync(x => new TEntity()
{
Status = dto.Status
}, x => x.Id == dto.Id);
if (!success)
{
throw Oops.Bah("修改失败");
}
await ClearCache();
}
/// <summary>
/// 清除缓存
/// </summary>
/// <returns></returns>
internal virtual Task ClearCache()
{
return Task.CompletedTask;
}
}