commit
6b307a6e17
|
@ -23,24 +23,27 @@ class AdminSignatureCanController(private val service: AdminSignatureCanService)
|
||||||
fun createSignatureCan(
|
fun createSignatureCan(
|
||||||
@RequestParam("can") can: Int,
|
@RequestParam("can") can: Int,
|
||||||
@RequestParam("image") image: MultipartFile,
|
@RequestParam("image") image: MultipartFile,
|
||||||
@RequestParam("creator_id") creatorId: Long
|
@RequestParam("creator_id") creatorId: Long,
|
||||||
|
@RequestParam("isAdult", required = false) isAdult: Boolean = false
|
||||||
) = ApiResponse.ok(
|
) = ApiResponse.ok(
|
||||||
service.createSignatureCan(can = can, creatorId = creatorId, image = image),
|
service.createSignatureCan(can = can, creatorId = creatorId, image = image, isAdult = isAdult),
|
||||||
"등록되었습니다."
|
"등록되었습니다."
|
||||||
)
|
)
|
||||||
|
|
||||||
@PutMapping
|
@PutMapping
|
||||||
fun modifySignatureCan(
|
fun modifySignatureCan(
|
||||||
@RequestParam("id") id: Long,
|
@RequestParam("id") id: Long,
|
||||||
|
@RequestParam("can", required = false) can: Int?,
|
||||||
@RequestParam("image", required = false) image: MultipartFile?,
|
@RequestParam("image", required = false) image: MultipartFile?,
|
||||||
@RequestParam("isActive", required = false) isActive: Boolean?
|
@RequestParam("isActive", required = false) isActive: Boolean?,
|
||||||
|
@RequestParam("isAdult", required = false) isAdult: Boolean?
|
||||||
) = run {
|
) = run {
|
||||||
if (image == null && isActive == null) {
|
if (can == null && image == null && isActive == null && isAdult == null) {
|
||||||
throw SodaException("변경사항이 없습니다.")
|
throw SodaException("변경사항이 없습니다.")
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiResponse.ok(
|
ApiResponse.ok(
|
||||||
service.modifySignatureCan(id = id, image = image, isActive = isActive),
|
service.modifySignatureCan(id = id, can = can, image = image, isActive = isActive, isAdult = isAdult),
|
||||||
"수정되었습니다."
|
"수정되었습니다."
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ class AdminSignatureCanQueryRepositoryImpl(
|
||||||
signatureCan.id,
|
signatureCan.id,
|
||||||
signatureCan.can,
|
signatureCan.can,
|
||||||
signatureCan.image.prepend("/").prepend(imageHost),
|
signatureCan.image.prepend("/").prepend(imageHost),
|
||||||
|
signatureCan.isAdult,
|
||||||
member.nickname
|
member.nickname
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -37,13 +37,13 @@ class AdminSignatureCanService(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
fun createSignatureCan(can: Int, creatorId: Long, image: MultipartFile) {
|
fun createSignatureCan(can: Int, creatorId: Long, image: MultipartFile, isAdult: Boolean) {
|
||||||
if (creatorId < 1) throw SodaException("올바른 크리에이터를 선택해 주세요.")
|
if (creatorId < 1) throw SodaException("올바른 크리에이터를 선택해 주세요.")
|
||||||
|
|
||||||
val creator = memberRepository.findCreatorByIdOrNull(memberId = creatorId)
|
val creator = memberRepository.findCreatorByIdOrNull(memberId = creatorId)
|
||||||
?: throw SodaException("올바른 크리에이터를 선택해 주세요.")
|
?: throw SodaException("올바른 크리에이터를 선택해 주세요.")
|
||||||
|
|
||||||
val signatureCan = SignatureCan(can = can)
|
val signatureCan = SignatureCan(can = can, isAdult = isAdult)
|
||||||
signatureCan.creator = creator
|
signatureCan.creator = creator
|
||||||
repository.save(signatureCan)
|
repository.save(signatureCan)
|
||||||
|
|
||||||
|
@ -60,14 +60,22 @@ class AdminSignatureCanService(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
fun modifySignatureCan(id: Long, image: MultipartFile?, isActive: Boolean?) {
|
fun modifySignatureCan(id: Long, can: Int?, image: MultipartFile?, isActive: Boolean?, isAdult: Boolean?) {
|
||||||
val signatureCan = repository.findByIdOrNull(id = id)
|
val signatureCan = repository.findByIdOrNull(id = id)
|
||||||
?: throw SodaException("잘못된 요청입니다.")
|
?: throw SodaException("잘못된 요청입니다.")
|
||||||
|
|
||||||
|
if (can != null) {
|
||||||
|
signatureCan.can = can
|
||||||
|
}
|
||||||
|
|
||||||
if (isActive != null) {
|
if (isActive != null) {
|
||||||
signatureCan.isActive = isActive
|
signatureCan.isActive = isActive
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isAdult != null) {
|
||||||
|
signatureCan.isAdult = isAdult
|
||||||
|
}
|
||||||
|
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
val metadata = ObjectMetadata()
|
val metadata = ObjectMetadata()
|
||||||
metadata.contentLength = image.size
|
metadata.contentLength = image.size
|
||||||
|
|
|
@ -11,5 +11,6 @@ data class GetSignatureCanListItem @QueryProjection constructor(
|
||||||
val id: Long,
|
val id: Long,
|
||||||
val can: Int,
|
val can: Int,
|
||||||
val image: String,
|
val image: String,
|
||||||
|
val isAdult: Boolean,
|
||||||
val nickname: String
|
val nickname: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -32,12 +32,13 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature
|
||||||
fun createSignature(
|
fun createSignature(
|
||||||
@RequestParam("can") can: Int,
|
@RequestParam("can") can: Int,
|
||||||
@RequestParam("image") image: MultipartFile,
|
@RequestParam("image") image: MultipartFile,
|
||||||
|
@RequestParam("isAdult", required = false) isAdult: Boolean = false,
|
||||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||||
) = run {
|
) = run {
|
||||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||||
|
|
||||||
ApiResponse.ok(
|
ApiResponse.ok(
|
||||||
service.createSignature(can = can, image = image, memberId = member.id!!),
|
service.createSignature(can = can, image = image, isAdult = isAdult, memberId = member.id!!),
|
||||||
"등록되었습니다."
|
"등록되었습니다."
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -45,15 +46,26 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature
|
||||||
@PutMapping
|
@PutMapping
|
||||||
fun modifySignature(
|
fun modifySignature(
|
||||||
@RequestParam("id") id: Long,
|
@RequestParam("id") id: Long,
|
||||||
|
@RequestParam("can", required = false) can: Int?,
|
||||||
@RequestParam("image", required = false) image: MultipartFile?,
|
@RequestParam("image", required = false) image: MultipartFile?,
|
||||||
@RequestParam("isActive", required = false) isActive: Boolean?,
|
@RequestParam("isActive", required = false) isActive: Boolean?,
|
||||||
|
@RequestParam("isAdult", required = false) isAdult: Boolean?,
|
||||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||||
) = run {
|
) = run {
|
||||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||||
if (image == null && isActive == null) throw SodaException("변경사항이 없습니다.")
|
if (can == null && image == null && isActive == null && isAdult == null) {
|
||||||
|
throw SodaException("변경사항이 없습니다.")
|
||||||
|
}
|
||||||
|
|
||||||
ApiResponse.ok(
|
ApiResponse.ok(
|
||||||
service.modifySignature(id = id, image = image, isActive = isActive, memberId = member.id!!),
|
service.modifySignature(
|
||||||
|
id = id,
|
||||||
|
can = can,
|
||||||
|
image = image,
|
||||||
|
isActive = isActive,
|
||||||
|
isAdult = isAdult,
|
||||||
|
memberId = member.id!!
|
||||||
|
),
|
||||||
if (isActive == false) "삭제되었습니다." else "수정되었습니다."
|
if (isActive == false) "삭제되었습니다." else "수정되었습니다."
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ class CreatorAdminSignatureQueryRepositoryImpl(
|
||||||
signatureCan.id,
|
signatureCan.id,
|
||||||
signatureCan.can,
|
signatureCan.can,
|
||||||
signatureCan.image.prepend("/").prepend(imageHost),
|
signatureCan.image.prepend("/").prepend(imageHost),
|
||||||
|
signatureCan.isAdult,
|
||||||
member.nickname
|
member.nickname
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -37,11 +37,11 @@ class CreatorAdminSignatureService(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
fun createSignature(can: Int, image: MultipartFile, memberId: Long) {
|
fun createSignature(can: Int, image: MultipartFile, memberId: Long, isAdult: Boolean) {
|
||||||
val member = memberRepository.findCreatorByIdOrNull(memberId = memberId)
|
val member = memberRepository.findCreatorByIdOrNull(memberId = memberId)
|
||||||
?: throw SodaException("잘못된 접근입니다.")
|
?: throw SodaException("잘못된 접근입니다.")
|
||||||
|
|
||||||
val signatureCan = SignatureCan(can = can)
|
val signatureCan = SignatureCan(can = can, isAdult = isAdult)
|
||||||
signatureCan.creator = member
|
signatureCan.creator = member
|
||||||
repository.save(signatureCan)
|
repository.save(signatureCan)
|
||||||
|
|
||||||
|
@ -58,14 +58,29 @@ class CreatorAdminSignatureService(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
fun modifySignature(id: Long, image: MultipartFile?, isActive: Boolean?, memberId: Long) {
|
fun modifySignature(
|
||||||
|
id: Long,
|
||||||
|
can: Int?,
|
||||||
|
image: MultipartFile?,
|
||||||
|
isActive: Boolean?,
|
||||||
|
memberId: Long,
|
||||||
|
isAdult: Boolean?
|
||||||
|
) {
|
||||||
val signatureCan = repository.findSignatureByIdOrNull(id = id, memberId = memberId)
|
val signatureCan = repository.findSignatureByIdOrNull(id = id, memberId = memberId)
|
||||||
?: throw SodaException("잘못된 요청입니다.")
|
?: throw SodaException("잘못된 요청입니다.")
|
||||||
|
|
||||||
|
if (can != null) {
|
||||||
|
signatureCan.can = can
|
||||||
|
}
|
||||||
|
|
||||||
if (isActive != null) {
|
if (isActive != null) {
|
||||||
signatureCan.isActive = isActive
|
signatureCan.isActive = isActive
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isAdult != null) {
|
||||||
|
signatureCan.isAdult = isAdult
|
||||||
|
}
|
||||||
|
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
val metadata = ObjectMetadata()
|
val metadata = ObjectMetadata()
|
||||||
metadata.contentLength = image.size
|
metadata.contentLength = image.size
|
||||||
|
|
|
@ -11,5 +11,6 @@ data class GetSignatureListItem @QueryProjection constructor(
|
||||||
val id: Long,
|
val id: Long,
|
||||||
val can: Int,
|
val can: Int,
|
||||||
val image: String,
|
val image: String,
|
||||||
|
val isAdult: Boolean,
|
||||||
val nickname: String
|
val nickname: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -1009,7 +1009,8 @@ class LiveRoomService(
|
||||||
return signatureCanRepository.findImageByCreatorIdAndCan(
|
return signatureCanRepository.findImageByCreatorIdAndCan(
|
||||||
creatorId = host.id!!,
|
creatorId = host.id!!,
|
||||||
can = request.can,
|
can = request.can,
|
||||||
imageHost = cloudFrontHost
|
imageHost = cloudFrontHost,
|
||||||
|
isAdult = room.isAdult
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,8 @@ import javax.persistence.ManyToOne
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
data class SignatureCan(
|
data class SignatureCan(
|
||||||
val can: Int,
|
var can: Int,
|
||||||
|
var isAdult: Boolean = false,
|
||||||
var isActive: Boolean = true
|
var isActive: Boolean = true
|
||||||
) : BaseEntity() {
|
) : BaseEntity() {
|
||||||
var image: String? = null
|
var image: String? = null
|
||||||
|
|
|
@ -7,19 +7,24 @@ import org.springframework.data.jpa.repository.JpaRepository
|
||||||
interface SignatureCanRepository : JpaRepository<SignatureCan, Long>, SignatureCanQueryRepository
|
interface SignatureCanRepository : JpaRepository<SignatureCan, Long>, SignatureCanQueryRepository
|
||||||
|
|
||||||
interface SignatureCanQueryRepository {
|
interface SignatureCanQueryRepository {
|
||||||
fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String?
|
fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String, isAdult: Boolean): String?
|
||||||
}
|
}
|
||||||
|
|
||||||
class SignatureCanQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : SignatureCanQueryRepository {
|
class SignatureCanQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : SignatureCanQueryRepository {
|
||||||
override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String? {
|
override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String, isAdult: Boolean): String? {
|
||||||
|
var where = signatureCan.creator.id.eq(creatorId)
|
||||||
|
.and(signatureCan.can.eq(can))
|
||||||
|
.and(signatureCan.isActive.isTrue)
|
||||||
|
|
||||||
|
if (!isAdult) {
|
||||||
|
where = where.and(signatureCan.isAdult.isFalse())
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(signatureCan.image.prepend("/").prepend(imageHost))
|
.select(signatureCan.image.prepend("/").prepend(imageHost))
|
||||||
.from(signatureCan)
|
.from(signatureCan)
|
||||||
.where(
|
.where(where)
|
||||||
signatureCan.creator.id.eq(creatorId)
|
.orderBy(signatureCan.isAdult.desc())
|
||||||
.and(signatureCan.can.eq(can))
|
|
||||||
.and(signatureCan.isActive.isTrue)
|
|
||||||
)
|
|
||||||
.fetchFirst()
|
.fetchFirst()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue