12
12
import java .util .List ;
13
13
import java .util .Map ;
14
14
import java .util .Objects ;
15
+ import java .util .stream .Collectors ;
15
16
16
17
import com .github .f4b6a3 .uuid .UuidCreator ;
17
18
import lombok .RequiredArgsConstructor ;
35
36
import org .lowcoder .sdk .exception .BizError ;
36
37
import org .springframework .stereotype .Service ;
37
38
39
+ import reactor .core .publisher .Flux ;
38
40
import reactor .core .publisher .Mono ;
39
41
import reactor .util .function .Tuple2 ;
40
42
@@ -189,7 +191,14 @@ public Mono<List<GroupView>> getGroups() {
189
191
}
190
192
return groupService .getByOrgId (orgId )
191
193
.sort ()
192
- .flatMapSequential (group -> GroupView .from (group , memberRole .getValue ()))
194
+ .flatMapSequential (group -> groupMemberService .getAllGroupAdmin (group .getId ())
195
+ .zipWith (groupMemberService .getGroupMembers (group .getId (), 0 , -1 ))
196
+ .flatMap (tuple -> {
197
+ var adminMembers = tuple .getT1 ();
198
+ var users = tuple .getT2 ();
199
+ return GroupView .from (group , memberRole .getValue (), adminMembers .size (), users .size ());
200
+ })
201
+ )
193
202
.collectList ();
194
203
}
195
204
return groupMemberService .getUserGroupMembersInOrg (orgId , orgMember .getUserId ())
@@ -198,8 +207,14 @@ public Mono<List<GroupView>> getGroups() {
198
207
Map <String , GroupMember > groupMemberMap = collectMap (groupMembers , GroupMember ::getGroupId , it -> it );
199
208
return groupService .getByIds (groupIds )
200
209
.sort ()
201
- .flatMapSequential (group -> GroupView .from (group ,
202
- groupMemberMap .get (group .getId ()).getRole ().getValue ()))
210
+ .flatMapSequential (group -> {
211
+ var adminMembers = groupMembers .stream ().filter (groupMember -> groupMember .getGroupId ().equals (group .getId ()) && groupMember .getRole () == MemberRole .ADMIN ).toList ();
212
+ var allMembers = groupMembers .stream ().filter (groupMember -> groupMember .getGroupId ().equals (group .getId ())).toList ();
213
+ return GroupView .from (group ,
214
+ groupMemberMap .get (group .getId ()).getRole ().getValue (),
215
+ allMembers .size (),
216
+ adminMembers .size ());
217
+ })
203
218
.collectList ();
204
219
});
205
220
});
0 commit comments