using System.Security.Claims;
using F9WebAiTest.Application.Common;
using F9WebAiTest.Application.Common.Exceptions;
using F9WebAiTest.Application.Dtos.SYS.Reports;
using F9WebAiTest.Application.Services.Auth;
using F9WebAiTest.Application.Services.Reports;
using F9WebAiTest.Domain.Entities.SYS.RBAC;
using F9WebAiTest.Domain.Enums.SYS.RBAC;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace F9WebAiTest.Api.Controllers;
/// 报表中心:报表定义维护 + 模板下载 + 数据查询(Grid++Report 7 Web 嵌入)
[ApiController]
[Route("api/sys/report")]
[Authorize]
public class SysReportController : ControllerBase
{
private readonly IReportService _reportService;
private readonly IFreeSql _fsql;
private readonly IJwtService _jwt;
private readonly IConfiguration _config;
public SysReportController(IReportService reportService, IFreeSql fsql, IJwtService jwt, IConfiguration config)
{
_reportService = reportService;
_fsql = fsql;
_jwt = jwt;
_config = config;
}
// ==================== 报表管理 ====================
[HttpGet]
public async Task GetPaged(
[FromQuery] string like = "",
[FromQuery] string category = "",
[FromQuery] bool? isActive = null,
[FromQuery] int pageIndex = 1,
[FromQuery] int pageSize = 50)
{
var data = await _reportService.GetPagedAsync(like ?? "", category ?? "", isActive, pageIndex, pageSize);
return Ok(ApiResult