관리자 - 회원 타입 수정 기능 추가

This commit is contained in:
Klaus 2023-08-07 15:36:22 +09:00
parent b556219e36
commit 14220ff6dc
3 changed files with 28 additions and 0 deletions

View File

@ -4,6 +4,8 @@ import kr.co.vividnext.sodalive.common.ApiResponse
import org.springframework.data.domain.Pageable
import org.springframework.security.access.prepost.PreAuthorize
import org.springframework.web.bind.annotation.GetMapping
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.RequestParam
import org.springframework.web.bind.annotation.RestController
@ -12,6 +14,12 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/admin/member")
@PreAuthorize("hasRole('ADMIN')")
class AdminMemberController(private val service: AdminMemberService) {
@PutMapping
fun updateMember(@RequestBody request: UpdateMemberRequest) = ApiResponse.ok(
service.updateMember(request = request),
"수정되었습니다."
)
@GetMapping("/list")
fun getMemberList(pageable: Pageable) = ApiResponse.ok(service.getMemberList(pageable))

View File

@ -5,7 +5,9 @@ import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.MemberRole
import org.springframework.beans.factory.annotation.Value
import org.springframework.data.domain.Pageable
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.time.ZoneId
import java.time.format.DateTimeFormatter
@ -16,6 +18,16 @@ class AdminMemberService(
@Value("\${cloud.aws.cloud-front.host}")
private val cloudFrontHost: String
) {
@Transactional
fun updateMember(request: UpdateMemberRequest) {
val member = repository.findByIdOrNull(request.id)
?: throw SodaException("해당 유저가 없습니다.")
if (member.role != request.userType) {
member.role = request.userType
}
}
fun getMemberList(pageable: Pageable): GetAdminMemberListResponse {
val totalCount = repository.getMemberTotalCount()
val memberList = processMemberListToGetAdminMemberListResponseItemList(

View File

@ -0,0 +1,8 @@
package kr.co.vividnext.sodalive.admin.member
import kr.co.vividnext.sodalive.member.MemberRole
data class UpdateMemberRequest(
val id: Long,
val userType: MemberRole
)