회원가입 로직에 광고 트래킹 적용

- 광고 트래킹 관련 Entity 추가
- pid가 현재 광고 중인 pid인 경우 트래킹 로그 생성
This commit is contained in:
2025-03-02 23:45:08 +09:00
parent 801b9934d6
commit 3216c73ee8
11 changed files with 177 additions and 4 deletions

View File

@@ -2,9 +2,12 @@ package kr.co.vividnext.sodalive.member
import kr.co.vividnext.sodalive.common.ApiResponse
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.marketing.AdTrackingHistoryType
import kr.co.vividnext.sodalive.marketing.AdTrackingService
import kr.co.vividnext.sodalive.member.block.MemberBlockRequest
import kr.co.vividnext.sodalive.member.following.CreatorFollowRequest
import kr.co.vividnext.sodalive.member.login.LoginRequest
import kr.co.vividnext.sodalive.member.login.LoginResponse
import kr.co.vividnext.sodalive.member.notification.UpdateNotificationSettingRequest
import org.springframework.data.domain.Pageable
import org.springframework.security.core.annotation.AuthenticationPrincipal
@@ -23,7 +26,10 @@ import org.springframework.web.multipart.MultipartFile
@RestController
@RequestMapping("/member")
class MemberController(private val service: MemberService) {
class MemberController(
private val service: MemberService,
private val trackingService: AdTrackingService
) {
@GetMapping("/check/email")
fun checkEmail(@RequestParam email: String) = service.duplicateCheckEmail(email)
@@ -40,7 +46,19 @@ class MemberController(private val service: MemberService) {
fun signUp(
@RequestPart("profileImage", required = false) profileImage: MultipartFile? = null,
@RequestPart("request") requestString: String
) = service.signUp(profileImage, requestString)
): ApiResponse<LoginResponse> {
val response = service.signUp(profileImage, requestString)
if (!response.marketingPid.isNullOrBlank()) {
trackingService.saveTrackingHistory(
pid = response.marketingPid,
type = AdTrackingHistoryType.SIGNUP,
memberId = response.memberId
)
}
return ApiResponse.ok(message = "회원가입을 축하드립니다.", data = response.loginResponse)
}
@PostMapping("/login")
fun login(@RequestBody loginRequest: LoginRequest) = service.login(loginRequest)