Spring boot kim's Shop/게시판

Springboot 게시판만들기!(3)게시물 수정/삭제

디비드킴 2021. 10. 4. 14:11

이제 게시물 수정 삭제를 만들건대

다시 한번 summernote가 필요하다

 

프런트 서버

html
js
js

사진 올리는 함수는 jslib로 뺐다

그리고 수정 요청을 하면 글자 수 체크를 해야 하는데

summernote에서 글만 빼오는 방법을 아직 모른다

그래서 패스!

 

백엔드 서버

글 수정

boardService

boardService.java

글을 조회한다

articleDto articleDto=articleDao.findById(tryUpdateArticleDto.getBid()).orElseThrow(()>new IllegalArgumentException("존재하지 않는 게시글입니다"));

로그인 정보를 가져온다

userDto userDto=userService.sendUserDto();

로그인이메일=작성자인지 검사한다

confrimUpdateArticle(articleDto.getBemail(),userDto.getEmail());

기존 글에 사진이 있는지 가져온다

새 글에 사진이 있는지 가져온다

List<String>originImage=utillService.getImgSrc(articleDto.getTextarea());

List<String>newImages=utillService.getImgSrc(tryUpdateArticleDto.getTextarea());

비교한다

fileUploadService.CompareImgs(originImagenewImages);

업데이트

 

fileUploadService

fileUploadService.java

사진이 기존/수정 변화 없음

if(newImages.isEmpty()&&originImage.isEmpty()){

사진이 기존 있음/수정 없음

else if(newImages.isEmpty()&&!originImage.isEmpty()){

deleteImages(originImage);

기존 게시물 사진 전부 삭제

사진이 기존과/수정이 다름

for(int i=0;i<originSize;i++){

String ori=originImage.get(i);

for(int ii=0;ii<newSize;ii++){

 reuqestDeleteImage(ori);

비교해서 기존 글에서 없어진 사진을 클라우드에서 지운다

 

deleteImages/reuqestDeleteImage

fileUploadService.java

if(articleImages.isEmpty()){가있는이유는

댓글/글 삭제 시에도 사용하는 함수여서 이다

 

글 삭제 

boardService

boardService.java

글 조회

articleDto articleDto=articleDao.findById(tryDeleteArticleDto.getBid()).orElseThrow(()>new IllegalArgumentException("존재하지 않는 게시글입니다"));

로그인 이메일=작성자 일치하는지 확인

confrimUpdateArticle(articleDto.getBemail(),userDto.getEmail());

사진 가져오기

List<String>articleImages=utillService.getImgSrc(articleDto.getTextarea());

사진삭제

fileUploadService.deleteImages(articleImages);

(위에if(articleImages.isEmpty()){가 있으므로 사진이 없다면 그냥 스킵됨)

글+댓글 삭제

articleDao.deleteArticleJoinComent(bid);

글이 삭제될 때

그 글의 댓글들도 역시 삭제되어야 한다

 

수정과 아주 비슷하다!

사실 이런 거 인터페이스로 합치면 될 거 같기도 하다

 

dao

articleDao.java

 

테스트

수정 테스트

https://localhost:8443/updateArticlePage.html?bid=42
https://localhost:8443/showArticlePage.html?bid=42&page=1

 

내용이 잘 바뀌었다

vscode

vsocde

잘 추려냈다!

자 이제 삭제를 할 건데 클라우드도 같이 봐보자

사실 깜빡하고 수정 시 before사진 못 찍어서 ㅋㅋ

삭제할 때 함께 봐보자

 

삭제되야할 파일 이름

2021-10-0335af0792-7faa-4d25-a0b3-7c9539e5629f스크린샷(1721).png

2021-10-041691e938-011c-480d-a7c5-d2deff0ee7e6사본 -스크린샷(1735).png

2021-10-0474c9d10d-d56f-4137-bd4e-03949638b828사본 -스크린샷(1731).png

 

클라우드 검색

3개의 사진이 그대로 있다

 

댓글

https://localhost:8443/showArticlePage.html?bid=42&page=1
mysql

이제 삭제를 누르면

삭제요청

클라우드

aws s3

검색해도 파일이 존재하지 않는다

사진삭제 성공

 

db댓글/게시물

mysql

결과

https://localhost:8443/boardPage.html

게시물이 사라졌다