SysDictDataController.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using Infrastructure.Attribute;
  2. using Infrastructure.Enums;
  3. using Microsoft.AspNetCore.Authorization;
  4. using Microsoft.AspNetCore.Mvc;
  5. using ZR.Admin.WebApi.Extensions;
  6. using ZR.Admin.WebApi.Filters;
  7. using ZR.Model;
  8. using ZR.Model.System;
  9. using ZR.Model.System.Dto;
  10. using ZR.Service.System.IService;
  11. namespace ZR.Admin.WebApi.Controllers.System
  12. {
  13. /// <summary>
  14. /// 数据字典信息
  15. /// </summary>
  16. [Verify]
  17. [Route("system/dict/data")]
  18. public class SysDictDataController : BaseController
  19. {
  20. private readonly ISysDictDataService SysDictDataService;
  21. private readonly ISysDictService SysDictService;
  22. public SysDictDataController(ISysDictService sysDictService, ISysDictDataService sysDictDataService)
  23. {
  24. SysDictService = sysDictService;
  25. SysDictDataService = sysDictDataService;
  26. }
  27. /// <summary>
  28. /// 搜索
  29. /// </summary>
  30. /// <param name="dictData"></param>
  31. /// <param name="pagerInfo"></param>
  32. /// <returns></returns>
  33. [ActionPermissionFilter(Permission = "system:dict:list")]
  34. [HttpGet("list")]
  35. public IActionResult List([FromQuery] SysDictData dictData, [FromQuery] PagerInfo pagerInfo)
  36. {
  37. var list = SysDictDataService.SelectDictDataList(dictData, pagerInfo);
  38. return SUCCESS(list);
  39. }
  40. /// <summary>
  41. /// 根据字典类型查询字典数据信息
  42. /// </summary>
  43. /// <param name="dictType"></param>
  44. /// <returns></returns>
  45. [AllowAnonymous]
  46. [HttpGet("type/{dictType}")]
  47. public IActionResult DictType(string dictType)
  48. {
  49. return SUCCESS(SysDictDataService.SelectDictDataByType(dictType));
  50. }
  51. /// <summary>
  52. /// 根据字典类型查询字典数据信息
  53. /// </summary>
  54. /// <param name="dto"></param>
  55. /// <returns></returns>
  56. [AllowAnonymous]
  57. [HttpPost("types")]
  58. public IActionResult DictTypes([FromBody] List<SysdictDataDto> dto)
  59. {
  60. var list = SysDictDataService.SelectDictDataByTypes(dto.Select(f => f.DictType).ToArray());
  61. List<SysdictDataDto> dataVos = new();
  62. foreach (var dic in dto)
  63. {
  64. SysdictDataDto vo = new()
  65. {
  66. DictType = dic.DictType,
  67. ColumnName = dic.ColumnName,
  68. List = list.FindAll(f => f.DictType == dic.DictType)
  69. };
  70. if (dic.DictType.StartsWith("cus_") || dic.DictType.StartsWith("sql_"))
  71. {
  72. vo.List = SysDictService.SelectDictDataByCustomSql(dic.DictType);
  73. }
  74. dataVos.Add(vo);
  75. }
  76. return SUCCESS(dataVos);
  77. }
  78. /// <summary>
  79. /// 查询字典数据详细
  80. /// </summary>
  81. /// <param name="dictCode"></param>
  82. /// <returns></returns>
  83. [AllowAnonymous]
  84. [HttpGet("info/{dictCode}")]
  85. public IActionResult GetInfo(long dictCode)
  86. {
  87. return SUCCESS(SysDictDataService.SelectDictDataById(dictCode));
  88. }
  89. /// <summary>
  90. /// 添加
  91. /// </summary>
  92. /// <param name="dict"></param>
  93. /// <returns></returns>
  94. [ActionPermissionFilter(Permission = "system:dict:add")]
  95. [Log(Title = "字典数据", BusinessType = BusinessType.INSERT)]
  96. [HttpPost()]
  97. public IActionResult Add([FromBody] SysDictData dict)
  98. {
  99. dict.Create_by = HttpContext.GetName();
  100. dict.Create_time = DateTime.Now;
  101. return SUCCESS(SysDictDataService.InsertDictData(dict));
  102. }
  103. /// <summary>
  104. /// 修改
  105. /// </summary>
  106. /// <param name="dict"></param>
  107. /// <returns></returns>
  108. [ActionPermissionFilter(Permission = "system:dict:edit")]
  109. [Log(Title = "字典数据", BusinessType = BusinessType.UPDATE)]
  110. [HttpPut()]
  111. public IActionResult Edit([FromBody] SysDictData dict)
  112. {
  113. dict.Update_by = HttpContext.GetName();
  114. return SUCCESS(SysDictDataService.UpdateDictData(dict));
  115. }
  116. /// <summary>
  117. /// 删除字典类型
  118. /// </summary>
  119. /// <param name="dictCode"></param>
  120. /// <returns></returns>
  121. [ActionPermissionFilter(Permission = "system:dict:remove")]
  122. [Log(Title = "字典类型", BusinessType = BusinessType.DELETE)]
  123. [HttpDelete("{dictCode}")]
  124. public IActionResult Remove(string dictCode)
  125. {
  126. long[] dictCodes = Common.Tools.SpitLongArrary(dictCode);
  127. return SUCCESS(SysDictDataService.DeleteDictDataByIds(dictCodes));
  128. }
  129. }
  130. }