Skip to content

Commit f74144b

Browse files
committed
[DDING-81] 동영상 Converting 상태 검증 쿼리 작성 (#225)
(cherry picked from commit 6142d78)
1 parent 0548c83 commit f74144b

File tree

3 files changed

+292
-116
lines changed

3 files changed

+292
-116
lines changed

src/main/java/ddingdong/ddingdongBE/domain/feed/repository/FeedRepository.java

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,29 @@
99
public interface FeedRepository extends JpaRepository<Feed, Long> {
1010

1111
@Query(value = """
12-
select *
13-
from feed f
14-
where (:currentCursorId = -1 or id < :currentCursorId)
15-
and f.club_id = :clubId
16-
and deleted_at is null
17-
order by f.id DESC
18-
limit :size
19-
""", nativeQuery = true)
12+
select *
13+
from feed f
14+
where (:currentCursorId = -1 or id < :currentCursorId)
15+
and f.club_id = :clubId
16+
and deleted_at is null
17+
and (
18+
f.feed_type != 'VIDEO'
19+
or exists (
20+
select 1
21+
from (
22+
select id
23+
from file_meta_data
24+
where entity_id = f.id
25+
and domain_type = 'FEED_VIDEO'
26+
) filtered_fm
27+
join vod_processing_job vpj
28+
on filtered_fm.id = vpj.file_meta_data_id
29+
where vpj.convert_job_status = 'COMPLETE'
30+
)
31+
)
32+
order by f.id DESC
33+
limit :size
34+
""", nativeQuery = true)
2035
Slice<Feed> findPageByClubIdOrderById(
2136
@Param("clubId") Long clubId,
2237
@Param("size") int size,
@@ -29,6 +44,21 @@ Slice<Feed> findPageByClubIdOrderById(
2944
(select max(id)
3045
from feed
3146
where deleted_at is null
47+
and (
48+
f.feed_type != 'VIDEO'
49+
or exists (
50+
select 1
51+
from (
52+
select id
53+
from file_meta_data
54+
where entity_id = f.id
55+
and domain_type = 'FEED_VIDEO'
56+
) filtered_fm
57+
join vod_processing_job vpj
58+
on filtered_fm.id = vpj.file_meta_data_id
59+
where vpj.convert_job_status = 'COMPLETE'
60+
)
61+
)
3262
GROUP BY club_id)
3363
and (:currentCursorId = -1 or id < :currentCursorId)
3464
ORDER BY id DESC

src/main/java/ddingdong/ddingdongBE/domain/feed/service/GeneralFeedService.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@
33
import ddingdong.ddingdongBE.common.exception.PersistenceException.ResourceNotFound;
44
import ddingdong.ddingdongBE.domain.feed.entity.Feed;
55
import ddingdong.ddingdongBE.domain.feed.repository.FeedRepository;
6-
import ddingdong.ddingdongBE.domain.vodprocessing.entity.VodProcessingJob;
7-
import ddingdong.ddingdongBE.domain.vodprocessing.service.VodProcessingJobService;
86
import java.util.ArrayList;
97
import java.util.List;
108
import java.util.Optional;
11-
import java.util.stream.Collectors;
129
import lombok.RequiredArgsConstructor;
1310
import org.springframework.data.domain.PageRequest;
1411
import org.springframework.data.domain.Slice;
@@ -22,7 +19,6 @@
2219
public class GeneralFeedService implements FeedService {
2320

2421
private final FeedRepository feedRepository;
25-
private final VodProcessingJobService vodProcessingJobService;
2622

2723
@Override
2824
public Slice<Feed> getFeedPageByClubId(Long clubId, int size, Long currentCursorId) {
@@ -61,9 +57,7 @@ public void delete(Feed feed) {
6157
}
6258

6359
private Slice<Feed> buildSlice(Slice<Feed> originalSlice, int size) {
64-
List<Feed> content = new ArrayList<>(originalSlice.getContent()).stream()
65-
.filter(this::isComplete)
66-
.collect(Collectors.toList());
60+
List<Feed> content = new ArrayList<>(originalSlice.getContent());
6761
if (content.isEmpty()) {
6862
return null;
6963
}
@@ -76,16 +70,4 @@ private Slice<Feed> buildSlice(Slice<Feed> originalSlice, int size) {
7670

7771
return new SliceImpl<>(content, PageRequest.of(originalSlice.getNumber(), size), hasNext);
7872
}
79-
80-
private boolean isComplete(Feed feed) {
81-
if (feed.isImage()) {
82-
return true;
83-
}
84-
85-
VodProcessingJob vodProcessingJob = vodProcessingJobService.findByVideoFeedId(feed.getId());
86-
if (vodProcessingJob == null) {
87-
return false;
88-
}
89-
return vodProcessingJob.isCompleted();
90-
}
9173
}

0 commit comments

Comments
 (0)