Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

‘linchangsheng’ 1 месяц назад
Родитель
Сommit
7feb6c3db5

+ 2 - 2
src/main/java/com/gree/mall/manager/controller/admin/AdminRoleController.java

@@ -27,13 +27,13 @@ public class AdminRoleController {
     @ApiOperation(value = "角色列表")
     public ResponseHelper<IPage<AdminRole>> list(
             HttpServletRequest request,
-            @ApiParam(value = "商户名称") @RequestParam(required = false) String companyWechatName,
+            @ApiParam(value = "商户名称") @RequestParam(required = false) String companyName,
             @ApiParam(value = "上级商户") @RequestParam(required = false) String adminCompanyId,
             @ApiParam(value = "适用机构 2:商家 1:商户 0:平台") @RequestParam(required = false) Integer type,
             @ApiParam(value = "页号", required = true) @RequestParam Integer pageNum,
             @ApiParam(value = "页大小", required = true) @RequestParam Integer pageSize
     ) throws RemoteServiceException {
-        IPage<AdminRole> adminRoleIPage = adminRoleLogic.listPage(request, companyWechatName, adminCompanyId, type, pageNum, pageSize);
+        IPage<AdminRole> adminRoleIPage = adminRoleLogic.listPage(request, companyName, adminCompanyId, type, pageNum, pageSize);
         return ResponseHelper.success(adminRoleIPage);
     }
 

+ 11 - 3
src/main/java/com/gree/mall/manager/logic/admin/AdminRoleLogic.java

@@ -36,18 +36,26 @@ public class AdminRoleLogic {
     /**
      * 角色列表
      */
-    public IPage<AdminRole> listPage(HttpServletRequest request, String companyWechatName, String adminCompanyId, Integer type, Integer pageNo, Integer pageSize) {
+    public IPage<AdminRole> listPage(HttpServletRequest request, String companyName, String adminCompanyId, Integer type, Integer pageNo, Integer pageSize) {
         AdminUserCom adminUser = commonLogic.getAdminUser(request);
         List<String> companyIds = adminUser.getAdminCompanyIds();
 
         Integer userType = this.checkUserType(adminUser);
 
         return adminRoleService.lambdaQuery()
-                .eq(StringUtils.isNotBlank(companyWechatName), AdminRole::getCompanyName, companyWechatName)
+                .eq(StringUtils.isNotBlank(companyName), AdminRole::getCompanyName, companyName)
                 .eq(StringUtils.isNotBlank(adminCompanyId), AdminRole::getCompanyId, adminCompanyId)
                 .eq(Objects.nonNull(type), AdminRole::getType, type)
-                .in(CollectionUtils.isNotEmpty(companyIds), AdminRole::getCompanyId, companyIds)
                 .ge(userType > 0, AdminRole::getType, userType)
+                .and(CollectionUtils.isNotEmpty(companyIds), v -> {
+                    if (!adminUser.getUserName().equals("admin") && adminUser.getType().equals(0)) {
+                        v.in(CollectionUtils.isNotEmpty(companyIds), AdminRole::getCompanyId, companyIds)
+                                .or()
+                                .isNull(AdminRole::getCompanyId);
+                    } else {
+                        v.in(CollectionUtils.isNotEmpty(companyIds), AdminRole::getCompanyId, companyIds);
+                    }
+                })
                 .orderByAsc(AdminRole::getType)
                 .page(new Page<>(pageNo, pageSize));
     }

+ 29 - 9
src/main/java/com/gree/mall/manager/logic/admin/AdminUserLogic.java

@@ -214,7 +214,7 @@ public class AdminUserLogic {
         }
 
         if (curLoginAmin.getType() == 0 && adminUser.getType() != 0) {
-            if (StringUtils.isBlank(adminUser.getCompanyId()) || StringUtils.isBlank(adminUser.getCompanyName()) ) {
+            if (StringUtils.isBlank(adminUser.getCompanyId()) || StringUtils.isBlank(adminUser.getCompanyName())) {
                 throw new RemoteServiceException("管理员创建“非平台账号”账号,必须指定所属公司");
             }
         }
@@ -247,6 +247,11 @@ public class AdminUserLogic {
             adminUser.setCompanyName(curLoginAmin.getCompanyName());
         }
 
+        if (StringUtils.isBlank(adminUser.getCompanyId())) {
+            adminUser.setCompanyId("");
+            adminUser.setCompanyName("");
+        }
+
         // 检查角色
         AdminRole addUserRole;
         if (StringUtils.isEmpty(adminUser.getRoleId()) ||
@@ -342,8 +347,8 @@ public class AdminUserLogic {
         AdminUserCom adminUser = commonLogic.getAdminUser(request);
 
         Set<String> adminUserIdList = new HashSet<>();
-        if (!adminUser.getType().equals(0)) {
-            // 非平台账号,筛选能看的账号
+        if (!adminUser.getUserName().equals("admin")) {
+            // 非admin,筛选能看的账号
             this.queryCanSeeAdminUser(adminUserIdList, adminUser);
             adminUserIdList.add(adminUser.getAdminUserId());
         }
@@ -353,7 +358,15 @@ public class AdminUserLogic {
                 .ne(!adminUser.getUserName().equals("admin"), AdminUser::getUserName, "admin")
                 .eq(StringUtils.isNotEmpty(roleId), AdminUser::getRoleId, roleId)
                 .eq(status != null, AdminUser::getStatus, status)
-                .in(CollectionUtils.isNotEmpty(adminUser.getAdminCompanyIds()), AdminUser::getCompanyId, adminUser.getAdminCompanyIds())
+                .and(CollectionUtils.isNotEmpty(adminUser.getAdminCompanyIds()), v -> {
+                    if (!adminUser.getUserName().equals("admin") && adminUser.getType().equals(0)) {
+                        v.in(CollectionUtils.isNotEmpty(adminUser.getAdminCompanyIds()), AdminUser::getCompanyId, adminUser.getAdminCompanyIds())
+                                .or()
+                                .eq(AdminUser::getCompanyId, "");
+                    } else {
+                        v.in(CollectionUtils.isNotEmpty(adminUser.getAdminCompanyIds()), AdminUser::getCompanyId, adminUser.getAdminCompanyIds());
+                    }
+                })
                 .like(StringUtils.isNotEmpty(userName), AdminUser::getUserName, userName)
                 .page(new Page<>(pageNum, pageSize));
         return page;
@@ -396,11 +409,14 @@ public class AdminUserLogic {
         }
 
         // 根据商家id集合查找有关联的账号
-        List<AdminUserPermissionsRela> adminUserPermissionsRelaList = adminUserPermissionsRelaService.lambdaQuery()
-                .select(AdminUserPermissionsRela::getAdminUserId)
-                .in(AdminUserPermissionsRela::getAdminUserPermissionsId, websitIdList)
-                .groupBy(AdminUserPermissionsRela::getAdminUserId)
-                .list();
+        List<AdminUserPermissionsRela> adminUserPermissionsRelaList = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(websitIdList)) {
+            adminUserPermissionsRelaList = adminUserPermissionsRelaService.lambdaQuery()
+                    .select(AdminUserPermissionsRela::getAdminUserId)
+                    .in(AdminUserPermissionsRela::getAdminUserPermissionsId, websitIdList)
+                    .groupBy(AdminUserPermissionsRela::getAdminUserId)
+                    .list();
+        }
 
         if (CollectionUtil.isNotEmpty(deptIdList)) {
             final List<AdminUserPermissionsRela> relaDeptList = adminUserPermissionsRelaService.lambdaQuery()
@@ -411,6 +427,10 @@ public class AdminUserLogic {
             adminUserPermissionsRelaList.addAll(relaDeptList);
         }
 
+        if (CollectionUtil.isEmpty(adminUserPermissionsRelaList)) {
+            return;
+        }
+
         List<String> queryAdminUserIdList = adminUserPermissionsRelaList.stream()
                 .map(AdminUserPermissionsRela::getAdminUserId)
                 .distinct()

+ 5 - 4
src/main/java/com/gree/mall/manager/logic/common/CommonLogic.java

@@ -34,10 +34,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.TreeMap;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -164,6 +161,10 @@ public class CommonLogic {
             adminUserCom.setAdminWebsitIds(websitList.stream().distinct().sorted().collect(Collectors.toList()));
         }
 
+        if (!adminUserCom.getNickName().equals("admin") && CollectionUtil.isEmpty(adminUserCom.getAdminWebsitIds())) {
+            adminUserCom.setAdminWebsitIds(Collections.singletonList("0"));
+        }
+
         return adminUserCom;
     }