From 8676ebc70411c69fe0315ca3317302915749ad1d Mon Sep 17 00:00:00 2001 From: NARUBROWN Date: Fri, 19 Jul 2024 11:09:25 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=EA=B2=8C=EC=8B=9C=EA=B8=80=EC=9D=84?= =?UTF-8?q?=20=EB=B9=84=EA=B3=B5=EA=B0=9C=EB=A1=9C=20=EC=A0=84=ED=99=98?= =?UTF-8?q?=EC=8B=9C=EC=97=90=20=ED=83=9C=EA=B7=B8=EA=B0=80=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=EB=90=98=EB=8F=84=EB=A1=9D=20=ED=95=A8=20#95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snap/service/impl/SnapServiceImpl.java | 43 ++++--------------- 1 file changed, 8 insertions(+), 35 deletions(-) diff --git a/src/main/java/me/snaptime/snap/service/impl/SnapServiceImpl.java b/src/main/java/me/snaptime/snap/service/impl/SnapServiceImpl.java index 2f1f9441..68f7e6e4 100644 --- a/src/main/java/me/snaptime/snap/service/impl/SnapServiceImpl.java +++ b/src/main/java/me/snaptime/snap/service/impl/SnapServiceImpl.java @@ -18,7 +18,6 @@ import me.snaptime.snap.dto.res.FindSnapResDto; import me.snaptime.snap.repository.SnapRepository; import me.snaptime.snap.service.SnapService; -import me.snaptime.snapTag.dto.res.FindTagUserResDto; import me.snaptime.snapTag.service.SnapTagService; import me.snaptime.user.domain.User; import me.snaptime.user.repository.UserRepository; @@ -28,7 +27,6 @@ import javax.crypto.SecretKey; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -129,50 +127,23 @@ public Long modifySnap(Long snapId, ModifySnapReqDto modifySnapReqDto, String us } // Snap의 암호화 상태를 활성으로 변경한다. foundSnap.updateIsPrivate(true); + // 태그 목록을 삭제한다. + snapTagService.deleteAllTagUser(foundSnap); } else { // 사용자가 이미지 수정을 요구하였으나, 암호화를 원하지 않는다면 // fileComponent를 통해 원래 경로에 사진을 저장한다. fileComponent.updateFileSystemPhoto(foundSnap.getFilePath(), foundPhotoByte); // Snap의 암호화 상태를 비활성화로 변경한다. foundSnap.updateIsPrivate(false); + + if (tagUserLoginIds != null) { + snapTagService.modifyTagUser(tagUserLoginIds, foundSnap); + } } } catch (IOException e) { throw new CustomException(ExceptionCode.SNAP_MODIFY_ERROR); } } - - // 태그 목록 수정 - /* - * 새로운 유저를 찾아 태그 목록에 추가한다. - * */ - List originalTagIds = snapTagService.findTagUserList(snapId). - stream().map(FindTagUserResDto::tagUserLoginId).toList(); - - log.info("originalTagIds: {}", originalTagIds); - List newTagIds = new ArrayList<>(); - List missingTagIds = new ArrayList<>(); - if (tagUserLoginIds != null){ // 새롭게 추가된 Ids를 찾아 newTagIds 목록에 추가한다. - for (String tagId : tagUserLoginIds) { - if (!originalTagIds.contains(tagId)) { - newTagIds.add(tagId); - } - } - log.info("new Tag Ids {}", newTagIds); - snapTagService.addTagUser(newTagIds, foundSnap); - - // 원래 있었다가 이번 목록에서 사라진 Ids를 찾아 목록에 추가한다. - for (String tagId : originalTagIds) { - if (!tagUserLoginIds.contains(tagId)) { - missingTagIds.add(tagId); - } - } - log.info("missing Tag Ids {}", missingTagIds); - snapTagService.deleteTagUser(missingTagIds, snapId); - } else { - snapTagService.deleteTagUser(originalTagIds, snapId); - } - log.info("태그상태 현황 : {}", snapTagService.findTagUserList(snapId)); - foundSnap.updateOneLineJournal(modifySnapReqDto.oneLineJournal()); Snap snap = snapRepository.save(foundSnap); return snap.getId(); } @@ -195,6 +166,8 @@ public void changeVisibility(Long snapId, String userUid, boolean isPrivate) { Encryption encryption = encryptionComponent.setEncryption(foundUser); byte[] encryptedByte = encryptionComponent.encryptData(encryption, foundPhotoByte); fileComponent.updateFileSystemPhoto(foundSnap.getFilePath(), encryptedByte); + // 태그 목록을 삭제한다. + snapTagService.deleteAllTagUser(foundSnap); } else { // private -> public (복호화) Encryption encryption = encryptionComponent.getEncryption(foundUser);