탐색 메인 - API 추가

This commit is contained in:
2023-08-01 10:23:49 +09:00
parent df861bf8a1
commit 049e1c41de
11 changed files with 376 additions and 1 deletions

View File

@@ -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

View File

@@ -332,4 +332,6 @@ class MemberService(
blockMember.isActive = true
}
}
fun isBlocked(blockedMemberId: Long, memberId: Long) = blockMemberRepository.isBlocked(blockedMemberId, memberId)
}

View File

@@ -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
}
}

View File

@@ -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()

View File

@@ -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()