SysFileController.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using Microsoft.AspNetCore.Mvc;
  2. using SqlSugar;
  3. using Infrastructure.Attribute;
  4. using Infrastructure.Enums;
  5. using Infrastructure.Model;
  6. using ZR.Admin.WebApi.Filters;
  7. using ZR.Common;
  8. using ZR.Model.System;
  9. using ZR.Service.System.IService;
  10. using ZR.Model.System.Dto;
  11. namespace ZR.Admin.WebApi.Controllers
  12. {
  13. /// <summary>
  14. /// 文件存储Controller
  15. /// </summary>
  16. [Verify]
  17. [Route("tool/file")]
  18. public class SysFileController : BaseController
  19. {
  20. /// <summary>
  21. /// 文件存储接口
  22. /// </summary>
  23. private readonly ISysFileService _SysFileService;
  24. public SysFileController(ISysFileService SysFileService)
  25. {
  26. _SysFileService = SysFileService;
  27. }
  28. /// <summary>
  29. /// 查询文件存储列表
  30. /// </summary>
  31. /// <param name="parm"></param>
  32. /// <returns></returns>
  33. [HttpGet("list")]
  34. [ActionPermissionFilter(Permission = "tool:file:list")]
  35. public IActionResult QuerySysFile([FromQuery] SysFileQueryDto parm)
  36. {
  37. //开始拼装查询条件
  38. var predicate = Expressionable.Create<SysFile>();
  39. //搜索条件查询语法参考Sqlsugar
  40. predicate = predicate.AndIF(parm.BeginCreate_time != null, it => it.Create_time >= parm.BeginCreate_time);
  41. predicate = predicate.AndIF(parm.EndCreate_time != null, it => it.Create_time <= parm.EndCreate_time);
  42. predicate = predicate.AndIF(parm.StoreType != null, m => m.StoreType == parm.StoreType);
  43. predicate = predicate.AndIF(parm.FileId != null, m => m.Id == parm.FileId);
  44. //搜索条件查询语法参考Sqlsugar
  45. var response = _SysFileService.GetPages(predicate.ToExpression(), parm, x => x.Id, OrderByType.Desc);
  46. return SUCCESS(response);
  47. }
  48. /// <summary>
  49. /// 查询文件存储详情
  50. /// </summary>
  51. /// <param name="Id"></param>
  52. /// <returns></returns>
  53. [HttpGet("{Id}")]
  54. [ActionPermissionFilter(Permission = "tool:file:query")]
  55. public IActionResult GetSysFile(long Id)
  56. {
  57. var response = _SysFileService.GetFirst(x => x.Id == Id);
  58. return SUCCESS(response);
  59. }
  60. /// <summary>
  61. /// 删除文件存储
  62. /// </summary>
  63. /// <returns></returns>
  64. [HttpDelete("{ids}")]
  65. [ActionPermissionFilter(Permission = "tool:file:delete")]
  66. [Log(Title = "文件存储", BusinessType = BusinessType.DELETE)]
  67. public IActionResult DeleteSysFile(string ids)
  68. {
  69. long[] idsArr = Tools.SpitLongArrary(ids);
  70. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
  71. var response = _SysFileService.Delete(idsArr);
  72. //TODO 删除本地资源
  73. return ToResponse(response);
  74. }
  75. /// <summary>
  76. /// 文件存储导出
  77. /// </summary>
  78. /// <returns></returns>
  79. [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "文件存储")]
  80. [HttpGet("export")]
  81. [ActionPermissionFilter(Permission = "tool:file:export")]
  82. public IActionResult Export()
  83. {
  84. var list = _SysFileService.GetAll();
  85. string sFileName = ExportExcel(list, "SysFile", "文件存储");
  86. return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
  87. }
  88. }
  89. }