첫 충전 이벤트 - 본인인증한 전체 계정 중 첫 충전 시에만 첫충전 이벤트 적용

This commit is contained in:
2023-08-25 01:09:11 +09:00
parent d414e3b300
commit eab9ac5f05
3 changed files with 52 additions and 6 deletions

View File

@@ -1,7 +1,36 @@
package kr.co.vividnext.sodalive.member.auth
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.member.QMember.member
import kr.co.vividnext.sodalive.member.auth.QAuth.auth
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
import java.time.LocalDateTime
@Repository
interface AuthRepository : JpaRepository<Auth, Long>
interface AuthRepository : JpaRepository<Auth, Long>, AuthQueryRepository
interface AuthQueryRepository {
fun getOldestCreatedAtByDi(di: String): LocalDateTime
fun getMemberIdsByDi(di: String): List<Long>
}
class AuthQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : AuthQueryRepository {
override fun getOldestCreatedAtByDi(di: String): LocalDateTime {
return queryFactory
.select(auth.createdAt)
.from(auth)
.where(auth.di.eq(di))
.orderBy(auth.createdAt.asc())
.fetchFirst()
}
override fun getMemberIdsByDi(di: String): List<Long> {
return queryFactory
.select(member.id)
.from(member)
.leftJoin(member.auth, auth)
.where(auth.di.eq(di))
.fetch()
}
}