Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,19 @@ Optional<Paper> findTopByAdmin_IdAndPartner_IdAndIsActivatedOrderByIdDesc(
Optional<Paper> findTopByAdmin_IdAndPartner_IdAndIsActivatedInOrderByIdDesc(Long adminId, Long partnerId, List<ActivationStatus> statuses);

// Admin 기준 (SUSPEND)
@Query("select p from Paper p join fetch p.partner where p.isActivated = :status order by p.createdAt desc")
List<Paper> findAllByIsActivatedWithPartner(@Param("status") ActivationStatus status);
@Query("""
select p
from Paper p
left join fetch p.partner pt
left join fetch p.store s
where p.isActivated = :status
and p.admin.id = :adminId
order by p.createdAt desc
""")
List<Paper> findAllSuspendedByAdminWithPartner(
@Param("status") ActivationStatus status,
@Param("adminId") Long adminId
);

// Partner 기준 (ACTIVE)
List<Paper> findByPartner_IdAndIsActivated(Long partnerId, ActivationStatus status, Sort sort);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,12 +252,17 @@ public PartnershipResponseDTO.WritePartnershipResponseDTO getPartnership(Long pa
@Override
@Transactional
public List<PartnershipResponseDTO.SuspendedPaperDTO> getSuspendedPapers(Long adminId) {
List<Paper> suspendedPapers = paperRepository.findAllByIsActivatedWithPartner(ActivationStatus.SUSPEND);
List<Paper> suspendedPapers =
paperRepository.findAllSuspendedByAdminWithPartner(ActivationStatus.SUSPEND, adminId);

return suspendedPapers.stream()
.map(paper -> PartnershipResponseDTO.SuspendedPaperDTO.builder()
.paperId(paper.getId())
.partnerName(paper.getPartner().getName())
.partnerName(
paper.getPartner() != null
? paper.getPartner().getName()
: (paper.getStore() != null ? paper.getStore().getName() : "미등록")
)
.createdAt(paper.getCreatedAt())
.build())
.toList();
Expand Down Expand Up @@ -400,16 +405,25 @@ public void deletePartnership(Long paperId) {
Paper paper = paperRepository.findById(paperId)
.orElseThrow(() -> new DatabaseException(ErrorStatus.NO_SUCH_PAPER));

// 1. paperContent + goods 삭제
List<PaperContent> contentsToDelete = paperContentRepository.findByPaperId(paperId);

if (contentsToDelete != null && !contentsToDelete.isEmpty()) {
List<Long> contentIds = contentsToDelete.stream().map(PaperContent::getId).toList();
goodsRepository.deleteAllByContentIds(contentIds);
List<Long> contentIds = contentsToDelete.stream()
.map(PaperContent::getId)
.toList();

goodsRepository.deleteAllByContentIds(contentIds);
paperContentRepository.deleteAll(contentsToDelete);
}

// 2. paper 삭제
paperRepository.delete(paper);

// 3. 임시 store 삭제 (partner가 null인 경우만)
Store store = paper.getStore();
if (store != null && paper.getPartner() == null) {
storeRepository.delete(store);
}
}

@Override
Expand Down