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 5b11171..185773a 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 @@ -28,12 +28,14 @@ public class AdminAppOrgUserController extends BaseController> members = appOrgUserService.getMemberListByOrgId(orgId); - return R.ok(members); + Integer page = requestParams.getInt("page"); + Integer size = requestParams.getInt("size"); + Map result = appOrgUserService.getMemberList(orgId, page, size); + return R.ok(result); } @Operation(summary = "提升/降级App端管理员") diff --git a/src/main/java/com/cool/modules/org/controller/app/AppOrgUserController.java b/src/main/java/com/cool/modules/org/controller/app/AppOrgUserController.java index 5d22643..8b53f46 100644 --- a/src/main/java/com/cool/modules/org/controller/app/AppOrgUserController.java +++ b/src/main/java/com/cool/modules/org/controller/app/AppOrgUserController.java @@ -8,7 +8,6 @@ import com.cool.core.util.CoolSecurityUtil; import com.cool.modules.org.service.AppOrgUserService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import java.util.List; import java.util.Map; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; @@ -27,7 +26,7 @@ public class AppOrgUserController { Long orgId = requestParams.getLong("orgId"); Long userId = CoolSecurityUtil.getCurrentUserId(); CoolPreconditions.check(!appOrgUserService.isOrgMember(userId, orgId), "无权查看该组织成员"); - List> members = appOrgUserService.getMemberListByOrgId(orgId); + Map members = appOrgUserService.getMemberList(orgId, null, null); return R.ok(members); } 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 e0e91d1..75ee673 100644 --- a/src/main/java/com/cool/modules/org/entity/AppOrgEntity.java +++ b/src/main/java/com/cool/modules/org/entity/AppOrgEntity.java @@ -4,11 +4,13 @@ import com.cool.core.base.BaseEntity; import com.mybatisflex.annotation.Table; import com.cool.core.annotation.ColumnDefine; import com.tangzc.mybatisflex.autotable.annotation.UniIndex; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.Setter; @Getter @Setter +@JsonIgnoreProperties(ignoreUnknown = true) @Table(value = "app_org", comment = "组织表") public class AppOrgEntity extends BaseEntity { 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 809c861..734c868 100644 --- a/src/main/java/com/cool/modules/org/service/AppOrgUserService.java +++ b/src/main/java/com/cool/modules/org/service/AppOrgUserService.java @@ -17,7 +17,7 @@ public interface AppOrgUserService extends BaseService { List> getOrgListByUserId(Long userId); - List> getMemberListByOrgId(Long orgId); + Map getMemberList(Long orgId, Integer page, Integer size); boolean isOrgAdmin(Long userId, Long orgId); diff --git a/src/main/java/com/cool/modules/org/service/impl/AppOrgServiceImpl.java b/src/main/java/com/cool/modules/org/service/impl/AppOrgServiceImpl.java index 9f43e25..ef2ec04 100644 --- a/src/main/java/com/cool/modules/org/service/impl/AppOrgServiceImpl.java +++ b/src/main/java/com/cool/modules/org/service/impl/AppOrgServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.json.JSONObject; import com.cool.core.base.BaseServiceImpl; import com.cool.core.cache.CoolCache; import com.cool.core.enums.UserTypeEnum; +import com.cool.core.base.ModifyEnum; import com.cool.core.exception.CoolPreconditions; import com.cool.core.security.jwt.JwtTokenUtil; import com.cool.core.security.jwt.JwtUser; @@ -47,6 +48,16 @@ public class AppOrgServiceImpl extends BaseServiceImpl moduleKeys = requestParams.getBeanList("moduleKeys", String.class); + if (moduleKeys != null) { + authorizeModules(entity.getId(), moduleKeys); + } + } + } + @Override @Transactional public void createOrg(JSONObject requestParams, AppOrgEntity entity) { @@ -55,7 +66,9 @@ public class AppOrgServiceImpl extends BaseServiceImpl> getMemberListByOrgId(Long orgId) { - List orgUsers = list(QueryWrapper.create() - .eq(AppOrgUserEntity::getOrgId, orgId) - .eq(AppOrgUserEntity::getStatus, 1)); + public Map getMemberList(Long orgId, Integer page, Integer size) { + int pageNum = (page != null && page > 0) ? page : 1; + int pageSize = (size != null && size > 0) ? size : 10; - List> result = new ArrayList<>(); - for (AppOrgUserEntity ou : orgUsers) { + QueryWrapper qw = QueryWrapper.create() + .eq(AppOrgUserEntity::getStatus, 1); + if (orgId != null) { + qw.eq(AppOrgUserEntity::getOrgId, orgId); + } + qw.orderBy(AppOrgUserEntity::getJoinTime, false); + + com.mybatisflex.core.paginate.Page pg = page( + com.mybatisflex.core.paginate.Page.of(pageNum, pageSize), qw); + + List> list = new ArrayList<>(); + for (AppOrgUserEntity ou : pg.getRecords()) { Map item = new HashMap<>(); item.put("id", ou.getId()); item.put("userId", ou.getUserId()); + item.put("orgId", ou.getOrgId()); item.put("role", ou.getRole()); item.put("joinTime", ou.getJoinTime()); + AppOrgEntity org = appOrgMapper.selectOneById(ou.getOrgId()); + if (org != null) { + item.put("orgName", org.getName()); + } + UserInfoEntity user = userInfoMapper.selectOneById(ou.getUserId()); if (user != null) { item.put("nickName", user.getNickName()); item.put("avatarUrl", user.getAvatarUrl()); item.put("phone", user.getPhone()); } - result.add(item); + list.add(item); } + + Map result = new HashMap<>(); + result.put("list", list); + result.put("pagination", Map.of("total", pg.getTotalRow(), "page", pageNum, "size", pageSize)); return result; }