feat(agent-read): 관리자 에이전트 닉네임 검색 조회를 추가한다

This commit is contained in:
2026-04-11 21:05:27 +09:00
parent 535f5d16cc
commit 765c087af3
4 changed files with 79 additions and 8 deletions

View File

@@ -3,6 +3,8 @@ package kr.co.vividnext.sodalive.admin.partner.agent.read
import com.querydsl.core.types.dsl.BooleanExpression
import com.querydsl.core.types.dsl.Expressions
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.admin.member.AdminSimpleMemberResponse
import kr.co.vividnext.sodalive.admin.member.QAdminSimpleMemberResponse
import kr.co.vividnext.sodalive.member.MemberRole
import kr.co.vividnext.sodalive.member.QMember
import kr.co.vividnext.sodalive.member.QMember.member
@@ -136,6 +138,25 @@ class AdminAgentReadQueryRepository(
.fetch()
}
fun searchAgentByNickname(searchWord: String, limit: Long): List<AdminSimpleMemberResponse> {
return queryFactory
.select(
QAdminSimpleMemberResponse(
member.id,
member.nickname
)
)
.from(member)
.where(
member.role.eq(MemberRole.AGENT)
.and(member.nickname.contains(searchWord))
.and(member.isActive.isTrue)
)
.orderBy(member.id.desc())
.limit(limit)
.fetch()
}
fun getAssignedCreatorTotalCount(agentId: Long, currentTime: LocalDateTime): Int {
return queryFactory
.select(agentCreatorRelation.id.count())

View File

@@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.admin.partner.agent.read
import kr.co.vividnext.sodalive.admin.member.AdminSimpleMemberResponse
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.member.MemberRepository
import kr.co.vividnext.sodalive.member.MemberRole
@@ -44,6 +45,13 @@ class AdminAgentReadService(
)
}
@Transactional(readOnly = true)
fun searchAgentByNickname(searchWord: String, size: Int = 20): List<AdminSimpleMemberResponse> {
if (searchWord.length < 2) throw SodaException(messageKey = "admin.member.search_word_min_length")
val limit = if (size <= 0) 20 else size
return queryRepository.searchAgentByNickname(searchWord = searchWord, limit = limit.toLong())
}
@Transactional(readOnly = true)
fun getAssignedCreators(agentId: Long, offset: Long, limit: Long): GetAdminAgentAssignedCreatorResponse {
validateAgent(agentId)