EvidenceController.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.ymwk.supervisionserver.controller;
  2. import com.ymwk.supervisionserver.component.PageResult;
  3. import com.ymwk.supervisionserver.component.ResponseDTO;
  4. import com.ymwk.supervisionserver.entity.Evidence;
  5. import com.ymwk.supervisionserver.model.EvidenceByIdenRequest;
  6. import com.ymwk.supervisionserver.model.EvidenceListRequest;
  7. import com.ymwk.supervisionserver.model.EvidenceTextAddRequest;
  8. import com.ymwk.supervisionserver.model.EvidenceTextVerifyRequest;
  9. import com.ymwk.supervisionserver.service.EvidenceService;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.web.bind.annotation.*;
  12. import org.springframework.web.multipart.MultipartFile;
  13. import java.util.Map;
  14. /**
  15. * 存证:文本/文件存证签发、三层核验(摘要/HMAC/签名)、查询
  16. */
  17. @RestController
  18. @RequestMapping("/api/v1/evidence")
  19. public class EvidenceController {
  20. @Autowired
  21. private EvidenceService evidenceService;
  22. //文本存证签发:返回 {evidenceIden, hmac, url}
  23. @PostMapping("/textEvidenceAdd")
  24. public ResponseDTO<Map<String, String>> textEvidenceAdd(@RequestBody EvidenceTextAddRequest request) {
  25. return evidenceService.textEvidenceAdd(request);
  26. }
  27. //文件存证签发(multipart):文件上传 MinIO,返回 {evidenceIden, hmac, url}
  28. @PostMapping("/fileEvidenceAdd")
  29. public ResponseDTO<Map<String, String>> fileEvidenceAdd(@RequestParam("file") MultipartFile file,
  30. @RequestParam(value = "credIden", required = false) String credIden) {
  31. return evidenceService.fileEvidenceAdd(file, credIden);
  32. }
  33. //文本存证核验:返回 {hashEqual, hmacEqual, signEqual}
  34. @PostMapping("/textEvidenceVerify")
  35. public ResponseDTO<Map<String, Boolean>> textEvidenceVerify(@RequestBody EvidenceTextVerifyRequest request) {
  36. return evidenceService.textEvidenceVerify(request);
  37. }
  38. //文件存证核验(multipart):返回 {hashEqual, hmacEqual, signEqual}
  39. @PostMapping("/fileEvidenceVerify")
  40. public ResponseDTO<Map<String, Boolean>> fileEvidenceVerify(@RequestParam("file") MultipartFile file,
  41. @RequestParam("evidenceIden") String evidenceIden,
  42. @RequestParam("hmac") String hmac) {
  43. return evidenceService.fileEvidenceVerify(file, evidenceIden, hmac);
  44. }
  45. //存证分页列表(不含正文/文件URL,详情走 getEvidenceDataByIden)
  46. @PostMapping("/list")
  47. public ResponseDTO<PageResult<Evidence>> list(@RequestBody EvidenceListRequest request) {
  48. return evidenceService.list(request);
  49. }
  50. //按存证标识查询凭证数据(签名/HMAC/摘要/时间戳/原文引用)
  51. @PostMapping("/getEvidenceDataByIden")
  52. public ResponseDTO<Map<String, Object>> getEvidenceDataByIden(@RequestBody EvidenceByIdenRequest request) {
  53. return evidenceService.getEvidenceDataByIden(request);
  54. }
  55. }