Files
SecMPS/api_sqlsugar/VolPro.Core/Generic/IGenericDbProvider.cs
2026-05-15 23:22:48 +08:00

83 lines
2.5 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading.Tasks;
using VolPro.Core.EFDbContext;
using VolPro.Core.Enums;
using VolPro.Core.Filters;
using VolPro.Core.Middleware;
using VolPro.Core.UserManager;
using VolPro.Core.Utilities;
using VolPro.Entity.DomainModels;
namespace VolPro.Core.Generic
{
/// <summary>
/// 不同数据库类型的通用 CRUD 提供接口
/// </summary>
public interface IGenericDbProvider
{
/// <summary>
/// 查询
/// </summary>
/// <param name="options"></param>
/// <param name="isDetail"></param>
/// <returns></returns>
Task<PageGridData<object>> GetPageDataAsync(PageDataOptions options, bool isDetail = false);
/// <summary>
/// 明细查询
/// </summary>
/// <param name="options"></param>
/// <returns></returns>
Task<PageGridData<object>> GetDetailPageAsync(PageDataOptions options);
/// <summary>
/// 添加
/// </summary>
/// <param name="saveModel"></param>
/// <returns></returns>
Task<WebResponseContent> AddAsync(SaveModel saveModel);
/// <summary>
/// 编辑
/// </summary>
/// <param name="saveModel"></param>
/// <returns></returns>
Task<WebResponseContent> UpdateAsync(SaveModel saveModel);
/// <summary>
/// 删除
/// </summary>
/// <param name="keys"></param>
/// <param name="delDetail"></param>
/// <returns></returns>
Task<WebResponseContent> DelAsync(List<object> keys, bool delDetail = true);
/// <summary>
/// 上传
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
Task<WebResponseContent> UploadAsync(List<IFormFile> files);
/// <summary>
/// 下载导入Excel模板
/// </summary>
/// <returns></returns>
byte[] DownLoadTemplateAsync();
/// <summary>
/// 导入表数据Excel
/// </summary>
/// <param name="fileInput"></param>
/// <returns></returns>
Task<WebResponseContent> ImportAsync(List<IFormFile> fileInput);
/// <summary>
/// 导出文件
/// </summary>
/// <param name="loadData"></param>
/// <returns></returns>
Task<byte[]> ExportAsync(PageDataOptions loadData);
Task<WebResponseContent> AuditAsync(object[] id, int? auditStatus, string auditReason);
}
}