Skip to content

Commit

Permalink
✨ Feat #66 : [동네정보] 댓글 등록기능 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
Suanna01 committed Aug 6, 2023
1 parent 01e03f2 commit 5dc5797
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.umc.DongnaeFriend.domain.dongnae.controller;

import com.umc.DongnaeFriend.domain.account.sharing.dto.ReqSharingCommentDto;
import com.umc.DongnaeFriend.domain.dongnae.dto.DongnaeCommentDto;
import com.umc.DongnaeFriend.domain.dongnae.service.DongnaeCommentService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

@RequiredArgsConstructor
@RestController
@RequestMapping("/town-information/comments")
public class DongnaeCommentController {
private final DongnaeCommentService dongnaeCommentService;

// [동네정보] 댓글 등록
@PostMapping("/{townInformationId}")
public String postComment(@PathVariable("townInformationId") Long townInformationId, @RequestBody DongnaeCommentDto dongnaeCommentDto) {
dongnaeCommentService.newComment(townInformationId, dongnaeCommentDto);
return "";
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.umc.DongnaeFriend.domain.dongnae.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public class DongnaeCommentDto {
Long parentCommentId;
String content;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.umc.DongnaeFriend.domain.dongnae.respository;

import com.umc.DongnaeFriend.domain.dongnae.entity.DongnaeBoard;
import com.umc.DongnaeFriend.domain.dongnae.entity.DongnaeComment;
import com.umc.DongnaeFriend.domain.user.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
Expand All @@ -16,4 +18,9 @@ public interface DongnaeCommentRepository extends JpaRepository<DongnaeComment,
@Query(value = "select c from DongnaeComment c join fetch c.dongnaeBoard d " +
"where c.user.id = :userId order by c.createdAt desc")
List<DongnaeComment> getCommentByUserIdAndBoard(@Param("userId") Long userId);
@Query("SELECT u FROM User u WHERE u.id = :user_id")
User findByUserId(@Param("user_id") Long user_id);

@Query("SELECT db FROM DongnaeBoard db WHERE db.id = :dongnae_board_id")
DongnaeBoard findByDongnaeBoardId(@Param("dongnae_board_id") Long dongnae_board_id);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package com.umc.DongnaeFriend.domain.dongnae.service;

import com.umc.DongnaeFriend.domain.account.sharing.entity.SharingBoard;
import com.umc.DongnaeFriend.domain.account.sharing.entity.SharingComment;
import com.umc.DongnaeFriend.domain.dongnae.dto.DongnaeCommentDto;
import com.umc.DongnaeFriend.domain.dongnae.entity.DongnaeBoard;
import com.umc.DongnaeFriend.domain.dongnae.entity.DongnaeComment;
import com.umc.DongnaeFriend.domain.dongnae.respository.DongnaeCommentRepository;
import com.umc.DongnaeFriend.domain.user.entity.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.Optional;

@RequiredArgsConstructor
@Service
public class DongnaeCommentService {
private final DongnaeCommentRepository dongnaeCommentRepository;


public String newComment(Long townInformationId, DongnaeCommentDto dongnaeCommentDto) {
// !임시! 유저 가져오기
User user = dongnaeCommentRepository.findByUserId(1L);

// 게시판 가져오기
DongnaeBoard dongnaeBoard = dongnaeCommentRepository.findByDongnaeBoardId(townInformationId);

// 대댓글 등록
if (!(dongnaeCommentDto.getParentCommentId() == null)){
// 부모 댓글 가져오기
Optional<DongnaeComment> parentCommentOptional = dongnaeCommentRepository.findById(dongnaeCommentDto.getParentCommentId());
DongnaeComment parentComment = parentCommentOptional.get();

// 댓글 빌드
DongnaeComment comment = DongnaeComment.builder()
.parentComment(parentComment)
.content(dongnaeCommentDto.getContent())
.isDeleted(false)
.dongnaeBoard(dongnaeBoard)
.user(user)
.build();

dongnaeCommentRepository.save(comment);

return "대댓글 등록 성공";

}

// 댓글 빌드
DongnaeComment comment = DongnaeComment.builder()
.content(dongnaeCommentDto.getContent())
.isDeleted(false)
.dongnaeBoard(dongnaeBoard)
.user(user)
.build();

dongnaeCommentRepository.save(comment);

return "댓글 등록 성공";
}
}

0 comments on commit 5dc5797

Please sign in to comment.