package jnpf.dmsController.pdf; import cn.dev33.satoken.same.SaSameUtil; import jakarta.validation.Valid; import jnpf.base.ActionResult; import jnpf.dmsEntity.storage.form.DmsPersistentPdfInvalidationForm; import jnpf.dmsService.pdf.DmsPdfGenerationTaskService; import jnpf.exception.DataException; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/Internal/dms/persistent-pdf") @RequiredArgsConstructor public class DmsPersistentPdfRecoveryController { private final DmsPdfGenerationTaskService taskService; @PostMapping("/invalidations") public ActionResult invalidate( @RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId, @RequestBody @Valid DmsPersistentPdfInvalidationForm form) { SaSameUtil.checkCurrentRequestToken(); if (!"jnpf-file".equals(serviceId)) { throw new DataException("仅文件服务可以上报 DMS 持久化 PDF 失效"); } taskService.invalidateAndRequeue(form); return ActionResult.success("持久化 PDF 失效已受理"); } }