Browse Source

Merge branch '84-integrate' into 'develop'

84 integrate



See merge request !65

zengweijie 2 years ago
parent
commit
1ecbab95db

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

@@ -195,26 +195,21 @@ public class SmsbDepartmentUserServiceImpl extends ServiceImpl<SmsbDepartmentUse
     @Override
     public List<SmsbSimpleUserCO> listUserByInformLevel(String tenant, List<String> org, int informLevel ,int errorId) {
         LambdaQueryWrapper<SmsbDepartmentUserDO> queryWrapper = Wrappers.lambdaQuery();
-        List<String> paths = departmentService.listSuperiorDepartments(org, tenant);
+        List<String> paths = new ArrayList<>();
+        if (org!= null && !org.isEmpty()) {
+            paths = departmentService.listSuperiorDepartments(org, tenant);
+        }
+
         queryWrapper.eq(SmsbDepartmentUserDO::getTenant, tenant)
             .ne(SmsbDepartmentUserDO::getInformLevel, -1)
-            .eq(SmsbDepartmentUserDO::getEnabled, 1)
-            .between(SmsbDepartmentUserDO::getInformLevel, 1000, 1000 + informLevel)
-            .or(!CollectionUtils.isEmpty(paths), q -> q.ne(SmsbDepartmentUserDO::getInformLevel, -1)
-                .in(SmsbDepartmentUserDO::getPath, paths)
-                .eq(SmsbDepartmentUserDO::getEnabled, 1)
-                .eq(SmsbDepartmentUserDO::getTenant, tenant)
-                .between(SmsbDepartmentUserDO::getInformLevel, 0, informLevel))
-            //部门为空代表设备在根部门
-            .or(CollectionUtils.isEmpty(paths), q -> q.ne(SmsbDepartmentUserDO::getInformLevel, -1)
-                .isNull(SmsbDepartmentUserDO::getPath)
-                .eq(SmsbDepartmentUserDO::getEnabled, 1)
-                .eq(SmsbDepartmentUserDO::getTenant, tenant)
-                .between(SmsbDepartmentUserDO::getInformLevel, 0, informLevel));
-        queryWrapper.or(i->i.eq(SmsbDepartmentUserDO::getInformLevel , 9999)
-            .apply("FIND_IN_SET({0}, REPLACE(REPLACE(inform_type, '[', ''), ']', '')) > 0" , errorId));
+            .eq(SmsbDepartmentUserDO::getEnabled, 1);
+        List<String> finalPaths = paths;
+        queryWrapper.and(wrapper->wrapper.isNull(SmsbDepartmentUserDO::getPath).or().in(CollectionUtils.isNotEmpty(finalPaths), SmsbDepartmentUserDO::getPath, finalPaths));
+        queryWrapper.and(wrapper -> wrapper.nested(nestedWrapper ->
+                    nestedWrapper.eq(SmsbDepartmentUserDO::getInformLevel, 9999)
+                        .apply("FIND_IN_SET({0}, REPLACE(REPLACE(inform_type, '[', ''), ']', '')) > 0" , errorId)
+                ).or().between(SmsbDepartmentUserDO::getInformLevel, 0, informLevel));
         List<SmsbDepartmentUserDO> list = this.list(queryWrapper);
-
         List<SmsbSimpleUserCO> smsbSimpleUserList = Lists.newArrayListWithCapacity(list.size());
         list.forEach(user -> {
             SmsbSimpleUserCO userCO = new SmsbSimpleUserCO();

+ 1 - 1
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/tenant/UserInformServiceImpl.java

@@ -75,7 +75,7 @@ public class UserInformServiceImpl implements UserInformService {
             }
         }*/
 
-        log.debug("users:{}", users);
+        log.debug("users:{},org:{}", users , org);
         List<SmsbSimpleUserCO> orgUserList = departmentUserService.listUserByInformLevel(tenant, org, informLevel.getId() , errorId);
         List<String> existedUserIdList = users.stream().map(KeycloakUserCO::getId).collect(Collectors.toList());
         List<String> orgUserIdList = orgUserList.stream().map(SmsbSimpleUserCO::getUserId).distinct().collect(Collectors.toList());