Initial_commit_SecMPS_v2

This commit is contained in:
2026-05-15 23:22:48 +08:00
commit 23ea4fe05f
13830 changed files with 298675 additions and 0 deletions

View File

@@ -0,0 +1,244 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Mime;
using System.Threading.Tasks;
using VolPro.Core.Enums;
using VolPro.Core.Extensions;
using VolPro.Core.Filters;
using VolPro.Core.Generic;
using VolPro.Core.Middleware;
using VolPro.Core.Utilities;
using VolPro.Entity.DomainModels;
namespace VolPro.WebApi.Controllers.Generic
{
[Route("api/generic")]
public class GenericController : GenericBaseController
{
private readonly IGenericDbProviderFactory _dbProviderFactory;
public GenericController(IGenericDbProviderFactory dbProviderFactory)
{
_dbProviderFactory = dbProviderFactory;
}
[ActionLog("查询")]
[HttpPost, Route("getPageData")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Search)]
public virtual async Task<IActionResult> GetPageData([FromBody] PageDataOptions loadData)
{
return await GetPageDataAsync(loadData);
}
[ActionLog("查询")]
[HttpPost, Route("getPageDataAsync")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Search)]
public virtual async Task<IActionResult> GetPageDataAsync([FromBody] PageDataOptions loadData)
{
var response = await _dbProviderFactory.Provider.GetPageDataAsync(loadData);
return JsonNormal(response);
}
/// <summary>
/// 获取明细grid分页数据
/// </summary>
/// <param name="loadData"></param>
/// <returns></returns>
[ActionLog("明细查询")]
[HttpPost, Route("getDetailPage")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Search)]
public virtual async Task<IActionResult> GetDetailPage([FromBody] PageDataOptions loadData)
{
return await GetDetailPageAsync(loadData);
}
/// <summary>
/// 获取明细grid分页数据
/// </summary>
/// <param name="loadData"></param>
/// <returns></returns>
[ActionLog("明细查询")]
[HttpPost, Route("getDetailPageAsync")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Search)]
public virtual async Task<IActionResult> GetDetailPageAsync([FromBody] PageDataOptions loadData)
{
var response = await _dbProviderFactory.Provider.GetDetailPageAsync(loadData);
return JsonNormal(response);
}
/// <summary>
/// 新增支持主子表
/// </summary>
/// <param name="saveDataModel"></param>
/// <returns></returns>
[ActionLog("新建")]
[HttpPost, Route("add")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Add)]
public virtual async Task<IActionResult> Add([FromBody] SaveModel saveModel)
{
return await AddAsync(saveModel);
}
[ActionLog("新建")]
[HttpPost, Route("addAsync")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Add)]
public virtual async Task<IActionResult> AddAsync([FromBody] SaveModel saveModel)
{
var response = await _dbProviderFactory.Provider.AddAsync(saveModel);
return Json(response);
}
/// <summary>
/// 新增支持主子表
/// </summary>
/// <param name="saveDataModel"></param>
/// <returns></returns>
[ActionLog("新建")]
[HttpPost, Route("update")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Update)]
public virtual async Task<IActionResult> Update([FromBody] SaveModel saveModel)
{
return await UpdateAsync(saveModel);
}
[ActionLog("新建")]
[HttpPost, Route("updateAsync")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Update)]
public virtual async Task<IActionResult> UpdateAsync([FromBody] SaveModel saveModel)
{
var response = await _dbProviderFactory.Provider.UpdateAsync(saveModel);
return Json(response);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="saveDataModel"></param>
/// <returns></returns>
[ActionLog("删除")]
[HttpPost, Route("del")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Delete)]
public virtual async Task<IActionResult> Del([FromBody] SaveModel saveModel)
{
return await DelAsync(saveModel);
}
[ActionLog("删除")]
[HttpPost, Route("delAsync")]
[ApiExplorerSettings(IgnoreApi = true), ActionPermission(ActionPermissionOptions.Delete)]
public virtual async Task<IActionResult> DelAsync([FromBody] SaveModel saveModel)
{
var response = await _dbProviderFactory.Provider.DelAsync(saveModel.DelKeys);
return Json(response);
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="fileInput"></param>
/// <returns></returns>
[ActionLog("上传文件")]
[HttpPost, Route("upload")]
[ApiActionPermission(ActionPermissionOptions.Upload | ActionPermissionOptions.Add | ActionPermissionOptions.Update)]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual async Task<IActionResult> Upload(IEnumerable<IFormFile> fileInput)
{
return await UploadAsync(fileInput);
}
[HttpPost, Route("uploadAsync")]
[ApiActionPermission(ActionPermissionOptions.Upload | ActionPermissionOptions.Add | ActionPermissionOptions.Update)]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual async Task<IActionResult> UploadAsync(IEnumerable<IFormFile> fileInput)
{
var response = await _dbProviderFactory.Provider.UploadAsync(fileInput.ToList());
return Json(response);
}
/// <summary>
/// 下载导入Excel模板
/// </summary>
/// <returns></returns>
[ActionLog("下载导入Excel模板")]
[HttpGet, Route("downLoadTemplate")]
[ApiActionPermission(ActionPermissionOptions.Import)]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual IActionResult DownLoadTemplate()
{
return DownLoadTemplateAsync();
}
[ActionLog("下载导入Excel模板")]
[HttpGet, Route("downLoadTemplateAsync")]
[ApiActionPermission(ActionPermissionOptions.Import)]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual IActionResult DownLoadTemplateAsync()
{
byte[] bytes = _dbProviderFactory.Provider.DownLoadTemplateAsync();
return File(bytes, MediaTypeNames.Application.Octet, "file.xlsx");
}
/// <summary>
/// 导入表数据Excel
/// </summary>
/// <param name="fileInput"></param>
/// <returns></returns>
[ActionLog("导入Excel")]
[HttpPost, Route("Import")]
[ApiActionPermission(ActionPermissionOptions.Import)]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual async Task<IActionResult> Import(List<IFormFile> fileInput)
{
return await ImportAsync(fileInput);
}
[ActionLog("导入Excel")]
[HttpPost, Route("importAsync")]
[ApiActionPermission(ActionPermissionOptions.Import)]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual async Task<IActionResult> ImportAsync(List<IFormFile> fileInput)
{
var res = await _dbProviderFactory.Provider.ImportAsync(fileInput);
return Json(res);
}
/// <summary>
/// 导出文件,返回日期+文件名
/// </summary>
/// <param name="loadData"></param>
/// <returns></returns>
[ActionLog("导出Excel")]
[ApiActionPermission(ActionPermissionOptions.Export)]
[ApiExplorerSettings(IgnoreApi = true)]
[HttpPost, Route("Export")]
public virtual async Task<IActionResult> Export([FromBody] PageDataOptions loadData)
{
return await ExportAsync(loadData);
}
[ActionLog("导出Excel")]
[ApiActionPermission(ActionPermissionOptions.Export)]
[ApiExplorerSettings(IgnoreApi = true)]
[HttpPost, Route("exportAsync")]
public virtual async Task<IActionResult> ExportAsync([FromBody] PageDataOptions loadData)
{
byte[] bytes = await _dbProviderFactory.Provider.ExportAsync(loadData);
return File(bytes, MediaTypeNames.Application.Octet, "export.xlsx");
}
[ApiActionPermission(ActionPermissionOptions.Audit)]
[HttpPost, Route("Audit")]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual async Task<ActionResult> Audit([FromBody] object[] id, int? auditStatus, string auditReason)
{
return await AuditAsync(id, auditStatus, auditReason);
}
[ApiActionPermission(ActionPermissionOptions.Audit)]
[HttpPost, Route("Audit")]
[ApiExplorerSettings(IgnoreApi = true)]
public virtual async Task<ActionResult> AuditAsync([FromBody] object[] id, int? auditStatus, string auditReason)
{
var res = await _dbProviderFactory.Provider.AuditAsync(id, auditStatus, auditReason);
return Json(res);
}
}
}