diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/marketing/AdTrackingHistory.kt b/src/main/kotlin/kr/co/vividnext/sodalive/marketing/AdTrackingHistory.kt index 5a1eb2b..8578245 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/marketing/AdTrackingHistory.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/marketing/AdTrackingHistory.kt @@ -42,5 +42,8 @@ enum class AdTrackingHistoryType { FIRST_PAYMENT, // 재결제 - REPEAT_PAYMENT + REPEAT_PAYMENT, + + // 자동로그인 + LOGIN } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt index 54f1f8b..61000c0 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt @@ -135,13 +135,24 @@ class MemberController( ) = run { if (member == null) throw SodaException("로그인 정보를 확인해주세요.") - ApiResponse.ok( - service.updateMarketingInfo( - memberId = member.id!!, - adid = request.adid, - pid = request.pid - ) + val memberId = member.id!! + val marketingPid = request.pid + + val changedMarketingPid = service.updateMarketingInfo( + memberId = memberId, + adid = request.adid, + pid = marketingPid ) + + if (changedMarketingPid) { + trackingService.saveTrackingHistory( + pid = marketingPid, + type = AdTrackingHistoryType.LOGIN, + memberId = memberId + ) + } + + ApiResponse.ok(Unit) } @PutMapping("/adid/update") diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt index e646fac..81af3f0 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt @@ -648,7 +648,7 @@ class MemberService( } @Transactional - fun updateMarketingInfo(memberId: Long, adid: String, pid: String) { + fun updateMarketingInfo(memberId: Long, adid: String, pid: String): Boolean { val member = repository.findByIdOrNull(id = memberId) ?: throw SodaException("로그인 정보를 확인해주세요.") @@ -659,6 +659,10 @@ class MemberService( if (pid != member.activePid && pid.isNotBlank()) { member.activePid = pid member.partnerExpirationDatetime = LocalDateTime.now().plusYears(1) + + return true } + + return false } }