diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java b/lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java index 2b7bdcd..6169ab3 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java @@ -112,7 +112,13 @@ public class DeptController extends BladeController { @ApiOperationSupport(order = 4) @ApiOperation(value = "树形结构", notes = "树形结构") public R> tree(String tenantId, BladeUser bladeUser) { - List tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + List tree = new ArrayList<>(); + if(bladeUser.getRoleName().equals("厂区")){ + Long deptId = Long.parseLong(bladeUser.getDeptId()); + tree = deptService.companyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), deptId); + }else{ + tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + } return R.data(tree); } @@ -123,7 +129,13 @@ public class DeptController extends BladeController { @ApiOperationSupport(order = 5) @ApiOperation(value = "懒加载树形结构", notes = "树形结构") public R> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) { - List tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId); + List tree = new ArrayList<>(); + if(bladeUser.getRoleName().equals("厂区")&&parentId==0){ + Long deptId = Long.parseLong(bladeUser.getDeptId()); + tree = deptService.lazyCompanyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), deptId); + }else{ + tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId); + } return R.data(tree); } diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java b/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java index dcca308..906cb7a 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java @@ -9,11 +9,9 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.BladeUser; -import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; -import org.springblade.core.tool.constant.RoleConstant; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.SysCache; import org.springblade.system.entity.Role; @@ -25,6 +23,7 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -69,6 +68,13 @@ public class RoleController extends BladeController { public R> list(@ApiIgnore @RequestParam Map role, BladeUser bladeUser) { QueryWrapper queryWrapper = Condition.getQueryWrapper(role, Role.class); List list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper); + if(bladeUser.getRoleName().equals("厂区")){ + List excludes = new ArrayList<>(); + excludes.add("admin"); + excludes.add("政府"); + excludes.add("政府大屏"); + list.removeIf(role1 -> excludes.contains(role1.getRoleAlias())); + } return R.data(RoleWrapper.build().listNodeVO(list)); } @@ -79,7 +85,12 @@ public class RoleController extends BladeController { @ApiOperationSupport(order = 3) @ApiOperation(value = "树形结构", notes = "树形结构") public R> tree(String tenantId, BladeUser bladeUser) { - List tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + List tree = new ArrayList<>(); + if(bladeUser.getRoleName().equals("厂区")){ + tree = roleService.companyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + }else{ + tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + } return R.data(tree); } @@ -91,7 +102,12 @@ public class RoleController extends BladeController { @ApiOperation(value = "树形结构", notes = "树形结构") public R> treeById(Long roleId, BladeUser bladeUser) { Role role = SysCache.getRole(roleId); - List tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId()); + List tree = new ArrayList<>(); + if(bladeUser.getRoleName().equals("厂区")){ + tree = roleService.companyTree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId()); + }else{ + tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId()); + } return R.data(tree); } diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.java b/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.java index 78a67e2..8a42b28 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.java @@ -33,6 +33,14 @@ public interface DeptMapper extends BaseMapper { */ List tree(String tenantId); + /** + * 获取厂区树形节点 + * + * @param tenantId + * @return + */ + List companyTree(String tenantId,Long deptId); + /** * 懒加载获取树形节点 * @@ -42,6 +50,14 @@ public interface DeptMapper extends BaseMapper { */ List lazyTree(String tenantId, Long parentId); + /** + * 懒加载获取树形节点 + * + * @param tenantId + * @return + */ + List lazyCompanyTree(String tenantId, Long deptId); + /** * 获取部门名 * diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml b/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml index 6054664..f9387d2 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml +++ b/lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml @@ -74,6 +74,17 @@ ORDER BY sort + + + + + +