Pārlūkot izejas kodu

fix:部门用户列表分页处理

wangbo 2 gadi atpakaļ
vecāks
revīzija
6b8e8eb447

+ 4 - 2
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/org/SmsbDepartmentController.java

@@ -1,10 +1,12 @@
 package com.inspur.customer.web.controller.org;
 
+import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
 import com.alibaba.cola.dto.SingleResponse;
 import com.inspur.customer.client.org.SmsbDepartmentService;
 import com.inspur.customer.object.org.*;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.keycloak.representations.idm.UserRepresentation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -51,9 +53,9 @@ public class SmsbDepartmentController {
     }
 
     @PostMapping("/admin/department/user/list")
-    public Response queryDepartmentUserList(@RequestHeader String userId , @Valid @RequestBody SmsbDepartmentCmd departmentCmd){
+    public PageResponse<UserRepresentation> queryDepartmentUserList(@RequestHeader String userId , @Valid @RequestBody SmsbDepartmentCmd departmentCmd){
         Response checkResponse = departmentService.checkOperationAuthority(userId, departmentCmd.getTenant());
-        if(!checkResponse.isSuccess()){return checkResponse;}
+        if(!checkResponse.isSuccess()){return PageResponse.buildFailure(checkResponse.getErrCode(),checkResponse.getErrMessage());}
         return departmentService.queryDepartmentUserList(departmentCmd);
     }
 

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

@@ -1,9 +1,11 @@
 package com.inspur.customer.service.org;
 
+import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
 import com.alibaba.cola.dto.SingleResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.inspur.customer.client.keycloak.KeycloakService;
@@ -18,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.keycloak.representations.idm.UserRepresentation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -127,14 +130,15 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
     }
 
     @Override
-    public Response queryDepartmentUserList(SmsbDepartmentCmd departmentCmd) {
+    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());
-        List<String> userIds = departmentUserService.queryUserIdByDeprIds(departmentIds);
-        return SingleResponse.of(service.getUserListByIds(departmentCmd.getTenant() ,userIds));
+        PageResponse<String> userIds = departmentUserService.queryUserIdByDeprIds(departmentIds, departmentCmd);
+        return PageResponse.of(service.getUserListByIds(departmentCmd.getTenant() ,userIds.getData())
+            ,userIds.getTotalCount() ,userIds.getPageSize() ,userIds.getPageIndex());
     }
 
     private List<SmsbDepartmentCO> getChilde(Long id){

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

@@ -1,11 +1,14 @@
 package com.inspur.customer.service.org;
 
+import com.alibaba.cola.dto.PageResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.inspur.customer.client.org.SmsbDepartmentUserService;
 import com.inspur.customer.infrastructure.mapper.org.SmsbDepartmentUserMapper;
 import com.inspur.customer.infrastructure.object.org.SmsbDepartmentUserDO;
+import com.inspur.customer.object.org.SmsbDepartmentCmd;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,11 +41,12 @@ public class SmsbDepartmentUserServiceImpl extends ServiceImpl<SmsbDepartmentUse
     }
 
     @Override
-    public List<String> queryUserIdByDeprIds(List<Long> departments) {
-        return super.list(new LambdaQueryWrapper<>(SmsbDepartmentUserDO.class)
-            .in(SmsbDepartmentUserDO::getDepartmentId , departments))
-            .stream().map(j -> j.getUserId())
-            .distinct()
-            .collect(Collectors.toList());
+    public PageResponse<String> queryUserIdByDeprIds(List<Long> departments , SmsbDepartmentCmd departmentCmd) {
+        Page<SmsbDepartmentUserDO> page = new Page<>(departmentCmd.getPageIndex(), departmentCmd.getPageSize());
+        LambdaQueryWrapper<SmsbDepartmentUserDO> queryWrapper = new LambdaQueryWrapper<>(SmsbDepartmentUserDO.class)
+            .in(SmsbDepartmentUserDO::getDepartmentId , departments);
+        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());
     }
 }

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

@@ -1,5 +1,6 @@
 package com.inspur.customer.client.org;
 
+import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
 import com.inspur.customer.object.org.*;
 import org.keycloak.representations.idm.UserRepresentation;
@@ -56,7 +57,7 @@ public interface SmsbDepartmentService {
      * @param departmentCmd
      * @return
      */
-    Response queryDepartmentUserList(SmsbDepartmentCmd departmentCmd);
+    PageResponse<UserRepresentation> queryDepartmentUserList(SmsbDepartmentCmd departmentCmd);
 
     /**
      * 检查用户是否超级管理员以及该租户权限

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

@@ -1,5 +1,9 @@
 package com.inspur.customer.client.org;
 
+import com.alibaba.cola.dto.PageResponse;
+import com.inspur.customer.object.org.SmsbDepartmentCmd;
+import org.keycloak.representations.idm.UserRepresentation;
+
 import java.util.List;
 
 /**
@@ -31,7 +35,8 @@ public interface SmsbDepartmentUserService {
      * 通过部门id获取用户id
      *
      * @param departments
+     * @param departmentCmd
      * @return
      */
-    List<String> queryUserIdByDeprIds(List<Long> departments);
+    PageResponse<String> queryUserIdByDeprIds(List<Long> departments , SmsbDepartmentCmd departmentCmd);
 }

+ 8 - 1
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/org/SmsbDepartmentCmd.java

@@ -1,5 +1,6 @@
 package com.inspur.customer.object.org;
 
+import com.alibaba.cola.dto.PageQuery;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -12,11 +13,17 @@ import javax.validation.constraints.NotNull;
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-public class SmsbDepartmentCmd extends OperationAuthority {
+public class SmsbDepartmentCmd extends PageQuery {
     private static final long serialVersionUID = 5431163674119912344L;
 
     /**
      * 部门id
      */
     private Long departmentId;
+
+    /**
+     * 租户
+     */
+    @NotNull(message = "tenant不能为空")
+    private String tenant;
 }