마케팅 - 매체 파트너 코드 기록

- 마케팅 PID 가 변경될 때 LOGIN 기록
This commit is contained in:
Klaus 2025-03-11 15:27:26 +09:00
parent 48677a5a24
commit 84de4e0c5a
3 changed files with 26 additions and 8 deletions

View File

@ -42,5 +42,8 @@ enum class AdTrackingHistoryType {
FIRST_PAYMENT,
// 재결제
REPEAT_PAYMENT
REPEAT_PAYMENT,
// 자동로그인
LOGIN
}

View File

@ -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")

View File

@ -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
}
}