package jnpf.dmsController.permission; import cn.dev33.satoken.same.SaSameUtil; import jnpf.base.ActionResult; import jnpf.dmsPermission.DmsTrustedServiceGuard; import jnpf.dmsService.expiry.DmsFileExpiryJob; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; 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/file-expiry") @RequiredArgsConstructor public class DmsInternalExpiryController { private final DmsTrustedServiceGuard guard; private final DmsFileExpiryJob job; /** Manual recovery uses exactly the same business checks and batch limits as scheduling. */ @PostMapping("/run") public ActionResult run( @RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId) { SaSameUtil.checkCurrentRequestToken(); guard.requireAllowed(serviceId); return ActionResult.success(job.run()); } }