parent
d74f1ddb81
commit
5db181aa74
|
@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.admin.marketing
|
||||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||||
import org.springframework.security.access.prepost.PreAuthorize
|
import org.springframework.security.access.prepost.PreAuthorize
|
||||||
import org.springframework.web.bind.annotation.PostMapping
|
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.RequestBody
|
||||||
import org.springframework.web.bind.annotation.RequestMapping
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
@ -15,4 +16,9 @@ class AdminAdMediaPartnerController(private val service: AdminAdMediaPartnerServ
|
||||||
fun createMediaPartner(
|
fun createMediaPartner(
|
||||||
@RequestBody request: CreateAdMediaPartnerRequest
|
@RequestBody request: CreateAdMediaPartnerRequest
|
||||||
) = ApiResponse.ok(service.createMediaPartner(request))
|
) = ApiResponse.ok(service.createMediaPartner(request))
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
fun updateMediaPartner(
|
||||||
|
@RequestBody request: UpdateAdMediaPartnerRequest
|
||||||
|
) = ApiResponse.ok(service.updateMediaPartner(request))
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,50 @@
|
||||||
package kr.co.vividnext.sodalive.admin.marketing
|
package kr.co.vividnext.sodalive.admin.marketing
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.common.SodaException
|
||||||
import kr.co.vividnext.sodalive.marketing.AdMediaPartnerRepository
|
import kr.co.vividnext.sodalive.marketing.AdMediaPartnerRepository
|
||||||
|
import org.springframework.data.repository.findByIdOrNull
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
import org.springframework.transaction.annotation.Transactional
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepository) {
|
class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepository) {
|
||||||
|
@Transactional
|
||||||
fun createMediaPartner(request: CreateAdMediaPartnerRequest) {
|
fun createMediaPartner(request: CreateAdMediaPartnerRequest) {
|
||||||
val mediaPartner = request.toEntity()
|
val mediaPartner = request.toEntity()
|
||||||
repository.save(mediaPartner)
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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?
|
||||||
|
)
|
|
@ -7,14 +7,14 @@ import javax.persistence.Enumerated
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
data class AdMediaPartner(
|
data class AdMediaPartner(
|
||||||
val mediaGroup: String,
|
var mediaGroup: String,
|
||||||
val pid: String,
|
var pid: String,
|
||||||
val pidName: String,
|
var pidName: String,
|
||||||
@Enumerated(value = EnumType.STRING)
|
@Enumerated(value = EnumType.STRING)
|
||||||
val type: AdMediaPartnerType,
|
var type: AdMediaPartnerType,
|
||||||
val utmSource: String,
|
var utmSource: String,
|
||||||
val utmMedium: String,
|
var utmMedium: String,
|
||||||
val isActive: Boolean = true
|
var isActive: Boolean = true
|
||||||
) : BaseEntity()
|
) : BaseEntity()
|
||||||
|
|
||||||
enum class AdMediaPartnerType {
|
enum class AdMediaPartnerType {
|
||||||
|
|
Loading…
Reference in New Issue