관리자

- 매체 파트너 코드(pid) 수정 API
This commit is contained in:
Klaus 2025-03-04 23:53:22 +09:00
parent d74f1ddb81
commit 5db181aa74
4 changed files with 65 additions and 7 deletions

View File

@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.admin.marketing
import kr.co.vividnext.sodalive.common.ApiResponse
import org.springframework.security.access.prepost.PreAuthorize
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.PutMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
@ -15,4 +16,9 @@ class AdminAdMediaPartnerController(private val service: AdminAdMediaPartnerServ
fun createMediaPartner(
@RequestBody request: CreateAdMediaPartnerRequest
) = ApiResponse.ok(service.createMediaPartner(request))
@PutMapping
fun updateMediaPartner(
@RequestBody request: UpdateAdMediaPartnerRequest
) = ApiResponse.ok(service.updateMediaPartner(request))
}

View File

@ -1,12 +1,50 @@
package kr.co.vividnext.sodalive.admin.marketing
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.marketing.AdMediaPartnerRepository
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
@Service
class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepository) {
@Transactional
fun createMediaPartner(request: CreateAdMediaPartnerRequest) {
val mediaPartner = request.toEntity()
repository.save(mediaPartner)
}
@Transactional
fun updateMediaPartner(request: UpdateAdMediaPartnerRequest) {
val entity = repository.findByIdOrNull(request.id)
?: throw SodaException("잘못된 접근입니다")
if (request.mediaGroup != null) {
entity.mediaGroup = request.mediaGroup
}
if (request.pid != null) {
entity.pid = request.pid
}
if (request.pidName != null) {
entity.pidName = request.pidName
}
if (request.type != null) {
entity.type = request.type
}
if (request.utmSource != null) {
entity.utmSource = request.utmSource
}
if (request.utmMedium != null) {
entity.utmMedium = request.utmMedium
}
if (request.isActive != null) {
entity.isActive = request.isActive
}
}
}

View File

@ -0,0 +1,14 @@
package kr.co.vividnext.sodalive.admin.marketing
import kr.co.vividnext.sodalive.marketing.AdMediaPartnerType
data class UpdateAdMediaPartnerRequest(
val id: Long,
val mediaGroup: String?,
val pid: String?,
val pidName: String?,
val type: AdMediaPartnerType?,
val utmSource: String?,
val utmMedium: String?,
val isActive: Boolean?
)

View File

@ -7,14 +7,14 @@ import javax.persistence.Enumerated
@Entity
data class AdMediaPartner(
val mediaGroup: String,
val pid: String,
val pidName: String,
var mediaGroup: String,
var pid: String,
var pidName: String,
@Enumerated(value = EnumType.STRING)
val type: AdMediaPartnerType,
val utmSource: String,
val utmMedium: String,
val isActive: Boolean = true
var type: AdMediaPartnerType,
var utmSource: String,
var utmMedium: String,
var isActive: Boolean = true
) : BaseEntity()
enum class AdMediaPartnerType {