package jnpf.bizcommon.audit.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import jnpf.bizcommon.audit.entity.model.AuditEventDetailVO; import jnpf.bizcommon.audit.entity.model.AuditEventListVO; import jnpf.bizcommon.audit.entity.model.AuditPageQuery; import jnpf.bizcommon.audit.service.AuditQueryService; import jnpf.base.ActionResult; import jnpf.base.vo.PageListVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 审计事件查询 API(spec §7.1):操作分页 / 单事件详情 / 操作时间线。两级权限点: * audit.query(列表、时间线,无字段值正文)与 audit.detail(详情,含变更前后值等敏感内容)。 */ @RestController @RequestMapping("/audit/events") public class AuditQueryController { @Autowired private AuditQueryService auditQueryService; @SaCheckPermission("audit.query") @PostMapping("/page") public ActionResult> page(@RequestBody AuditPageQuery query) { return ActionResult.success(auditQueryService.page(query)); } @SaCheckPermission("audit.detail") @GetMapping("/{id}") public ActionResult detail(@PathVariable("id") Long id) { return ActionResult.success(auditQueryService.detail(id)); } @SaCheckPermission("audit.query") @GetMapping("/timeline") public ActionResult> timeline(@RequestParam("targetId") String targetId) { return ActionResult.success(auditQueryService.timeline(targetId)); } }