콘텐츠 메인 - 새로운 콘텐츠
- 본인인증을 했더라도 19금 콘텐츠 보기를 활성화 하지 않으면 19금 콘텐츠가 보이지 않도록 수정
This commit is contained in:
		| @@ -64,6 +64,7 @@ interface AudioContentQueryRepository { | ||||
|         theme: String = "", | ||||
|         sortType: SortType = SortType.NEWEST, | ||||
|         isAdult: Boolean = false, | ||||
|         contentType: ContentType = ContentType.ALL, | ||||
|         offset: Long = 0, | ||||
|         limit: Long = 20 | ||||
|     ): List<GetAudioContentMainItem> | ||||
| @@ -340,6 +341,7 @@ class AudioContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) | ||||
|         theme: String, | ||||
|         sortType: SortType, | ||||
|         isAdult: Boolean, | ||||
|         contentType: ContentType, | ||||
|         offset: Long, | ||||
|         limit: Long | ||||
|     ): List<GetAudioContentMainItem> { | ||||
| @@ -368,6 +370,12 @@ class AudioContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) | ||||
|  | ||||
|         if (!isAdult) { | ||||
|             where = where.and(audioContent.isAdult.isFalse) | ||||
|         } else { | ||||
|             if (contentType != ContentType.ALL) { | ||||
|                 where = where.and( | ||||
|                     audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 1 else 0) | ||||
|                 ) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (theme.isNotBlank()) { | ||||
|   | ||||
| @@ -63,12 +63,22 @@ class AudioContentMainController( | ||||
|     @GetMapping("/new") | ||||
|     fun getNewContentByTheme( | ||||
|         @RequestParam("theme") theme: String, | ||||
|         @RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null, | ||||
|         @RequestParam("contentType", required = false) contentType: ContentType? = null, | ||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, | ||||
|         pageable: Pageable | ||||
|     ) = run { | ||||
|         if (member == null) throw SodaException("로그인 정보를 확인해주세요.") | ||||
|  | ||||
|         ApiResponse.ok(service.getNewContentByTheme(theme, member, pageable)) | ||||
|         ApiResponse.ok( | ||||
|             service.getNewContentByTheme( | ||||
|                 theme, | ||||
|                 isAdultContentVisible = isAdultContentVisible ?: true, | ||||
|                 contentType = contentType ?: ContentType.ALL, | ||||
|                 member, | ||||
|                 pageable | ||||
|             ) | ||||
|         ) | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/theme") | ||||
|   | ||||
| @@ -31,18 +31,23 @@ class AudioContentMainService( | ||||
|     } | ||||
|  | ||||
|     @Transactional(readOnly = true) | ||||
|     fun getNewContentByTheme(theme: String, member: Member, pageable: Pageable): List<GetAudioContentMainItem> { | ||||
|     fun getNewContentByTheme( | ||||
|         theme: String, | ||||
|         isAdultContentVisible: Boolean, | ||||
|         contentType: ContentType, | ||||
|         member: Member, | ||||
|         pageable: Pageable | ||||
|     ): List<GetAudioContentMainItem> { | ||||
|         return repository.findByTheme( | ||||
|             cloudfrontHost = imageHost, | ||||
|             memberId = member.id!!, | ||||
|             theme = theme, | ||||
|             isAdult = member.auth != null, | ||||
|             isAdult = member.auth != null && isAdultContentVisible, | ||||
|             contentType = contentType, | ||||
|             offset = pageable.offset, | ||||
|             limit = pageable.pageSize.toLong() | ||||
|         ) | ||||
|             .asSequence() | ||||
|             .filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.creatorId) } | ||||
|             .toList() | ||||
|     } | ||||
|  | ||||
|     @Transactional(readOnly = true) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user