Compare commits

...

3 Commits

3 changed files with 30 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.can.use.CanUsage
import kr.co.vividnext.sodalive.can.use.QUseCan.useCan
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.content.QAudioContent.audioContent
import kr.co.vividnext.sodalive.explorer.follower.GetFollowerListDto
import kr.co.vividnext.sodalive.explorer.follower.QGetFollowerListDto
import kr.co.vividnext.sodalive.explorer.profile.ChannelNotice
@ -364,6 +365,7 @@ class ExplorerQueryRepository(
val isPaid = if (it.channelName != null) {
val useCan = queryFactory
.selectFrom(useCan)
.innerJoin(useCan.member, member)
.where(
useCan.member.id.eq(member.id)
.and(useCan.room.id.eq(it.id!!))
@ -597,4 +599,15 @@ class ExplorerQueryRepository(
.where(channelNotice.member.id.eq(creatorId))
.fetchFirst()
}
fun getContentCount(creatorId: Long): Long? {
return queryFactory
.select(audioContent.id.count())
.from(audioContent)
.where(
audioContent.isActive.isTrue
.and(audioContent.member.id.eq(creatorId))
)
.fetchFirst()
}
}

View File

@ -1,6 +1,8 @@
package kr.co.vividnext.sodalive.explorer
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.content.AudioContentService
import kr.co.vividnext.sodalive.content.SortType
import kr.co.vividnext.sodalive.explorer.follower.GetFollowerListResponse
import kr.co.vividnext.sodalive.explorer.follower.GetFollowerListResponseItem
import kr.co.vividnext.sodalive.explorer.profile.ChannelNotice
@ -22,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional
@Transactional(readOnly = true)
class ExplorerService(
private val memberService: MemberService,
private val audioContentService: AudioContentService,
private val queryRepository: ExplorerQueryRepository,
private val cheersRepository: CreatorCheersRepository,
private val noticeRepository: ChannelNoticeRepository,
@ -185,6 +188,15 @@ class ExplorerService(
limit = 4
)
// 오디오 콘텐츠
val contentList = audioContentService.getAudioContentList(
creatorId = creatorId,
sortType = SortType.NEWEST,
member = member,
offset = 0,
limit = 4
).items
// 공지사항
val notice = queryRepository.getNoticeString(creatorId)
@ -198,7 +210,7 @@ class ExplorerService(
val liveCount = queryRepository.getLiveCount(creatorId) ?: 0
val liveTime = queryRepository.getLiveTime(creatorId)
val liveContributorCount = queryRepository.getLiveContributorCount(creatorId) ?: 0
val contentCount = 0L
val contentCount = queryRepository.getContentCount(creatorId) ?: 0
return GetCreatorProfileResponse(
creator = CreatorResponse(
@ -221,6 +233,7 @@ class ExplorerService(
userDonationRanking = userDonationRanking,
similarCreatorList = similarCreatorList,
liveRoomList = liveRoomList,
contentList = contentList,
notice = notice,
cheers = cheers,
activitySummary = GetCreatorActivitySummary(

View File

@ -1,10 +1,13 @@
package kr.co.vividnext.sodalive.explorer
import kr.co.vividnext.sodalive.content.GetAudioContentListItem
data class GetCreatorProfileResponse(
val creator: CreatorResponse,
val userDonationRanking: List<UserDonationRankingResponse>,
val similarCreatorList: List<SimilarCreatorResponse>,
val liveRoomList: List<LiveRoomResponse>,
val contentList: List<GetAudioContentListItem>,
val notice: String,
val cheers: GetCheersResponse,
val activitySummary: GetCreatorActivitySummary,