中医知识问答历史对话删除功能后端实现
一、功能需求分析
1.1 核心功能点
- 用户可删除单条历史对话
- 删除前需二次确认
- 实时更新对话列表
- 自动清理相关消息记录
1.2 技术栈选择
- 前端:Vue.js + Axios
- 后端:Spring Boot + JPA
- 数据库:MySQL/PostgreSQL
二、后端实现
2.1 API接口设计
因为有外键操作,所以首先需要先删除对应的消息列表,然后再删除对话
@CrossOrigin(origins = "http://localhost:4000")
@DeleteMapping("/conversations/{id}")
@Transactional
public ResponseEntity<?> deleteConversation(@PathVariable Long id) {
try {
conversationService.deleteConversationWithMessages(id);
return ResponseEntity.ok("删除成功");
} catch (Exception e) {
return ResponseEntity.internalServerError().body("删除失败");
}
}
@Transactional
public void deleteConversationWithMessages(Long id) {
messageRepository.deleteByConv_Id(id);
conversationRepository.deleteById(id);
}