Compare commits
4 Commits
dce1abaeff
...
39eb3d48a8
Author | SHA1 | Date |
---|---|---|
|
39eb3d48a8 | |
|
a6e949bdd6 | |
|
63f952d390 | |
|
7e9cb556d0 |
|
@ -7,5 +7,6 @@ data class GetRecommendSeriesListResponse @QueryProjection constructor(
|
||||||
val title: String,
|
val title: String,
|
||||||
val imageUrl: String,
|
val imageUrl: String,
|
||||||
val creatorId: Long,
|
val creatorId: Long,
|
||||||
val creatorNickname: String
|
val creatorNickname: String,
|
||||||
|
val creatorProfileImageUrl: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -30,7 +30,8 @@ class RecommendSeriesRepository(
|
||||||
series.title,
|
series.title,
|
||||||
recommendSeries.imagePath.prepend("/").prepend(imageHost),
|
recommendSeries.imagePath.prepend("/").prepend(imageHost),
|
||||||
member.id,
|
member.id,
|
||||||
member.nickname
|
member.nickname,
|
||||||
|
member.profileImage.prepend("/").prepend(imageHost)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.from(recommendSeries)
|
.from(recommendSeries)
|
||||||
|
@ -57,7 +58,8 @@ class RecommendSeriesRepository(
|
||||||
series.title,
|
series.title,
|
||||||
recommendSeries.imagePath.prepend("/").prepend(imageHost),
|
recommendSeries.imagePath.prepend("/").prepend(imageHost),
|
||||||
member.id,
|
member.id,
|
||||||
member.nickname
|
member.nickname,
|
||||||
|
member.profileImage.prepend("/").prepend(imageHost)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.from(recommendSeries)
|
.from(recommendSeries)
|
||||||
|
|
|
@ -23,15 +23,17 @@ class AudioContentMainTabSeriesService(
|
||||||
) {
|
) {
|
||||||
fun fetchData(member: Member): GetContentMainTabSeriesResponse {
|
fun fetchData(member: Member): GetContentMainTabSeriesResponse {
|
||||||
val isAdult = member.auth != null
|
val isAdult = member.auth != null
|
||||||
|
val memberId = member.id!!
|
||||||
|
|
||||||
// 메인 배너 (시리즈)
|
// 메인 배너 (시리즈)
|
||||||
val contentBannerList = bannerService.getBannerList(
|
val contentBannerList = bannerService.getBannerList(
|
||||||
tabId = 2,
|
tabId = 2,
|
||||||
memberId = member.id!!,
|
memberId = memberId,
|
||||||
isAdult = isAdult
|
isAdult = isAdult
|
||||||
)
|
)
|
||||||
|
|
||||||
val originalAudioDrama = seriesService.getOriginalAudioDramaList(
|
val originalAudioDrama = seriesService.getOriginalAudioDramaList(
|
||||||
|
memberId = memberId,
|
||||||
isAdult = isAdult,
|
isAdult = isAdult,
|
||||||
offset = 0,
|
offset = 0,
|
||||||
limit = 20
|
limit = 20
|
||||||
|
@ -48,7 +50,7 @@ class AudioContentMainTabSeriesService(
|
||||||
.plusDays(1)
|
.plusDays(1)
|
||||||
|
|
||||||
val rankSeriesList = rankingService.getSeriesRanking(
|
val rankSeriesList = rankingService.getSeriesRanking(
|
||||||
memberId = member.id!!,
|
memberId = memberId,
|
||||||
isAdult = isAdult,
|
isAdult = isAdult,
|
||||||
startDate = dailyRankingStartDate,
|
startDate = dailyRankingStartDate,
|
||||||
endDate = dailyRankingEndDate
|
endDate = dailyRankingEndDate
|
||||||
|
@ -60,7 +62,7 @@ class AudioContentMainTabSeriesService(
|
||||||
// 장르별 추천 시리즈
|
// 장르별 추천 시리즈
|
||||||
val recommendSeriesList = if (genreList.isNotEmpty()) {
|
val recommendSeriesList = if (genreList.isNotEmpty()) {
|
||||||
rankingService.getSeriesAllRankingByGenre(
|
rankingService.getSeriesAllRankingByGenre(
|
||||||
memberId = member.id!!,
|
memberId = memberId,
|
||||||
isAdult = isAdult,
|
isAdult = isAdult,
|
||||||
genreId = genreList[0].id
|
genreId = genreList[0].id
|
||||||
)
|
)
|
||||||
|
@ -82,7 +84,7 @@ class AudioContentMainTabSeriesService(
|
||||||
.plusMonths(1)
|
.plusMonths(1)
|
||||||
|
|
||||||
val rankCompleteSeriesList = rankingService.getCompleteSeriesRanking(
|
val rankCompleteSeriesList = rankingService.getCompleteSeriesRanking(
|
||||||
memberId = member.id!!,
|
memberId = memberId,
|
||||||
isAdult = isAdult,
|
isAdult = isAdult,
|
||||||
startDate = monthlyRankingStartDate,
|
startDate = monthlyRankingStartDate,
|
||||||
endDate = monthlyRankingEndDate
|
endDate = monthlyRankingEndDate
|
||||||
|
@ -98,7 +100,7 @@ class AudioContentMainTabSeriesService(
|
||||||
.plusDays(6)
|
.plusDays(6)
|
||||||
|
|
||||||
val seriesRankCreatorList = rankingService.fetchCreatorBySeriesRevenueRankTop20(
|
val seriesRankCreatorList = rankingService.fetchCreatorBySeriesRevenueRankTop20(
|
||||||
memberId = member.id!!,
|
memberId = memberId,
|
||||||
startDate = startDate.minusDays(1),
|
startDate = startDate.minusDays(1),
|
||||||
endDate = endDate
|
endDate = endDate
|
||||||
)
|
)
|
||||||
|
@ -122,7 +124,7 @@ class AudioContentMainTabSeriesService(
|
||||||
title = it.title,
|
title = it.title,
|
||||||
items = seriesService.fetchSeriesByCurationId(
|
items = seriesService.fetchSeriesByCurationId(
|
||||||
curationId = it.id!!,
|
curationId = it.id!!,
|
||||||
memberId = member.id!!,
|
memberId = memberId,
|
||||||
isAdult = isAdult
|
isAdult = isAdult
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -35,7 +35,7 @@ interface ContentSeriesQueryRepository {
|
||||||
fun getKeywordList(seriesId: Long): List<String>
|
fun getKeywordList(seriesId: Long): List<String>
|
||||||
fun getSeriesContentMinMaxPrice(seriesId: Long): GetSeriesContentMinMaxPriceResponse
|
fun getSeriesContentMinMaxPrice(seriesId: Long): GetSeriesContentMinMaxPriceResponse
|
||||||
fun getRecommendSeriesList(isAuth: Boolean, contentType: ContentType, limit: Long): List<Series>
|
fun getRecommendSeriesList(isAuth: Boolean, contentType: ContentType, limit: Long): List<Series>
|
||||||
fun getOriginalAudioDramaList(isAdult: Boolean, offset: Long = 0, limit: Long = 20): List<Series>
|
fun getOriginalAudioDramaList(memberId: Long, isAdult: Boolean, offset: Long = 0, limit: Long = 20): List<Series>
|
||||||
fun getGenreList(isAdult: Boolean): List<GetSeriesGenreListResponse>
|
fun getGenreList(isAdult: Boolean): List<GetSeriesGenreListResponse>
|
||||||
fun findByCurationId(curationId: Long, memberId: Long, isAdult: Boolean): List<Series>
|
fun findByCurationId(curationId: Long, memberId: Long, isAdult: Boolean): List<Series>
|
||||||
}
|
}
|
||||||
|
@ -143,9 +143,14 @@ class ContentSeriesQueryRepositoryImpl(
|
||||||
.fetch()
|
.fetch()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getOriginalAudioDramaList(isAdult: Boolean, offset: Long, limit: Long): List<Series> {
|
override fun getOriginalAudioDramaList(memberId: Long, isAdult: Boolean, offset: Long, limit: Long): List<Series> {
|
||||||
|
val blockMemberCondition = blockMember.member.id.eq(member.id)
|
||||||
|
.and(blockMember.isActive.isTrue)
|
||||||
|
.and(blockMember.blockedMember.id.eq(memberId))
|
||||||
|
|
||||||
var where = series.isOriginal.isTrue
|
var where = series.isOriginal.isTrue
|
||||||
.and(series.isActive.isTrue)
|
.and(series.isActive.isTrue)
|
||||||
|
.and(blockMember.id.isNull)
|
||||||
|
|
||||||
if (!isAdult) {
|
if (!isAdult) {
|
||||||
where = where.and(series.isAdult.isFalse)
|
where = where.and(series.isAdult.isFalse)
|
||||||
|
@ -153,6 +158,8 @@ class ContentSeriesQueryRepositoryImpl(
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.selectFrom(series)
|
.selectFrom(series)
|
||||||
|
.innerJoin(series.member, member)
|
||||||
|
.leftJoin(blockMember).on(blockMemberCondition)
|
||||||
.where(where)
|
.where(where)
|
||||||
.orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
|
.orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
|
|
|
@ -31,11 +31,12 @@ class ContentSeriesService(
|
||||||
private val coverImageHost: String
|
private val coverImageHost: String
|
||||||
) {
|
) {
|
||||||
fun getOriginalAudioDramaList(
|
fun getOriginalAudioDramaList(
|
||||||
|
memberId: Long,
|
||||||
isAdult: Boolean,
|
isAdult: Boolean,
|
||||||
offset: Long = 0,
|
offset: Long = 0,
|
||||||
limit: Long = 20
|
limit: Long = 20
|
||||||
): List<GetSeriesListResponse.SeriesListItem> {
|
): List<GetSeriesListResponse.SeriesListItem> {
|
||||||
val originalAudioDramaList = repository.getOriginalAudioDramaList(isAdult, offset, limit)
|
val originalAudioDramaList = repository.getOriginalAudioDramaList(memberId, isAdult, offset, limit)
|
||||||
return seriesToSeriesListItem(originalAudioDramaList, isAdult)
|
return seriesToSeriesListItem(originalAudioDramaList, isAdult)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,6 +220,9 @@ class ContentSeriesService(
|
||||||
|
|
||||||
it
|
it
|
||||||
}
|
}
|
||||||
|
.filter {
|
||||||
|
it.numberOfContent > 0
|
||||||
|
}
|
||||||
.map {
|
.map {
|
||||||
val nowDateTime = LocalDateTime.now()
|
val nowDateTime = LocalDateTime.now()
|
||||||
|
|
||||||
|
|
|
@ -289,7 +289,7 @@ class RankingRepository(
|
||||||
.where(where)
|
.where(where)
|
||||||
.groupBy(series.id)
|
.groupBy(series.id)
|
||||||
.orderBy(
|
.orderBy(
|
||||||
order.can.sum().desc(),
|
order.id.countDistinct().desc(),
|
||||||
Expressions.numberTemplate(Double::class.java, "function('rand')").asc()
|
Expressions.numberTemplate(Double::class.java, "function('rand')").asc()
|
||||||
)
|
)
|
||||||
.offset(0)
|
.offset(0)
|
||||||
|
|
Loading…
Reference in New Issue