1212import java .util .List ;
1313import java .util .Map ;
1414import java .util .Objects ;
15+ import java .util .stream .Collectors ;
1516
1617import com .github .f4b6a3 .uuid .UuidCreator ;
1718import lombok .RequiredArgsConstructor ;
3536import org .lowcoder .sdk .exception .BizError ;
3637import org .springframework .stereotype .Service ;
3738
39+ import reactor .core .publisher .Flux ;
3840import reactor .core .publisher .Mono ;
3941import reactor .util .function .Tuple2 ;
4042
@@ -189,7 +191,14 @@ public Mono<List<GroupView>> getGroups() {
189191 }
190192 return groupService .getByOrgId (orgId )
191193 .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+ )
193202 .collectList ();
194203 }
195204 return groupMemberService .getUserGroupMembersInOrg (orgId , orgMember .getUserId ())
@@ -198,8 +207,14 @@ public Mono<List<GroupView>> getGroups() {
198207 Map <String , GroupMember > groupMemberMap = collectMap (groupMembers , GroupMember ::getGroupId , it -> it );
199208 return groupService .getByIds (groupIds )
200209 .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+ })
203218 .collectList ();
204219 });
205220 });
0 commit comments