From 83a938dc533ef3ac6f8c4c08e0037dcc13d7e298 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 7 Mar 2025 02:31:40 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A7=88=EC=BC=80=ED=8C=85=20-=20=EB=A7=A4?= =?UTF-8?q?=EC=B2=B4=20=ED=8C=8C=ED=8A=B8=EB=84=88=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20API=20-=20link=20=EA=B0=92=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20-=20=EC=BF=BC=EB=A6=AC=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=EC=9D=98=20=ED=82=A4=EC=99=80=20=EA=B0=92=EC=9D=84=20?= =?UTF-8?q?=EA=B0=81=EA=B0=81=20=EC=9D=B8=EC=BD=94=EB=94=A9=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../marketing/AdminAdMediaPartnerService.kt | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/marketing/AdminAdMediaPartnerService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/marketing/AdminAdMediaPartnerService.kt index 2124b8f..560bf2a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/marketing/AdminAdMediaPartnerService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/marketing/AdminAdMediaPartnerService.kt @@ -6,6 +6,8 @@ import kr.co.vividnext.sodalive.marketing.AdMediaPartnerType import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional +import java.net.URLEncoder +import java.nio.charset.StandardCharsets @Service class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepository) { @@ -61,16 +63,17 @@ class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepositor AdMediaPartnerType.MAIN -> "main" } - val link = "$oneLinkHost?" + - "af_dp=voiceon://" + - "&deep_link_value=$deepLinkValue" + - "&deep_link_sub1=${it.pid}" + - "&deep_link_sub2=${it.utmSource}" + - "&deep_link_sub3=${it.utmMedium}" + - "&deep_link_sub4=${it.pidName}" + - "&utm_source=${it.utmSource}" + - "&utm_medium=${it.utmMedium}" + - "&utm_campaign=${it.pid}" + val params = mapOf( + "deep_link_value" to deepLinkValue, + "&deep_link_sub1" to it.pid, + "&deep_link_sub2" to it.utmSource, + "&deep_link_sub3" to it.utmMedium, + "&deep_link_sub4" to it.pidName, + "&utm_source" to it.utmSource, + "&utm_medium" to it.utmMedium, + "&utm_campaign" to it.pid + ) + val link = createUrl(baseUrl = ONE_LINK_HOST, params = params) it.link = link it @@ -82,7 +85,16 @@ class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepositor ) } + private fun createUrl(baseUrl: String, params: Map): String { + val encodedParams = params.map { (key, value) -> + "${URLEncoder.encode(key, StandardCharsets.UTF_8.toString())}=" + + URLEncoder.encode(value, StandardCharsets.UTF_8.toString()) + }.joinToString("&") + + return "$baseUrl?$encodedParams" + } + companion object { - private val oneLinkHost = "https://voiceon.onelink.me/RkTm" + private const val ONE_LINK_HOST = "https://voiceon.onelink.me/RkTm" } }