package com.example.copykamanotes.service.impl; import com.example.copykamanotes.mapper.NoteCommentMapper; import com.example.copykamanotes.mapper.NoteMapper; import com.example.copykamanotes.model.base.ApiResponse; import com.example.copykamanotes.model.base.EmptyVO; import com.example.copykamanotes.model.entity.Note; import com.example.copykamanotes.model.entity.NoteComment; import com.example.copykamanotes.scope.RequestScopeData; import com.example.copykamanotes.service.MessageService; import com.example.copykamanotes.service.NoteCommentService; import com.example.copykamanotes.utils.ApiResponseUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service @RequiredArgsConstructor public class NoteCommentServiceImpl implements NoteCommentService { private final NoteCommentMapper noteCommentMapper; private final NoteMapper noteMapper; private final RequestScopeData requestScopeData; private final MessageService messageService; @Override public ApiResponse createComment(Integer noteId, String content) { Long userId = requestScopeData.getUserId(); Note note = noteMapper.findById(noteId); if (note == null) { return ApiResponseUtils.error("笔记不存在"); } try { NoteComment noteComment = new NoteComment(); noteComment.setNoteId(noteId); noteComment.setUserId(userId); noteComment.setContent(content); noteComment.setCreatedAt(new Date()); noteComment.setIsDeleted(false); noteCommentMapper.insert(noteComment); messageService.createMessage( note.getAuthorId(), userId, "note", noteId, "评论了你的笔记" ); return ApiResponseUtils.success("创建评论成功"); } catch (Exception e) { return ApiResponseUtils.error("创建评论失败"); } } @Override public ApiResponse deleteComment(Integer commentId) { Long userId = requestScopeData.getUserId(); NoteComment noteComment = noteCommentMapper.findById(commentId); if (noteComment == null || !noteComment.getUserId().equals(userId)) { return ApiResponseUtils.error("没有权限"); } try { noteComment.setIsDeleted(true); noteComment.setUpdatedAt(new Date()); noteCommentMapper.update(noteComment); return ApiResponseUtils.success("删除成功"); } catch (Exception e) { return ApiResponseUtils.error("删除失败"); } } @Override public ApiResponse> getComments(Integer noteId) { try{ List comments = noteCommentMapper.findByNoteId(noteId); return ApiResponseUtils.success("获取评论成功", comments); } catch (Exception e) { return ApiResponseUtils.error("获取评论失败"); } } }