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

- 마케팅 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, FIRST_PAYMENT,
// 재결제 // 재결제
REPEAT_PAYMENT REPEAT_PAYMENT,
// 자동로그인
LOGIN
} }

View File

@ -135,13 +135,24 @@ class MemberController(
) = run { ) = run {
if (member == null) throw SodaException("로그인 정보를 확인해주세요.") if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
ApiResponse.ok( val memberId = member.id!!
service.updateMarketingInfo( val marketingPid = request.pid
memberId = member.id!!,
adid = request.adid, val changedMarketingPid = service.updateMarketingInfo(
pid = request.pid memberId = memberId,
) adid = request.adid,
pid = marketingPid
) )
if (changedMarketingPid) {
trackingService.saveTrackingHistory(
pid = marketingPid,
type = AdTrackingHistoryType.LOGIN,
memberId = memberId
)
}
ApiResponse.ok(Unit)
} }
@PutMapping("/adid/update") @PutMapping("/adid/update")

View File

@ -648,7 +648,7 @@ class MemberService(
} }
@Transactional @Transactional
fun updateMarketingInfo(memberId: Long, adid: String, pid: String) { fun updateMarketingInfo(memberId: Long, adid: String, pid: String): Boolean {
val member = repository.findByIdOrNull(id = memberId) val member = repository.findByIdOrNull(id = memberId)
?: throw SodaException("로그인 정보를 확인해주세요.") ?: throw SodaException("로그인 정보를 확인해주세요.")
@ -659,6 +659,10 @@ class MemberService(
if (pid != member.activePid && pid.isNotBlank()) { if (pid != member.activePid && pid.isNotBlank()) {
member.activePid = pid member.activePid = pid
member.partnerExpirationDatetime = LocalDateTime.now().plusYears(1) member.partnerExpirationDatetime = LocalDateTime.now().plusYears(1)
return true
} }
return false
} }
} }