Initial_commit_SecMPS_v2
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user