package cn.huge.module.aidata.controller; import cn.huge.module.aidata.domain.po.CaseSimilarityRelations; import cn.huge.module.aidata.service.ICaseSimilarityRelationsService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 案件与类案关系表 控制器 */ @Slf4j @RestController @RequestMapping("/api/aidata/similarity") public class CaseSimilarityRelationsController { @Autowired private ICaseSimilarityRelationsService caseSimilarityRelationsService; /** * 分页查询案件相似度关系列表 */ @GetMapping("/list") public Page list(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(value = "caseId", required = false) String caseId) { Map terms = new HashMap<>(); terms.put("deleteStatus", "1"); if (caseId != null) { terms.put("caseId", caseId); } return caseSimilarityRelationsService.pageTerms(PageRequest.of(pageNum - 1, pageSize), terms); } /** * 获取案件相似度关系详细信息 */ @GetMapping("/{id}") public CaseSimilarityRelations getInfo(@PathVariable String id) { return caseSimilarityRelationsService.getById(id); } /** * 新增案件相似度关系 */ @PostMapping public CaseSimilarityRelations add(@RequestBody CaseSimilarityRelations relations) { return caseSimilarityRelationsService.saveCaseSimilarityRelations(relations); } /** * 修改案件相似度关系 */ @PutMapping public void edit(@RequestBody CaseSimilarityRelations relations) { caseSimilarityRelationsService.updateCaseSimilarityRelations(relations); } /** * 更新点赞状态 */ @PutMapping("/like/{id}/{status}") public void updateLikeStatus(@PathVariable String id, @PathVariable String status) { caseSimilarityRelationsService.updateLikeStatus(id, status); } /** * 删除案件相似度关系 */ @DeleteMapping("/{id}") public void remove(@PathVariable String id) { caseSimilarityRelationsService.logicDelete(id); } /** * 根据条件检查案件相似度关系 * @param relations 包含查询条件的对象 * @return 符合条件的案件相似度关系列表 */ @PostMapping("/check") public List checkRelations(@RequestBody CaseSimilarityRelations relations) { List result = caseSimilarityRelationsService.findByConditions(relations); if (result.isEmpty()) { log.info("未找到匹配的案件相似度关系记录, 查询条件: {}", relations); } return result; } }