CommonLangController.cs 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. using Microsoft.AspNetCore.Mvc;
  2. using MiniExcelLibs;
  3. using ZR.Admin.WebApi.Filters;
  4. using ZR.Model;
  5. using ZR.Model.Dto;
  6. using ZR.Model.Models;
  7. namespace ZR.Admin.WebApi.Controllers
  8. {
  9. /// <summary>
  10. /// 多语言配置Controller
  11. /// </summary>
  12. [Route("system/CommonLang")]
  13. [ApiExplorerSettings(GroupName = "sys")]
  14. public class CommonLangController : BaseController
  15. {
  16. /// <summary>
  17. /// 多语言配置接口
  18. /// </summary>
  19. private readonly ICommonLangService _CommonLangService;
  20. public CommonLangController(ICommonLangService CommonLangService)
  21. {
  22. _CommonLangService = CommonLangService;
  23. }
  24. /// <summary>
  25. /// 查询多语言配置列表
  26. /// </summary>
  27. /// <param name="parm"></param>
  28. /// <returns></returns>
  29. [HttpGet("list")]
  30. [ActionPermissionFilter(Permission = "system:lang:list")]
  31. public IActionResult QueryCommonLang([FromQuery] CommonLangQueryDto parm)
  32. {
  33. if (parm.ShowMode == 2)
  34. {
  35. PagedInfo<dynamic> pagedInfo = new()
  36. {
  37. Result = _CommonLangService.GetListToPivot(parm)
  38. };
  39. return SUCCESS(pagedInfo);
  40. }
  41. return SUCCESS(_CommonLangService.GetList(parm));
  42. }
  43. /// <summary>
  44. /// 查询多语言配置列表
  45. /// </summary>
  46. /// <returns></returns>
  47. [HttpGet("list/{lang}")]
  48. [AllowAnonymous]
  49. public IActionResult QueryCommonLangs(string lang)
  50. {
  51. var msgList = _CommonLangService.GetLangList(new CommonLangQueryDto() { LangCode = lang });
  52. return SUCCESS(_CommonLangService.SetLang(msgList));
  53. }
  54. /// <summary>
  55. /// 查询多语言配置详情
  56. /// </summary>
  57. /// <param name="Id"></param>
  58. /// <returns></returns>
  59. [HttpGet("{Id}")]
  60. [ActionPermissionFilter(Permission = "system:lang:query")]
  61. public IActionResult GetCommonLang(long Id)
  62. {
  63. var response = _CommonLangService.GetFirst(x => x.Id == Id);
  64. var list = _CommonLangService.GetList(x => x.LangKey == response.LangKey);
  65. var vo = list.Adapt<List<CommonLangDto>>();
  66. var modal = new CommonLangDto() { LangKey = response.LangKey, LangList = vo };
  67. return SUCCESS(modal);
  68. }
  69. /// <summary>
  70. /// 查询多语言配置详情
  71. /// </summary>
  72. /// <param name="langKey"></param>
  73. /// <returns></returns>
  74. [HttpGet("key/{langKey}")]
  75. [ActionPermissionFilter(Permission = "system:lang:query")]
  76. public IActionResult GetCommonLangByKey(string langKey)
  77. {
  78. var list = _CommonLangService.GetList(x => x.LangKey == langKey);
  79. var vo = list.Adapt<List<CommonLangDto>>();
  80. var modal = new CommonLangDto() { LangKey = langKey, LangList = vo };
  81. return SUCCESS(modal);
  82. }
  83. /// <summary>
  84. /// 更新多语言配置
  85. /// </summary>
  86. /// <returns></returns>
  87. [HttpPut]
  88. [ActionPermissionFilter(Permission = "system:lang:edit")]
  89. [Log(Title = "多语言配置", BusinessType = BusinessType.UPDATE)]
  90. public IActionResult UpdateCommonLang([FromBody] CommonLangDto parm)
  91. {
  92. if (parm == null || parm.LangKey.IsEmpty())
  93. {
  94. throw new CustomException("请求实体不能为空");
  95. }
  96. _CommonLangService.StorageCommonLang(parm);
  97. return ToResponse(1);
  98. }
  99. /// <summary>
  100. /// 删除多语言配置
  101. /// </summary>
  102. /// <returns></returns>
  103. [HttpDelete("{ids}")]
  104. [ActionPermissionFilter(Permission = "system:lang:delete")]
  105. [Log(Title = "多语言配置", BusinessType = BusinessType.DELETE)]
  106. public IActionResult DeleteCommonLang(string ids)
  107. {
  108. long[] idsArr = Tools.SpitLongArrary(ids);
  109. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
  110. var response = _CommonLangService.Delete(idsArr);
  111. return ToResponse(response);
  112. }
  113. /// <summary>
  114. /// 删除多语言配置
  115. /// </summary>
  116. /// <returns></returns>
  117. [HttpDelete("ByKey")]
  118. [ActionPermissionFilter(Permission = "system:lang:delete")]
  119. [Log(Title = "多语言配置", BusinessType = BusinessType.DELETE)]
  120. public IActionResult DeleteCommonLangByKey(string langkey)
  121. {
  122. if (langkey.IsEmpty()) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
  123. var response = _CommonLangService
  124. .Deleteable()
  125. .EnableDiffLogEvent()
  126. .Where(f => f.LangKey == langkey)
  127. .ExecuteCommand();
  128. return ToResponse(response);
  129. }
  130. /// <summary>
  131. /// 导出多语言配置
  132. /// </summary>
  133. /// <returns></returns>
  134. [Log(Title = "多语言配置", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
  135. [HttpGet("export")]
  136. [ActionPermissionFilter(Permission = "system:lang:export")]
  137. public IActionResult Export([FromQuery] CommonLangQueryDto parm)
  138. {
  139. parm.PageSize = 10000;
  140. var list = _CommonLangService.GetListToPivot(parm);
  141. string sFileName = ExportExcel(list, "CommonLang", "多语言配置");
  142. return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
  143. }
  144. /// <summary>
  145. /// 导入
  146. /// </summary>
  147. /// <param name="formFile"></param>
  148. /// <returns></returns>
  149. [HttpPost("importData")]
  150. [Log(Title = "多语言设置导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)]
  151. [ActionPermissionFilter(Permission = "system:lang:import")]
  152. public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
  153. {
  154. List<CommonLang> list = new();
  155. var nowTime = DateTime.Now;
  156. using (var stream = formFile.OpenReadStream())
  157. {
  158. var rows = stream.Query(startCell: "A2").ToList();
  159. foreach (var item in rows)
  160. {
  161. list.Add(new CommonLang() { LangCode = "zh-cn", LangKey = item.A, LangName = item.B, Addtime = nowTime });
  162. list.Add(new CommonLang() { LangCode = "en", LangKey = item.A, LangName = item.C, Addtime = nowTime });
  163. list.Add(new CommonLang() { LangCode = "zh-tw", LangKey = item.A, LangName = item.D, Addtime = nowTime });
  164. }
  165. }
  166. return SUCCESS(_CommonLangService.ImportCommonLang(list));
  167. }
  168. /// <summary>
  169. /// 多语言设置导入模板下载
  170. /// </summary>
  171. /// <returns></returns>
  172. [HttpGet("importTemplate")]
  173. [Log(Title = "多语言设置模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
  174. [AllowAnonymous]
  175. public IActionResult ImportTemplateExcel()
  176. {
  177. var result = DownloadImportTemplate(new List<CommonLang>() { }, "lang");
  178. return ExportExcel(result.Item2, result.Item1);
  179. }
  180. }
  181. }