diff --git a/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgController.java b/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgController.java index c229765..4bc9f1e 100644 --- a/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgController.java +++ b/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgController.java @@ -5,7 +5,10 @@ import com.cool.core.annotation.CoolRestController; import com.cool.core.base.BaseController; import com.cool.core.request.R; import com.cool.modules.org.entity.AppOrgEntity; +import com.cool.modules.org.entity.AppOrgUserEntity; import com.cool.modules.org.service.AppOrgService; +import com.cool.modules.org.service.AppOrgUserService; +import com.mybatisflex.core.query.QueryWrapper; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; @@ -20,10 +23,22 @@ import org.springframework.web.bind.annotation.RequestBody; public class AdminAppOrgController extends BaseController { private final AppOrgService appOrgService; + private final AppOrgUserService appOrgUserService; @Override protected void init(HttpServletRequest request, JSONObject requestParams) { - setPageOption(createOp()); + setPageOption( + createOp().transformValue(obj -> { + if (obj instanceof AppOrgEntity entity) { + long count = appOrgUserService.count( + QueryWrapper.create() + .eq(AppOrgUserEntity::getOrgId, entity.getId()) + .eq(AppOrgUserEntity::getStatus, 1) + ); + entity.setMemberCount(count); + } + }) + ); } @Operation(summary = "创建组织") diff --git a/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgUserController.java b/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgUserController.java index 185773a..aa61036 100644 --- a/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgUserController.java +++ b/src/main/java/com/cool/modules/org/controller/admin/AdminAppOrgUserController.java @@ -32,9 +32,10 @@ public class AdminAppOrgUserController extends BaseController result = appOrgUserService.getMemberList(orgId, page, size); + Map result = appOrgUserService.getMemberList(orgId, orgName, page, size); return R.ok(result); } diff --git a/src/main/java/com/cool/modules/org/entity/AppOrgEntity.java b/src/main/java/com/cool/modules/org/entity/AppOrgEntity.java index 75ee673..12a02c2 100644 --- a/src/main/java/com/cool/modules/org/entity/AppOrgEntity.java +++ b/src/main/java/com/cool/modules/org/entity/AppOrgEntity.java @@ -2,6 +2,7 @@ package com.cool.modules.org.entity; import com.cool.core.base.BaseEntity; import com.mybatisflex.annotation.Table; +import com.mybatisflex.annotation.Column; import com.cool.core.annotation.ColumnDefine; import com.tangzc.mybatisflex.autotable.annotation.UniIndex; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -41,4 +42,7 @@ public class AppOrgEntity extends BaseEntity { @ColumnDefine(comment = "组织级扩展配置", type = "text") private String config; + + @Column(ignore = true) + private Long memberCount; } diff --git a/src/main/java/com/cool/modules/org/service/AppOrgUserService.java b/src/main/java/com/cool/modules/org/service/AppOrgUserService.java index 734c868..780f989 100644 --- a/src/main/java/com/cool/modules/org/service/AppOrgUserService.java +++ b/src/main/java/com/cool/modules/org/service/AppOrgUserService.java @@ -19,6 +19,8 @@ public interface AppOrgUserService extends BaseService { Map getMemberList(Long orgId, Integer page, Integer size); + Map getMemberList(Long orgId, String orgName, Integer page, Integer size); + boolean isOrgAdmin(Long userId, Long orgId); boolean isOrgMember(Long userId, Long orgId); diff --git a/src/main/java/com/cool/modules/org/service/impl/AppOrgUserServiceImpl.java b/src/main/java/com/cool/modules/org/service/impl/AppOrgUserServiceImpl.java index f653195..30d6ac0 100644 --- a/src/main/java/com/cool/modules/org/service/impl/AppOrgUserServiceImpl.java +++ b/src/main/java/com/cool/modules/org/service/impl/AppOrgUserServiceImpl.java @@ -136,14 +136,34 @@ public class AppOrgUserServiceImpl extends BaseServiceImpl getMemberList(Long orgId, Integer page, Integer size) { + return getMemberList(orgId, null, page, size); + } + + @Override + public Map getMemberList(Long orgId, String orgName, Integer page, Integer size) { int pageNum = (page != null && page > 0) ? page : 1; int pageSize = (size != null && size > 0) ? size : 10; QueryWrapper qw = QueryWrapper.create() .eq(AppOrgUserEntity::getStatus, 1); + if (orgId != null) { qw.eq(AppOrgUserEntity::getOrgId, orgId); + } else if (StrUtil.isNotBlank(orgName)) { + List orgs = appOrgMapper.selectListByQuery( + QueryWrapper.create().like(AppOrgEntity::getName, orgName) + ); + if (!orgs.isEmpty()) { + List orgIds = orgs.stream().map(AppOrgEntity::getId).toList(); + qw.in(AppOrgUserEntity::getOrgId, orgIds); + } else { + Map result = new HashMap<>(); + result.put("list", new ArrayList<>()); + result.put("pagination", Map.of("total", 0, "page", pageNum, "size", pageSize)); + return result; + } } + qw.orderBy(AppOrgUserEntity::getJoinTime, false); com.mybatisflex.core.paginate.Page pg = page(