71.用户重新编辑功能实现之后端实现
功能设想:
我想实现的一个功能是在用户发出的消息下面有一个图标是编辑,按下那个图标之后,用户可以修改对应的那个消息,修改完成点击确认之后,用户下面对用的那个AI的回答可以重新生成
这是大体的逻辑
具体实现:
我们需要在后端添加一个API来更新消息内容:
- 在
ChatController
中添加更新消息的端点 - 添加相应的服务方法
// 在ChatController中添加@PutMapping("/messages/{messageId}")
public ResponseEntity<?> updateMessageContent(@PathVariable Long messageId,@RequestBody Map<String, String> request) {try {String newContent = request.get("content");if (newContent == null || newContent.trim().isEmpty()) {return ResponseEntity.badRequest().body("消息内容不能为空");}Message message = messageRepository.findById(messageId).orElseThrow(() -> new RuntimeException("消息未找到"));message.setContent(newContent);message.setUpdatedAt(Instant.now());messageRepository.save(message);return ResponseEntity.ok("消息更新成功");} catch (Exception e) {logger.log(Level.SEVERE, "更新消息失败: " + e.getMessage(), e);return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("更新消息失败: " + e.getMessage());}
}
- 当用户修改消息并确认后,系统会自动:
- 更新数据库中的消息内容
- 删除该消息之后的AI回复
- 使用修改后的消息内容重新生成AI回答