using Mapster; using Microsoft.AspNetCore.Mvc; using Wood.Data.Repository; using Wood.Entity; namespace Wood.Service.BaseService { public class ApiCRUDService : ApiService where T : EntityBase, new() where TAddParam : class, new() where TUpdateParam : class, new() { protected SqlSugarRepository _repository { get; set; } public ApiCRUDService(SqlSugarRepository repository) { _repository = repository; } /// /// 获取明细 /// /// public virtual async Task GetDetail(BaseIdParam param) { var dto = await _repository.GetByIdAsync(param.Id); return dto.Adapt(); } /// /// 新增 /// /// [UnitOfWork] public virtual async Task Add(TAddParam param) { var input = param.Adapt(); await _repository.InsertAsync(input); } /// /// 更新 /// /// [UnitOfWork] public virtual async Task Update(TUpdateParam param) { var input = param.Adapt(); await _repository.UpdateAsync(input); } /// /// 批量删除 /// 假删除 /// /// [UnitOfWork] public virtual async Task Delete(BaseIdListParam param) { if(param.Ids.Any()) await _repository.FakeDeleteAsync(it=>param.Ids.Contains(it.Id)); } } }