Bläddra i källkod

fix:部门账号列表分页处理

wangbo 2 år sedan
förälder
incheckning
560f742482

+ 20 - 8
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/keycloak/KeycloakServiceImpl.java

@@ -1,5 +1,6 @@
 package com.inspur.customer.service.keycloak;
 
+import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
 import com.alibaba.cola.dto.SingleResponse;
 import com.google.common.collect.Lists;
@@ -8,6 +9,7 @@ import com.inspur.customer.client.keycloak.KeycloakService;
 import com.inspur.customer.object.keycloak.KeycloakUserCO;
 import com.inspur.customer.object.keycloak.SwitchDTO;
 import com.inspur.customer.object.keycloak.UsersRoleMappingDTO;
+import com.inspur.customer.object.org.SmsbDepartmentCmd;
 import com.inspur.customer.object.wechat.Pair;
 import com.inspur.customer.constant.Constant;
 import lombok.extern.slf4j.Slf4j;
@@ -322,7 +324,7 @@ public class KeycloakServiceImpl implements KeycloakService {
     @Override
     public Response removeUser(String userId) {
         realmResource.users().get(userId).remove();
-        return SingleResponse.buildSuccess();
+        return Response.buildSuccess();
     }
 
     @Override
@@ -403,12 +405,22 @@ public class KeycloakServiceImpl implements KeycloakService {
     }
 
     @Override
-    public List<UserRepresentation> getUserListByIds(String tenant ,List<String> userId) {
-        return realmResource.groups()
-            .group(realmResource.getGroupByPath(tenant).getId())
-            .members()
-            .stream()
-            .filter(i -> userId.contains(i.getId()))
-            .collect(Collectors.toList());
+    public PageResponse<UserRepresentation> getUserListByIds(SmsbDepartmentCmd departmentCmd , List<String> userId) {
+        if(CollectionUtils.isEmpty(userId)){
+            GroupResource groupResource = realmResource.groups()
+                .group(realmResource.getGroupByPath(departmentCmd.getTenant()).getId());
+            log.info("查询分页参数:first:{},max:{}",departmentCmd.getOffset() ,departmentCmd.getPageSize());
+            return PageResponse.of(
+                groupResource.members(departmentCmd.getOffset() ,departmentCmd.getPageSize())
+                , groupResource.members().size() ,departmentCmd.getPageSize() ,departmentCmd.getPageIndex());
+        }else{
+            List<UserRepresentation> userRepresentations = realmResource.groups()
+                .group(realmResource.getGroupByPath(departmentCmd.getTenant()).getId())
+                .members()
+                .stream()
+                .filter(i -> userId.contains(i.getId()))
+                .collect(Collectors.toList());
+            return PageResponse.of(userRepresentations ,0 ,0,0);
+        }
     }
 }

+ 10 - 8
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/org/SmsbDepartmentServiceImpl.java

@@ -130,14 +130,16 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
 
     @Override
     public PageResponse<UserRepresentation> queryDepartmentUserList(SmsbDepartmentCmd departmentCmd) {
-        List<Long> departmentIds = super.list(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
-                .eq(SmsbDepartmentDO::getTenant, departmentCmd.getTenant())
-                .eq(Objects.nonNull(departmentCmd.getDepartmentId()), SmsbDepartmentDO::getId, departmentCmd.getDepartmentId()))
-            .stream().map(i -> i.getId())
-            .collect(Collectors.toList());
-        PageResponse<String> userIds = departmentUserService.queryUserIdByDeprIds(departmentIds, departmentCmd);
-        return PageResponse.of(service.getUserListByIds(departmentCmd.getTenant() ,userIds.getData())
-            ,userIds.getTotalCount() ,userIds.getPageSize() ,userIds.getPageIndex());
+        if(Objects.nonNull(departmentCmd.getDepartmentId())){
+            // 不为空返回指定部门用户列表
+            PageResponse<String> userIds = departmentUserService.queryUserIdByDeprIds(departmentCmd);
+            PageResponse<UserRepresentation> userRepresentation = service.getUserListByIds(departmentCmd, userIds.getData());
+            return PageResponse.of(
+                userRepresentation.getData(),userIds.getTotalCount() ,userIds.getPageSize() ,userIds.getPageIndex());
+        }else{
+            // 部门id为空,返回全部
+            return service.getUserListByIds(departmentCmd, Lists.newArrayList());
+        }
     }
 
     private List<SmsbDepartmentCO> getChilde(Long id){

+ 2 - 2
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/org/SmsbDepartmentUserServiceImpl.java

@@ -42,10 +42,10 @@ public class SmsbDepartmentUserServiceImpl extends ServiceImpl<SmsbDepartmentUse
     }
 
     @Override
-    public PageResponse<String> queryUserIdByDeprIds(List<Long> departments , SmsbDepartmentCmd departmentCmd) {
+    public PageResponse<String> queryUserIdByDeprIds(SmsbDepartmentCmd departmentCmd) {
         Page<SmsbDepartmentUserDO> page = new Page<>(departmentCmd.getPageIndex(), departmentCmd.getPageSize());
         LambdaQueryWrapper<SmsbDepartmentUserDO> queryWrapper = new LambdaQueryWrapper<>(SmsbDepartmentUserDO.class)
-            .in(SmsbDepartmentUserDO::getDepartmentId , departments);
+            .eq(SmsbDepartmentUserDO::getDepartmentId , departmentCmd.getDepartmentId());
         page = this.page(page, queryWrapper);
         List<String> userIds = page.getRecords().stream().map(j -> j.getUserId()).distinct().collect(Collectors.toList());
         return PageResponse.of(userIds, (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent());

+ 4 - 2
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/keycloak/KeycloakService.java

@@ -1,8 +1,10 @@
 package com.inspur.customer.client.keycloak;
+import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
 import com.alibaba.cola.dto.SingleResponse;
 import com.inspur.customer.object.keycloak.KeycloakUserCO;
 import com.inspur.customer.object.keycloak.UsersRoleMappingDTO;
+import com.inspur.customer.object.org.SmsbDepartmentCmd;
 import com.inspur.customer.object.wechat.Pair;
 import org.keycloak.representations.idm.CredentialRepresentation;
 import org.keycloak.representations.idm.GroupRepresentation;
@@ -214,9 +216,9 @@ public interface KeycloakService {
     /**
      * 获取用户列表
      *
-     * @param tenant
+     * @param departmentCmd
      * @param userId
      * @return
      */
-    List<UserRepresentation> getUserListByIds(String tenant ,List<String> userId);
+    PageResponse<UserRepresentation> getUserListByIds(SmsbDepartmentCmd departmentCmd , List<String> userId);
 }

+ 1 - 2
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/org/SmsbDepartmentUserService.java

@@ -35,11 +35,10 @@ public interface SmsbDepartmentUserService {
     /**
      * 通过部门id获取用户id
      *
-     * @param departments
      * @param departmentCmd
      * @return
      */
-    PageResponse<String> queryUserIdByDeprIds(List<Long> departments , SmsbDepartmentCmd departmentCmd);
+    PageResponse<String> queryUserIdByDeprIds(SmsbDepartmentCmd departmentCmd);
 
 
     /**