|
11 | 11 | import java.time.Duration; |
12 | 12 | import java.time.Instant; |
13 | 13 | import java.util.Map; |
| 14 | +import java.util.Objects; |
14 | 15 | import java.util.Set; |
15 | 16 | import lombok.RequiredArgsConstructor; |
16 | 17 | import org.apache.commons.lang3.BooleanUtils; |
17 | 18 | import org.springframework.context.ApplicationEventPublisher; |
18 | | -import org.springframework.lang.NonNull; |
19 | 19 | import org.springframework.stereotype.Component; |
20 | 20 | import run.halo.app.content.comment.ReplyNotificationSubscriptionHelper; |
21 | 21 | import run.halo.app.content.comment.ReplyService; |
|
26 | 26 | import run.halo.app.event.post.CommentCreatedEvent; |
27 | 27 | import run.halo.app.event.post.CommentUnreadReplyCountChangedEvent; |
28 | 28 | import run.halo.app.extension.ExtensionClient; |
29 | | -import run.halo.app.extension.GroupVersionKind; |
30 | 29 | import run.halo.app.extension.ListOptions; |
31 | 30 | import run.halo.app.extension.MetadataUtil; |
32 | 31 | import run.halo.app.extension.PageRequestImpl; |
@@ -135,13 +134,19 @@ private void updateUnReplyCountIfNecessary(Comment comment) { |
135 | 134 |
|
136 | 135 | private void updateSameSubjectRefCommentCounter(Comment comment) { |
137 | 136 | var commentSubjectRef = comment.getSpec().getSubjectRef(); |
138 | | - GroupVersionKind groupVersionKind = groupVersionKind(commentSubjectRef); |
139 | | - |
140 | 137 | var totalCount = countTotalComments(commentSubjectRef); |
141 | 138 | var approvedTotalCount = countApprovedComments(commentSubjectRef); |
142 | | - schemeManager.fetch(groupVersionKind).ifPresent(scheme -> { |
143 | | - String counterName = MeterUtils.nameOf(commentSubjectRef.getGroup(), scheme.plural(), |
144 | | - commentSubjectRef.getName()); |
| 139 | + var findScheme = schemeManager.schemes().stream() |
| 140 | + .filter(scheme -> { |
| 141 | + var gvk = scheme.groupVersionKind(); |
| 142 | + return Objects.equals(gvk.group(), commentSubjectRef.getGroup()) |
| 143 | + && Objects.equals(gvk.kind(), commentSubjectRef.getKind()); |
| 144 | + }) |
| 145 | + .findFirst(); |
| 146 | + findScheme.ifPresent(scheme -> { |
| 147 | + String counterName = |
| 148 | + MeterUtils.nameOf(commentSubjectRef.getGroup(), scheme.plural(), |
| 149 | + commentSubjectRef.getName()); |
145 | 150 | client.fetch(Counter.class, counterName).ifPresentOrElse(counter -> { |
146 | 151 | counter.setTotalComment(totalCount); |
147 | 152 | counter.setApprovedComment(approvedTotalCount); |
@@ -185,8 +190,4 @@ private void cleanUpResources(Comment comment) { |
185 | 190 | updateSameSubjectRefCommentCounter(comment); |
186 | 191 | } |
187 | 192 |
|
188 | | - @NonNull |
189 | | - private GroupVersionKind groupVersionKind(@NonNull Ref ref) { |
190 | | - return new GroupVersionKind(ref.getGroup(), ref.getVersion(), ref.getKind()); |
191 | | - } |
192 | 193 | } |
0 commit comments