parent
c95b3db6eb
commit
c077f7322d
|
@ -1,8 +1,10 @@
|
|||
package kr.co.vividnext.sodalive.content.series
|
||||
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||
import kr.co.vividnext.sodalive.admin.content.series.genre.QSeriesGenre
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.Series
|
||||
import kr.co.vividnext.sodalive.member.QMember
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface ContentSeriesRepository : JpaRepository<Series, Long>, ContentSeriesQueryRepository
|
||||
|
@ -15,7 +17,7 @@ interface ContentSeriesQueryRepository {
|
|||
isAuth: Boolean,
|
||||
offset: Long,
|
||||
limit: Long
|
||||
): List<Series>
|
||||
): List<GetSeriesListRawItem>
|
||||
}
|
||||
|
||||
class ContentSeriesQueryRepositoryImpl(
|
||||
|
@ -43,7 +45,10 @@ class ContentSeriesQueryRepositoryImpl(
|
|||
isAuth: Boolean,
|
||||
offset: Long,
|
||||
limit: Long
|
||||
): List<Series> {
|
||||
): List<GetSeriesListRawItem> {
|
||||
val qMember = QMember.member
|
||||
val qSeriesGenre = QSeriesGenre.seriesGenre
|
||||
|
||||
var where = series.member.id.eq(creatorId)
|
||||
.and(series.isActive.isTrue)
|
||||
|
||||
|
@ -52,7 +57,23 @@ class ContentSeriesQueryRepositoryImpl(
|
|||
}
|
||||
|
||||
return queryFactory
|
||||
.selectFrom(series)
|
||||
.select(
|
||||
QGetSeriesListRawItem(
|
||||
series.id,
|
||||
series.title,
|
||||
series.coverImage.prepend("/").prepend(imageHost),
|
||||
series.publishedDaysOfWeek,
|
||||
series.state,
|
||||
qSeriesGenre.genre,
|
||||
series.isAdult,
|
||||
qMember.id,
|
||||
qMember.nickname,
|
||||
qMember.profileImage.prepend("/").prepend(imageHost)
|
||||
)
|
||||
)
|
||||
.from(series)
|
||||
.innerJoin(series.member, qMember)
|
||||
.innerJoin(series.genre, qSeriesGenre)
|
||||
.where(where)
|
||||
.fetch()
|
||||
}
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package kr.co.vividnext.sodalive.content.series
|
||||
|
||||
import kr.co.vividnext.sodalive.content.series.content.ContentSeriesContentRepository
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesPublishedDaysOfWeek
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesSortType
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesState
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.stereotype.Service
|
||||
|
@ -34,24 +32,11 @@ class ContentSeriesService(
|
|||
)
|
||||
|
||||
val items = rawItems
|
||||
.map {
|
||||
GetSeriesListResponse.SeriesListItem(
|
||||
seriesId = it.id!!,
|
||||
title = it.title,
|
||||
coverImage = "$coverImageHost/${it.coverImage!!}",
|
||||
publishedDaysOfWeek = publishedDaysOfWeekText(it.publishedDaysOfWeek),
|
||||
isComplete = it.state == SeriesState.COMPLETE,
|
||||
creator = GetSeriesListResponse.SeriesListItemCreator(
|
||||
creatorId = it.member!!.id!!,
|
||||
nickname = it.member!!.nickname,
|
||||
profileImage = "$coverImageHost/${it.member!!.profileImage!!}"
|
||||
)
|
||||
)
|
||||
}
|
||||
.map { it.toSeriesListItem() }
|
||||
.map {
|
||||
it.numberOfContent = seriesContentRepository.getContentCount(
|
||||
seriesId = it.seriesId,
|
||||
isAdult = member.auth == null
|
||||
isAdult = member.auth != null
|
||||
)
|
||||
|
||||
it
|
||||
|
@ -71,27 +56,4 @@ class ContentSeriesService(
|
|||
|
||||
return GetSeriesListResponse(totalCount, items)
|
||||
}
|
||||
|
||||
private fun publishedDaysOfWeekText(publishedDaysOfWeek: Set<SeriesPublishedDaysOfWeek>): String {
|
||||
val dayOfWeekText = publishedDaysOfWeek.toList().sortedBy { it.ordinal }
|
||||
.map {
|
||||
when (it) {
|
||||
SeriesPublishedDaysOfWeek.SUN -> "일"
|
||||
SeriesPublishedDaysOfWeek.MON -> "월"
|
||||
SeriesPublishedDaysOfWeek.TUE -> "화"
|
||||
SeriesPublishedDaysOfWeek.WED -> "수"
|
||||
SeriesPublishedDaysOfWeek.THU -> "목"
|
||||
SeriesPublishedDaysOfWeek.FRI -> "금"
|
||||
SeriesPublishedDaysOfWeek.SAT -> "토"
|
||||
SeriesPublishedDaysOfWeek.RANDOM -> "랜덤"
|
||||
}
|
||||
}
|
||||
.joinToString(", ") { it }
|
||||
|
||||
return if (publishedDaysOfWeek.contains(SeriesPublishedDaysOfWeek.RANDOM)) {
|
||||
dayOfWeekText
|
||||
} else {
|
||||
"매주 ${dayOfWeekText}요일"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue