탐색 메인 - API 추가
This commit is contained in:
@@ -2,8 +2,10 @@ package kr.co.vividnext.sodalive.member
|
||||
|
||||
import kr.co.vividnext.sodalive.common.BaseEntity
|
||||
import kr.co.vividnext.sodalive.member.auth.Auth
|
||||
import kr.co.vividnext.sodalive.member.following.CreatorFollowing
|
||||
import kr.co.vividnext.sodalive.member.notification.MemberNotification
|
||||
import kr.co.vividnext.sodalive.member.stipulation.StipulationAgree
|
||||
import kr.co.vividnext.sodalive.member.tag.MemberCreatorTag
|
||||
import javax.persistence.CascadeType
|
||||
import javax.persistence.Column
|
||||
import javax.persistence.Entity
|
||||
@@ -33,6 +35,12 @@ data class Member(
|
||||
@OneToMany(mappedBy = "member", cascade = [CascadeType.ALL])
|
||||
val stipulationAgrees: MutableList<StipulationAgree> = mutableListOf()
|
||||
|
||||
@OneToMany(mappedBy = "member", cascade = [CascadeType.ALL], orphanRemoval = true)
|
||||
var tags: MutableList<MemberCreatorTag> = mutableListOf()
|
||||
|
||||
@OneToMany(mappedBy = "creator")
|
||||
var follower: MutableList<CreatorFollowing> = mutableListOf()
|
||||
|
||||
@OneToOne(mappedBy = "member", fetch = FetchType.LAZY)
|
||||
var notification: MemberNotification? = null
|
||||
|
||||
|
@@ -332,4 +332,6 @@ class MemberService(
|
||||
blockMember.isActive = true
|
||||
}
|
||||
}
|
||||
|
||||
fun isBlocked(blockedMemberId: Long, memberId: Long) = blockMemberRepository.isBlocked(blockedMemberId, memberId)
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@ interface BlockMemberRepository : JpaRepository<BlockMember, Long>, BlockMemberQ
|
||||
|
||||
interface BlockMemberQueryRepository {
|
||||
fun getBlockAccount(blockedMemberId: Long, memberId: Long): BlockMember?
|
||||
fun isBlocked(blockedMemberId: Long, memberId: Long): Boolean
|
||||
}
|
||||
|
||||
@Repository
|
||||
@@ -24,4 +25,18 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
|
||||
.orderBy(blockMember.id.desc())
|
||||
.fetchFirst()
|
||||
}
|
||||
|
||||
override fun isBlocked(blockedMemberId: Long, memberId: Long): Boolean {
|
||||
val blockedAccount = queryFactory
|
||||
.select(blockMember.id)
|
||||
.from(blockMember)
|
||||
.where(
|
||||
blockMember.memberId.eq(memberId)
|
||||
.and(blockMember.blockedMemberId.eq(blockedMemberId))
|
||||
.and(blockMember.isActive.isTrue)
|
||||
)
|
||||
.fetchOne()
|
||||
|
||||
return blockedAccount != null
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,17 @@
|
||||
package kr.co.vividnext.sodalive.member.tag
|
||||
|
||||
import kr.co.vividnext.sodalive.common.BaseEntity
|
||||
import javax.persistence.Column
|
||||
import javax.persistence.Entity
|
||||
|
||||
@Entity
|
||||
data class CreatorTag(
|
||||
@Column(unique = true, nullable = false)
|
||||
var tag: String,
|
||||
@Column(nullable = true)
|
||||
var image: String? = null,
|
||||
@Column(nullable = false)
|
||||
var isActive: Boolean = true,
|
||||
@Column(nullable = false)
|
||||
var orders: Int = 1
|
||||
) : BaseEntity()
|
@@ -0,0 +1,19 @@
|
||||
package kr.co.vividnext.sodalive.member.tag
|
||||
|
||||
import kr.co.vividnext.sodalive.common.BaseEntity
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import javax.persistence.Entity
|
||||
import javax.persistence.FetchType
|
||||
import javax.persistence.JoinColumn
|
||||
import javax.persistence.ManyToOne
|
||||
|
||||
@Entity
|
||||
data class MemberCreatorTag(
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "member_id", nullable = false)
|
||||
var member: Member,
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "creator_tag_id", nullable = false)
|
||||
var tag: CreatorTag
|
||||
) : BaseEntity()
|
Reference in New Issue
Block a user