캐릭터 챗봇 #338
| @@ -62,4 +62,6 @@ interface ChatRoomRepository : JpaRepository<ChatRoom, Long> { | |||||||
|         @Param("member") member: Member, |         @Param("member") member: Member, | ||||||
|         pageable: Pageable |         pageable: Pageable | ||||||
|     ): List<ChatRoomListQueryDto> |     ): List<ChatRoomListQueryDto> | ||||||
|  |  | ||||||
|  |     fun findByIdAndIsActiveTrue(id: Long): ChatRoom? | ||||||
| } | } | ||||||
|   | |||||||
| @@ -69,9 +69,8 @@ class ChatRoomService( | |||||||
|  |  | ||||||
|     @Transactional |     @Transactional | ||||||
|     fun purchaseMessage(member: Member, chatRoomId: Long, messageId: Long, container: String): ChatMessageItemDto { |     fun purchaseMessage(member: Member, chatRoomId: Long, messageId: Long, container: String): ChatMessageItemDto { | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         // 참여 여부 검증 |         // 참여 여부 검증 | ||||||
|         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|             ?: throw SodaException("잘못된 접근입니다") |             ?: throw SodaException("잘못된 접근입니다") | ||||||
| @@ -288,9 +287,8 @@ class ChatRoomService( | |||||||
|  |  | ||||||
|     @Transactional(readOnly = true) |     @Transactional(readOnly = true) | ||||||
|     fun isMyRoomSessionActive(member: Member, chatRoomId: Long): Boolean { |     fun isMyRoomSessionActive(member: Member, chatRoomId: Long): Boolean { | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         val participant = participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         val participant = participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|         if (participant == null) { |         if (participant == null) { | ||||||
|             throw SodaException("잘못된 접근입니다") |             throw SodaException("잘못된 접근입니다") | ||||||
| @@ -300,9 +298,8 @@ class ChatRoomService( | |||||||
|  |  | ||||||
|     @Transactional |     @Transactional | ||||||
|     fun enterChatRoom(member: Member, chatRoomId: Long, characterImageId: Long? = null): ChatRoomEnterResponse { |     fun enterChatRoom(member: Member, chatRoomId: Long, characterImageId: Long? = null): ChatRoomEnterResponse { | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         // 참여 여부 검증 |         // 참여 여부 검증 | ||||||
|         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|             ?: throw SodaException("잘못된 접근입니다") |             ?: throw SodaException("잘못된 접근입니다") | ||||||
| @@ -424,9 +421,8 @@ class ChatRoomService( | |||||||
|  |  | ||||||
|     @Transactional |     @Transactional | ||||||
|     fun leaveChatRoom(member: Member, chatRoomId: Long, throwOnSessionEndFailure: Boolean = false) { |     fun leaveChatRoom(member: Member, chatRoomId: Long, throwOnSessionEndFailure: Boolean = false) { | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         val participant = participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         val participant = participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|             ?: throw SodaException("잘못된 접근입니다") |             ?: throw SodaException("잘못된 접근입니다") | ||||||
|  |  | ||||||
| @@ -503,9 +499,8 @@ class ChatRoomService( | |||||||
|  |  | ||||||
|     @Transactional(readOnly = true) |     @Transactional(readOnly = true) | ||||||
|     fun getChatMessages(member: Member, chatRoomId: Long, cursor: Long?, limit: Int = 20): ChatMessagesPageResponse { |     fun getChatMessages(member: Member, chatRoomId: Long, cursor: Long?, limit: Int = 20): ChatMessagesPageResponse { | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|             ?: throw SodaException("잘못된 접근입니다") |             ?: throw SodaException("잘못된 접근입니다") | ||||||
|  |  | ||||||
| @@ -539,9 +534,8 @@ class ChatRoomService( | |||||||
|     @Transactional |     @Transactional | ||||||
|     fun sendMessage(member: Member, chatRoomId: Long, message: String): SendChatMessageResponse { |     fun sendMessage(member: Member, chatRoomId: Long, message: String): SendChatMessageResponse { | ||||||
|         // 1) 방 존재 확인 |         // 1) 방 존재 확인 | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         // 2) 참여 여부 확인 (USER) |         // 2) 참여 여부 확인 (USER) | ||||||
|         val myParticipant = participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         val myParticipant = participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|             ?: throw SodaException("잘못된 접근입니다") |             ?: throw SodaException("잘못된 접근입니다") | ||||||
| @@ -786,9 +780,8 @@ class ChatRoomService( | |||||||
|     @Transactional |     @Transactional | ||||||
|     fun resetChatRoom(member: Member, chatRoomId: Long, container: String): CreateChatRoomResponse { |     fun resetChatRoom(member: Member, chatRoomId: Long, container: String): CreateChatRoomResponse { | ||||||
|         // 0) 방 존재 및 내 참여 여부 확인 |         // 0) 방 존재 및 내 참여 여부 확인 | ||||||
|         val room = chatRoomRepository.findById(chatRoomId).orElseThrow { |         val room = chatRoomRepository.findByIdAndIsActiveTrue(chatRoomId) | ||||||
|             SodaException("채팅방을 찾을 수 없습니다.") |             ?: throw SodaException("채팅방을 찾을 수 없습니다.") | ||||||
|         } |  | ||||||
|         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) |         participantRepository.findByChatRoomAndMemberAndIsActiveTrue(room, member) | ||||||
|             ?: throw SodaException("잘못된 접근입니다") |             ?: throw SodaException("잘못된 접근입니다") | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user