package com.ymwk.supervisionserver.controller; import com.ymwk.supervisionserver.component.PageResult; import com.ymwk.supervisionserver.component.ResponseDTO; import com.ymwk.supervisionserver.entity.Evidence; import com.ymwk.supervisionserver.model.EvidenceByIdenRequest; import com.ymwk.supervisionserver.model.EvidenceListRequest; import com.ymwk.supervisionserver.model.EvidenceTextAddRequest; import com.ymwk.supervisionserver.model.EvidenceTextVerifyRequest; import com.ymwk.supervisionserver.service.EvidenceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.Map; /** * 存证:文本/文件存证签发、三层核验(摘要/HMAC/签名)、查询 */ @RestController @RequestMapping("/api/v1/evidence") public class EvidenceController { @Autowired private EvidenceService evidenceService; //文本存证签发:返回 {evidenceIden, hmac, url} @PostMapping("/textEvidenceAdd") public ResponseDTO> textEvidenceAdd(@RequestBody EvidenceTextAddRequest request) { return evidenceService.textEvidenceAdd(request); } //文件存证签发(multipart):文件上传 MinIO,返回 {evidenceIden, hmac, url} @PostMapping("/fileEvidenceAdd") public ResponseDTO> fileEvidenceAdd(@RequestParam("file") MultipartFile file, @RequestParam(value = "credIden", required = false) String credIden) { return evidenceService.fileEvidenceAdd(file, credIden); } //文本存证核验:返回 {hashEqual, hmacEqual, signEqual} @PostMapping("/textEvidenceVerify") public ResponseDTO> textEvidenceVerify(@RequestBody EvidenceTextVerifyRequest request) { return evidenceService.textEvidenceVerify(request); } //文件存证核验(multipart):返回 {hashEqual, hmacEqual, signEqual} @PostMapping("/fileEvidenceVerify") public ResponseDTO> fileEvidenceVerify(@RequestParam("file") MultipartFile file, @RequestParam("evidenceIden") String evidenceIden, @RequestParam("hmac") String hmac) { return evidenceService.fileEvidenceVerify(file, evidenceIden, hmac); } //存证分页列表(不含正文/文件URL,详情走 getEvidenceDataByIden) @PostMapping("/list") public ResponseDTO> list(@RequestBody EvidenceListRequest request) { return evidenceService.list(request); } //按存证标识查询凭证数据(签名/HMAC/摘要/时间戳/原文引用) @PostMapping("/getEvidenceDataByIden") public ResponseDTO> getEvidenceDataByIden(@RequestBody EvidenceByIdenRequest request) { return evidenceService.getEvidenceDataByIden(request); } }