package jnpf.dmsController;
|
|
import jnpf.base.ActionResult;
|
import jnpf.dmsService.DmsQianpiyeCatalogService;
|
import jnpf.dmsService.DmsQianpiyeTicketService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.http.*;
|
import org.springframework.web.bind.annotation.*;
|
import java.util.Map;
|
|
@RestController
|
@RequiredArgsConstructor
|
@RequestMapping("/biz/wenjian/qianpiye")
|
public class DmsQianpiyeController {
|
private final DmsQianpiyeCatalogService catalog;
|
private final DmsQianpiyeTicketService ticketService;
|
|
@GetMapping("/steps")
|
public ResponseEntity<ActionResult<Map<String, Object>>> steps(
|
@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authorization,
|
@RequestParam(value = "refresh", defaultValue = "false") boolean refresh) {
|
try {
|
if (authorization == null || !authorization.startsWith("Ticket "))
|
throw new DmsQianpiyeTicketService.InvalidQianpiyeTicketException();
|
String ticket = authorization.substring(7);
|
if (ticket.isBlank() || !ticket.equals(ticket.trim()))
|
throw new DmsQianpiyeTicketService.InvalidQianpiyeTicketException();
|
DmsQianpiyeTicketService.TicketContext context = ticketService.validate(ticket);
|
return ResponseEntity.ok(ActionResult.success(catalog.loadForDocument(
|
context.getFileType(), context.getFileId(), refresh)));
|
} catch (DmsQianpiyeTicketService.InvalidQianpiyeTicketException e) {
|
return ResponseEntity.status(HttpStatus.UNAUTHORIZED)
|
.body(ActionResult.fail(HttpStatus.UNAUTHORIZED.value(), "签批页标注 Ticket 无效"));
|
}
|
}
|
}
|