@@ -2,6 +2,7 @@ package com.backgu.amaker.api.event.service
2
2
3
3
import com.backgu.amaker.api.event.dto.ReactionCommentCreateDto
4
4
import com.backgu.amaker.api.event.dto.ReactionCommentDto
5
+ import com.backgu.amaker.api.event.dto.ReactionOptionWithCommentDto
5
6
import com.backgu.amaker.api.event.dto.ReplyCommentCreateDto
6
7
import com.backgu.amaker.api.event.dto.ReplyCommentDto
7
8
import com.backgu.amaker.api.event.dto.ReplyCommentWithUserDto
@@ -16,6 +17,8 @@ import com.backgu.amaker.application.user.service.UserService
16
17
import com.backgu.amaker.application.workspace.WorkspaceUserService
17
18
import com.backgu.amaker.common.exception.BusinessException
18
19
import com.backgu.amaker.common.status.StatusCode
20
+ import com.backgu.amaker.domain.event.ReactionComment
21
+ import com.backgu.amaker.domain.user.User
19
22
import org.springframework.context.ApplicationEventPublisher
20
23
import org.springframework.data.domain.Page
21
24
import org.springframework.data.domain.Pageable
@@ -101,4 +104,29 @@ class EventCommentFacadeService(
101
104
)
102
105
}
103
106
}
107
+
108
+ fun findReactionComment (
109
+ userId : String ,
110
+ eventId : Long ,
111
+ ): List <ReactionOptionWithCommentDto > {
112
+ workspaceUserService.validByUserIdAndChatIdInWorkspace(userId, eventId)
113
+ val reactionOptions = reactionOptionService.getAllByEventId(eventId)
114
+ val reactionCommentGroupByOption: Map <Long , List <ReactionComment >> =
115
+ reactionCommentService.findAllByEventIdGroupByReactionOptions(eventId)
116
+ val userMap: Map <String , User > =
117
+ userService.findAllByUserIdsToMap(
118
+ reactionCommentGroupByOption.flatMap {
119
+ it.value.map { it.userId }.toList()
120
+ },
121
+ )
122
+
123
+ return reactionOptions.map {
124
+ ReactionOptionWithCommentDto .of(
125
+ it,
126
+ reactionCommentGroupByOption[it.id]
127
+ ? : emptyList(),
128
+ userMap,
129
+ )
130
+ }
131
+ }
104
132
}
0 commit comments