AdoS8ConfigReportTemplatesController.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Admin.NET.Plugin.AiDOP.Const.S8;
  2. using Admin.NET.Plugin.AiDOP.Infrastructure;
  3. using Admin.NET.Plugin.AiDOP.Infrastructure.S8;
  4. using Admin.NET.Plugin.AiDOP.Service.S8;
  5. namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
  6. /// <summary>
  7. /// S8-RULE-GOVERNANCE-BATCH4:主动提报模板(只读)。
  8. ///
  9. /// <para>补回 Batch 3 误伤的能力:主动提报页依赖 <c>mechanism = MANUAL_REPORT</c> 的模板填表,
  10. /// 而那批把整个草稿 Controller 当成规则向导删掉了。这里只恢复只读的一半 ——
  11. /// <b>没有任何写动作,也没有"生成规则"</b>,建规则那条路仍然永久关闭。</para>
  12. ///
  13. /// <para>路由与类型都不再叫 draft / wizard:正是那个名字让两个不同用途的功能被当成了一个。</para>
  14. ///
  15. /// <para>权限用 <c>s8:config:read</c> 而非 <c>s8:config:watch-rule</c>:
  16. /// 它是提报表单的读取辅助,不是规则配置能力。</para>
  17. /// </summary>
  18. [ApiController]
  19. [Route("api/aidop/s8/config/report-templates")]
  20. [NonUnify]
  21. public class AdoS8ConfigReportTemplatesController : ControllerBase
  22. {
  23. private readonly S8ReportTemplateService _svc;
  24. private readonly S8TrustedScopeResolver _scope;
  25. public AdoS8ConfigReportTemplatesController(S8ReportTemplateService svc, S8TrustedScopeResolver scope)
  26. {
  27. _svc = svc;
  28. _scope = scope;
  29. }
  30. [HttpGet]
  31. [S8Permission(S8PermissionCatalog.ConfigRead)]
  32. public async Task<IActionResult> ListAsync()
  33. {
  34. try { return Ok(await _svc.ListAsync(await _scope.ResolveAsync())); }
  35. catch (S8BizException ex) { return BadRequest(new { message = ex.Message }); }
  36. }
  37. [HttpGet("{id:long}")]
  38. [S8Permission(S8PermissionCatalog.ConfigRead)]
  39. public async Task<IActionResult> GetAsync(long id)
  40. {
  41. try { return Ok(await _svc.GetAsync(id, await _scope.ResolveAsync())); }
  42. catch (S8NotFoundException) { return NotFound(); }
  43. catch (S8BizException ex) { return BadRequest(new { message = ex.Message }); }
  44. }
  45. }