CommonPController.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. using Hotline.Permissions;
  2. using Hotline.Settings;
  3. using Hotline.Settings.CommonOpinions;
  4. using Hotline.Share.Dtos.Order;
  5. using MapsterMapper;
  6. using Microsoft.AspNetCore.Mvc;
  7. using MongoDB.Driver;
  8. using XF.Domain.Exceptions;
  9. namespace Hotline.Api.Controllers
  10. {
  11. /// <summary>
  12. /// 常用意见接口
  13. /// </summary>
  14. public class CommonPController: BaseController
  15. {
  16. private readonly ICommonOpinionDomainService _commonOpinionDomainService;
  17. private readonly ISystemAreaDomainService _systemAreaDomainService;
  18. private readonly IMapper _mapper;
  19. public CommonPController(ICommonOpinionDomainService commonOpinionDomainService,ISystemAreaDomainService systemAreaDomainService, IMapper mapper)
  20. {
  21. _commonOpinionDomainService = commonOpinionDomainService;
  22. _systemAreaDomainService= systemAreaDomainService;
  23. _mapper = mapper;
  24. }
  25. /// <summary>
  26. /// 获取常用意见
  27. /// </summary>
  28. /// <returns></returns>
  29. [HttpGet("common-list")]
  30. public async Task<IReadOnlyList<CommonOpinion>> GetCommon(string typecode)
  31. {
  32. return await _commonOpinionDomainService.GetCommonOpinions(typecode);
  33. }
  34. /// <summary>
  35. /// 新增常用意见
  36. /// </summary>
  37. /// <param name="dto"></param>
  38. /// <returns></returns>
  39. [HttpPost("add-common")]
  40. public async Task AddCommon([FromBody]AddCommonDto dto)
  41. {
  42. var entity = _mapper.Map<CommonOpinion>(dto);
  43. await _commonOpinionDomainService.AddCommonOpinion(entity,HttpContext.RequestAborted);
  44. }
  45. /// <summary>
  46. /// 批量删除常用意见
  47. /// </summary>
  48. /// <param name="dto"></param>
  49. /// <returns></returns>
  50. [HttpPost("del-common")]
  51. public async Task DelCommon([FromBody]DelCommonDto dto)
  52. {
  53. await _commonOpinionDomainService.DelCommonOpinion(dto.Ids, HttpContext.RequestAborted);
  54. }
  55. #region 省市区
  56. /// <summary>
  57. /// 获取省市区树形
  58. /// </summary>
  59. /// <returns></returns>
  60. [HttpGet("tree-area")]
  61. public async Task<List<SystemArea>> GetAearTree()
  62. {
  63. return await _systemAreaDomainService.GetAreaTree();
  64. }
  65. /// <summary>
  66. /// 新增省市区
  67. /// </summary>
  68. /// <param name="dto"></param>
  69. /// <returns></returns>
  70. [Permission(EPermission.AddArea)]
  71. [HttpPost("add-aear")]
  72. public async Task AddArea([FromBody]AddAreaDto dto)
  73. {
  74. var model = _mapper.Map<SystemArea>(dto);
  75. model.IsCanModify = true;
  76. await _systemAreaDomainService.AddArea(model,HttpContext.RequestAborted);
  77. }
  78. /// <summary>
  79. /// 修改省市区
  80. /// </summary>
  81. /// <param name="dto"></param>
  82. /// <returns></returns>
  83. [Permission(EPermission.ModifyArea)]
  84. [HttpPost("modify-area")]
  85. public async Task ModifyArea([FromBody]ModifyAreaDto dto)
  86. {
  87. var model = await _systemAreaDomainService.GetArea(dto.Id,HttpContext.RequestAborted);
  88. if (model is null)
  89. throw UserFriendlyException.SameMessage("未知数据,请刷新页面");
  90. model = _mapper.Map<SystemArea>(dto);
  91. await _systemAreaDomainService.ModifyArea(model, HttpContext.RequestAborted);
  92. }
  93. /// <summary>
  94. /// 删除省市区(逻辑)
  95. /// </summary>
  96. /// <param name="id"></param>
  97. /// <returns></returns>
  98. [Permission(EPermission.DelArea)]
  99. [HttpGet("del-area/{id}")]
  100. public async Task DelArea(string id)
  101. {
  102. var model = await _systemAreaDomainService.GetArea(id, HttpContext.RequestAborted);
  103. if (model is null)
  104. throw UserFriendlyException.SameMessage("未知数据,请刷新页面");
  105. await _systemAreaDomainService.DelArea(id, HttpContext.RequestAborted);
  106. }
  107. /// <summary>
  108. /// 获取区域
  109. /// </summary>
  110. /// <param name="id"></param>
  111. /// <returns></returns>
  112. [Permission(EPermission.GetArea)]
  113. [HttpGet("get-area/{id}")]
  114. public async Task<SystemArea?> GetArea(string id)
  115. {
  116. var model = await _systemAreaDomainService.GetArea(id, HttpContext.RequestAborted);
  117. if (model is null)
  118. throw UserFriendlyException.SameMessage("未知数据,请刷新页面");
  119. return model;
  120. }
  121. #endregion
  122. }
  123. }