Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6ee73d2

Browse files
thomas37-starludomikula
authored andcommitted
Add isCurrentOrg field and sort by value (true first).
1 parent 5467971 commit 6ee73d2

File tree

1 file changed

+26
-3
lines changed
  • server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement

1 file changed

+26
-3
lines changed

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserController.java‎

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
import org.lowcoder.api.framework.view.ResponseView;
99
import org.lowcoder.api.home.SessionUserService;
1010
import org.lowcoder.api.home.UserHomeApiService;
11+
import org.lowcoder.api.home.UserHomepageView;
1112
import org.lowcoder.api.usermanagement.view.OrgView;
1213
import org.lowcoder.api.usermanagement.view.UpdateUserRequest;
1314
import org.lowcoder.api.usermanagement.view.UserProfileView;
1415
import org.lowcoder.domain.organization.model.MemberRole;
1516
import org.lowcoder.domain.organization.model.OrgMember;
17+
import org.lowcoder.domain.organization.model.Organization;
1618
import org.lowcoder.domain.organization.service.OrgMemberService;
1719
import org.lowcoder.domain.organization.service.OrganizationService;
1820
import org.lowcoder.domain.user.constant.UserStatusType;
@@ -34,7 +36,10 @@
3436
import reactor.core.publisher.Flux;
3537
import reactor.core.publisher.Mono;
3638

39+
import java.util.HashMap;
3740
import java.util.List;
41+
import java.util.Map;
42+
import java.util.stream.Collectors;
3843

3944
import static org.lowcoder.sdk.exception.BizError.INVALID_USER_STATUS;
4045
import static org.lowcoder.sdk.util.ExceptionUtils.ofError;
@@ -83,13 +88,31 @@ public Mono<ResponseView<?>> getUserOrgs(ServerWebExchange exchange,
8388
.flatMap(user -> {
8489
Pageable pageable = PageRequest.of(pageNum - 1, pageSize, Sort.by(Sort.Direction.DESC, "updatedAt"));
8590
String filter = orgName == null ? "" : orgName;
91+
Mono<String> currentOrgIdMono = sessionUserService.getVisitorOrgMemberCache()
92+
.map(OrgMember::getOrgId);
8693
return organizationService.findUserOrgs(user.getId(), filter, pageable)
8794
.map(OrgView::new)
8895
.collectList()
8996
.zipWith(organizationService.countUserOrgs(user.getId(), filter))
90-
.map(tuple -> PageResponseView.success(
91-
tuple.getT1(), pageNum, pageSize, tuple.getT2().intValue()
92-
));
97+
.zipWith(currentOrgIdMono)
98+
.map(tuple -> {
99+
List<OrgView> orgViews = tuple.getT1().getT1();
100+
long total = tuple.getT1().getT2();
101+
String currentOrgId = tuple.getT2();
102+
103+
// Create a list of maps each containing orgView and isCurrentOrg
104+
List<Map<String, Object>> resultList = orgViews.stream()
105+
.map(orgView -> {
106+
Map<String, Object> map = new HashMap<>();
107+
map.put("orgView", orgView);
108+
map.put("isCurrentOrg", orgView.getOrgId().equals(currentOrgId));
109+
return map;
110+
})
111+
.sorted((a, b) -> Boolean.compare((Boolean) b.get("isCurrentOrg"), (Boolean) a.get("isCurrentOrg")))
112+
.collect(Collectors.toList());
113+
114+
return PageResponseView.success(resultList, pageNum, pageSize, (int) total);
115+
});
93116
})
94117
.map(ResponseView::success);
95118
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /