using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Localization; using Yi.Framework.Common.Models; using Yi.Framework.Interface; using Yi.Framework.Language; using Yi.Framework.Model.Models; using Yi.Framework.Model.Query; using Yi.Framework.Repository; using Yi.Framework.WebCore.AttributeExtend; namespace Yi.Framework.ApiMicroservice.Controllers { /// /// Json To Sql 类比模式,通用模型 /// /// [ApiController] public class BaseCrudController : ControllerBase where T : class, IBaseModelEntity,new() { private readonly ILogger _logger; private IBaseService _baseService; private IRepository _repository; public BaseCrudController(ILogger logger, IBaseService iBaseService) { _logger = logger; _baseService = iBaseService; _repository = iBaseService._repository; } /// /// 主键查询 /// /// /// [Permission($"{nameof(T)}:get:list")] [HttpGet] public virtual async Task GetById(long id) { return Result.Success().SetData(await _repository.GetByIdAsync(id)); } /// /// 列表查询 /// /// [Permission($"{nameof(T)}:get:list")] [HttpPost] public virtual async Task GetList(QueryCondition queryCondition) { return Result.Success().SetData(await _repository.GetListAsync(queryCondition)); } /// /// 条件分页查询 /// /// /// [Permission($"{nameof(T)}:get:list")] [HttpPost] public virtual async Task PageList(QueryPageCondition queryCondition) { return Result.Success().SetData(await _repository.CommonPageAsync(queryCondition)); } /// /// 添加 /// /// /// [Permission($"{nameof(T)}:add")] [HttpPost] public virtual async Task Add(T entity) { return Result.Success().SetData(await _repository.InsertReturnSnowflakeIdAsync(entity)); } /// /// 修改 /// /// /// [Permission($"{nameof(T)}:update")] [HttpPut] public virtual async Task Update(T entity) { return Result.Success().SetStatus(await _repository.UpdateIgnoreNullAsync(entity)); } /// /// 列表删除 /// /// /// [Permission($"{nameof(T)}:del")] [HttpDelete] public virtual async Task DeleteList(List ids) { return Result.Success().SetStatus(await _repository.DeleteByLogicAsync(ids)); } } }