FengChaoYu hai 5 meses
pai
achega
dc67cfa50a

+ 43 - 33
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminUserLogic.java

@@ -598,17 +598,27 @@ public class AdminUserLogic {
                 return new Page<>();
         }
 
-        // 角色获取用户id
-        List<String> roleUserIds = new ArrayList<>();
-        // 非商户主账号或者为网点账号时进入
-        if ((adminUser.getType() == 1 && !adminUser.getIsMaster()) || adminUser.getType() == 0) {
-            final List<AdminUser> adminUserList = adminUserService.lambdaQuery()
-                    .select(AdminUser::getAdminUserId)
-                    .eq(AdminUser::getRoleId, adminUser.getRoleId())
+        // 网点获取用户id
+        List<String> websitUserIds = new ArrayList<>();
+        // 非主账号并且为商户账号类型时进入
+        if (adminUser.getType() == 1 && !adminUser.getIsMaster()) {
+            final List<AdminUserWebsitRela> adminUserList = adminUserWebsitRelaService.lambdaQuery()
+                    .select(AdminUserWebsitRela::getAdminUserId)
+                    .eq(AdminUserWebsitRela::getCompanyWechatId, adminUser.getCompanyWechatId())
+                    .eq(AdminUserWebsitRela::getAdminWebsitId, adminUser.getAdminWebsitIds())
                     .list();
             if (CollectionUtil.isNotEmpty(adminUserList)) {
-                roleUserIds.addAll(adminUserList.stream().map(AdminUser::getAdminUserId).collect(Collectors.toList()));
-                this.queryUserIdByParentRoleId(roleUserIds, adminUser.getRoleId());
+                final List<AdminUser> userList = adminUserService.lambdaQuery()
+                        .eq(AdminUser::getCompanyWechatId, adminUser.getCompanyWechatId())
+                        .eq(AdminUser::getType, 1)
+                        .eq(AdminUser::getIsMaster, true)
+                        .list();
+                final List<String> masterUserIds = userList.stream().map(AdminUser::getAdminUserId).collect(Collectors.toList());
+                websitUserIds = adminUserList.stream()
+                        .map(AdminUserWebsitRela::getAdminUserId)
+                        .filter(adminUserId -> !masterUserIds.contains(adminUserId))
+                        .collect(Collectors.toList());
+
             }
         }
 
@@ -625,7 +635,7 @@ public class AdminUserLogic {
                 .and(CollectionUtils.isNotEmpty(adminUserIds),item -> item.in( AdminUser::getAdminUserId, adminUserIds)
                 .ne(AdminUser::getUserName,"admin")
                 )
-                .in(CollectionUtil.isNotEmpty(roleUserIds), AdminUser::getAdminUserId, roleUserIds)
+                .in(CollectionUtil.isNotEmpty(websitUserIds), AdminUser::getAdminUserId, websitUserIds)
                 .and(adminUser.getIsMaster() && adminUser.getType() == 0, v -> v.eq(AdminUser::getAdminUserId, adminUser.getAdminUserId())
                         .or()
                         .in(AdminUser::getMasterWebsitId, adminUser.getAdminWebsitIds()))
@@ -667,29 +677,29 @@ public class AdminUserLogic {
         return page;
     }
 
-    /**
-     * 根据父角色查询子角色关联的用户id
-     * @param roleUserIds
-     * @param parentRoleId
-     */
-    private void queryUserIdByParentRoleId(List<String> roleUserIds, String parentRoleId) {
-        final List<AdminRole> subRoleList = adminRoleService.lambdaQuery()
-                .eq(AdminRole::getParentRoleId, parentRoleId)
-                .list();
-        if (CollectionUtil.isNotEmpty(subRoleList)) {
-            final List<AdminUser> adminUserList = adminUserService.lambdaQuery()
-                    .select(AdminUser::getAdminUserId)
-                    .in(AdminUser::getRoleId, subRoleList.stream().map(AdminRole::getAdminRoleId).collect(Collectors.toList()))
-                    .list();
-            if (CollectionUtil.isNotEmpty(adminUserList)) {
-                roleUserIds.addAll(adminUserList.stream().map(AdminUser::getAdminUserId).collect(Collectors.toList()));
-            }
-
-            for (AdminRole adminRole : subRoleList) {
-                this.queryUserIdByParentRoleId(roleUserIds, adminRole.getAdminRoleId());
-            }
-        }
-    }
+//    /**
+//     * 根据父角色查询子角色关联的用户id
+//     * @param roleUserIds
+//     * @param parentRoleId
+//     */
+//    private void queryUserIdByParentRoleId(List<String> roleUserIds, String parentRoleId) {
+//        final List<AdminRole> subRoleList = adminRoleService.lambdaQuery()
+//                .eq(AdminRole::getParentRoleId, parentRoleId)
+//                .list();
+//        if (CollectionUtil.isNotEmpty(subRoleList)) {
+//            final List<AdminUser> adminUserList = adminUserService.lambdaQuery()
+//                    .select(AdminUser::getAdminUserId)
+//                    .in(AdminUser::getRoleId, subRoleList.stream().map(AdminRole::getAdminRoleId).collect(Collectors.toList()))
+//                    .list();
+//            if (CollectionUtil.isNotEmpty(adminUserList)) {
+//                roleUserIds.addAll(adminUserList.stream().map(AdminUser::getAdminUserId).collect(Collectors.toList()));
+//            }
+//
+//            for (AdminRole adminRole : subRoleList) {
+//                this.queryUserIdByParentRoleId(roleUserIds, adminRole.getAdminRoleId());
+//            }
+//        }
+//    }
 
 
     /**