diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java index af59a7c..e07d75b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractTenantService; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; @@ -31,15 +32,20 @@ @Resource private ITenantDeptService tenantDeptService; + + @Resource + private AbstractPermissionContext permissionService; + /** * 获取组织绑定关系列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String tenantName) { + Long deptId=permissionService.getAuthService().getLoginUser().getDeptId(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); - List list = tenantDeptService.tenantList(query); + query.like("tenant_name", tenantName); + List list = tenantDeptService.tenantList(query,deptId); return ResponseData.success(list); } @@ -51,7 +57,7 @@ public Object listPage(String tenantName) { Page page = PageFactory.defaultPage(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); + query.like("tenant_name", tenantName); page = tenantDeptService.page(page, query); return super.packForBT(page); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java index af59a7c..e07d75b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractTenantService; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; @@ -31,15 +32,20 @@ @Resource private ITenantDeptService tenantDeptService; + + @Resource + private AbstractPermissionContext permissionService; + /** * 获取组织绑定关系列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String tenantName) { + Long deptId=permissionService.getAuthService().getLoginUser().getDeptId(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); - List list = tenantDeptService.tenantList(query); + query.like("tenant_name", tenantName); + List list = tenantDeptService.tenantList(query,deptId); return ResponseData.success(list); } @@ -51,7 +57,7 @@ public Object listPage(String tenantName) { Page page = PageFactory.defaultPage(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); + query.like("tenant_name", tenantName); page = tenantDeptService.page(page, query); return super.packForBT(page); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java index cd02707..23786e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java @@ -3,14 +3,19 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.modular.system.model.TenantDept; +import java.util.List; +import java.util.Map; + /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author lwh123 * @since 2022-06-07 */ public interface TenantDeptMapper extends BaseMapper { + List> getDeptList(); + List> getTenantDeptList(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java index af59a7c..e07d75b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractTenantService; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; @@ -31,15 +32,20 @@ @Resource private ITenantDeptService tenantDeptService; + + @Resource + private AbstractPermissionContext permissionService; + /** * 获取组织绑定关系列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String tenantName) { + Long deptId=permissionService.getAuthService().getLoginUser().getDeptId(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); - List list = tenantDeptService.tenantList(query); + query.like("tenant_name", tenantName); + List list = tenantDeptService.tenantList(query,deptId); return ResponseData.success(list); } @@ -51,7 +57,7 @@ public Object listPage(String tenantName) { Page page = PageFactory.defaultPage(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); + query.like("tenant_name", tenantName); page = tenantDeptService.page(page, query); return super.packForBT(page); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java index cd02707..23786e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java @@ -3,14 +3,19 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.modular.system.model.TenantDept; +import java.util.List; +import java.util.Map; + /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author lwh123 * @since 2022-06-07 */ public interface TenantDeptMapper extends BaseMapper { + List> getDeptList(); + List> getTenantDeptList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml index b569a2f..320caa9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml @@ -4,9 +4,9 @@ - - - + + + @@ -14,4 +14,14 @@ id, tenant_id AS tenantId, dept_id AS deptId + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java index af59a7c..e07d75b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractTenantService; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; @@ -31,15 +32,20 @@ @Resource private ITenantDeptService tenantDeptService; + + @Resource + private AbstractPermissionContext permissionService; + /** * 获取组织绑定关系列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String tenantName) { + Long deptId=permissionService.getAuthService().getLoginUser().getDeptId(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); - List list = tenantDeptService.tenantList(query); + query.like("tenant_name", tenantName); + List list = tenantDeptService.tenantList(query,deptId); return ResponseData.success(list); } @@ -51,7 +57,7 @@ public Object listPage(String tenantName) { Page page = PageFactory.defaultPage(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); + query.like("tenant_name", tenantName); page = tenantDeptService.page(page, query); return super.packForBT(page); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java index cd02707..23786e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java @@ -3,14 +3,19 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.modular.system.model.TenantDept; +import java.util.List; +import java.util.Map; + /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author lwh123 * @since 2022-06-07 */ public interface TenantDeptMapper extends BaseMapper { + List> getDeptList(); + List> getTenantDeptList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml index b569a2f..320caa9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml @@ -4,9 +4,9 @@ - - - + + + @@ -14,4 +14,14 @@ id, tenant_id AS tenantId, dept_id AS deptId + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java index 540fb73..de1690f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java @@ -24,7 +24,7 @@ * @param query 检索条件 * @return 租户列表查询 */ - List tenantList(QueryWrapper query); + List tenantList(QueryWrapper query,Long deptId); /** * 绑定项目关系 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java index af59a7c..e07d75b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractTenantService; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; @@ -31,15 +32,20 @@ @Resource private ITenantDeptService tenantDeptService; + + @Resource + private AbstractPermissionContext permissionService; + /** * 获取组织绑定关系列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String tenantName) { + Long deptId=permissionService.getAuthService().getLoginUser().getDeptId(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); - List list = tenantDeptService.tenantList(query); + query.like("tenant_name", tenantName); + List list = tenantDeptService.tenantList(query,deptId); return ResponseData.success(list); } @@ -51,7 +57,7 @@ public Object listPage(String tenantName) { Page page = PageFactory.defaultPage(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); + query.like("tenant_name", tenantName); page = tenantDeptService.page(page, query); return super.packForBT(page); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java index cd02707..23786e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java @@ -3,14 +3,19 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.modular.system.model.TenantDept; +import java.util.List; +import java.util.Map; + /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author lwh123 * @since 2022-06-07 */ public interface TenantDeptMapper extends BaseMapper { + List> getDeptList(); + List> getTenantDeptList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml index b569a2f..320caa9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml @@ -4,9 +4,9 @@ - - - + + + @@ -14,4 +14,14 @@ id, tenant_id AS tenantId, dept_id AS deptId + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java index 540fb73..de1690f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java @@ -24,7 +24,7 @@ * @param query 检索条件 * @return 租户列表查询 */ - List tenantList(QueryWrapper query); + List tenantList(QueryWrapper query,Long deptId); /** * 绑定项目关系 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java index 4c9bd3a..9f7449c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java @@ -9,11 +9,13 @@ import com.casic.missiles.modular.system.model.Tenant; import com.casic.missiles.modular.system.model.TenantDept; import com.casic.missiles.modular.system.service.ITenantDeptService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -32,28 +34,80 @@ private AbstractDeptService abstractDeptService; @Override - public List tenantList(QueryWrapper query) { + public List tenantList(QueryWrapper query, Long deptId) { + Map deptMap = getDeptList(); + Map tenantDeptMap = getTenantDeptList(); List tenants = abstractTenantService.list(query); - List dtos = tenants.stream().map(tenant -> { - TenantDTO dto = new TenantDTO(); - BeanUtils.copyProperties(tenant, dto); - QueryWrapper dtoQuery = new QueryWrapper<>(); - dtoQuery.eq("tenant_id",dto.getId()); - TenantDept tenantDept = this.getOne(dtoQuery); - if (tenantDept != null) { - dto.setDeptId(tenantDept.getDeptId()); - dto.setDeptName(abstractDeptService.getDeptName(tenantDept.getDeptId())); - } - return dto; - }).collect(Collectors.toList()); + List dtos = tenants.stream().filter( + tenant -> filterByDept(tenant, tenantDeptMap, deptId, deptMap) + ).map(tenant -> appendDeptInfo(tenant, tenantDeptMap)).collect(Collectors.toList()); return dtos; } @Override public void relateTenant(TenantDept tenantDept) { QueryWrapper dtoQuery = new QueryWrapper<>(); - dtoQuery.eq("tenant_id",tenantDept.getTenantId()); + dtoQuery.eq("tenant_id", tenantDept.getTenantId()); this.remove(dtoQuery); this.save(tenantDept); } + + /** + * 获取部门和pid的map + * @return + */ + private Map getDeptList() { + List> deptMapList = this.baseMapper.getDeptList(); + Map deptMap = deptMapList.stream() + .collect(Collectors.toMap(e -> String.valueOf(e.get("id")), e -> String.valueOf(e.get("pid")))); + return deptMap; + } + + /** + * 获取tenant、Deptid的map + * @return + */ + private Map getTenantDeptList() { + List> tenantDeptList = this.baseMapper.getTenantDeptList(); + Map tenantDeptMap = tenantDeptList.stream() + .collect(Collectors.toMap(e -> String.valueOf(e.get("tentantId")), e -> String.valueOf(e.get("deptId")))); + return tenantDeptMap; + } + + /** + * 根据部门过滤tenant + * @param tenant + * @param tenantDeptMap + * @param deptId + * @param deptMap + * @return + */ + private Boolean filterByDept(Tenant tenant, Map tenantDeptMap, Long deptId, Map deptMap) { + Boolean flag = false; + String tempDeptId = tenantDeptMap.get(String.valueOf(tenant.getId())); + while (!StringUtils.isEmpty(tempDeptId)&&!tempDeptId.equals("-1")) { + if (tempDeptId.equals(String.valueOf(deptId))) { + flag = true; + break; + } + tempDeptId = deptMap.get(tempDeptId); + } + return flag; + } + + /** + * 增加部门信息 + * @param tenant + * @param tenantDeptMap + * @return + */ + private TenantDTO appendDeptInfo(Tenant tenant, Map tenantDeptMap) { + TenantDTO dto = new TenantDTO(); + BeanUtils.copyProperties(tenant, dto); + if (tenantDeptMap.containsKey(String.valueOf(dto.getId()))) { + dto.setDeptId(Long.valueOf(tenantDeptMap.get(String.valueOf(dto.getId())))); + dto.setDeptName(abstractDeptService.getDeptName(dto.getDeptId())); + } + return dto; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 1527960..db3b361 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -51,11 +51,13 @@ */ @RequestMapping("/level/list") @ResponseBody - public Object levelList() { + public Object levelList(Long tenantId) { List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); //当前用户所属组织机构关联的项目id - Long tenantId = Long.valueOf(currUser.getTenantId()); + if(ObjectUtil.isEmpty(tenantId)){ + tenantId = Long.valueOf(currUser.getTenantId()); + } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); if (ObjectUtil.isEmpty(deptPermission)) { return levelList; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java index af59a7c..e07d75b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/TenantDeptController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractTenantService; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; @@ -31,15 +32,20 @@ @Resource private ITenantDeptService tenantDeptService; + + @Resource + private AbstractPermissionContext permissionService; + /** * 获取组织绑定关系列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String tenantName) { + Long deptId=permissionService.getAuthService().getLoginUser().getDeptId(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); - List list = tenantDeptService.tenantList(query); + query.like("tenant_name", tenantName); + List list = tenantDeptService.tenantList(query,deptId); return ResponseData.success(list); } @@ -51,7 +57,7 @@ public Object listPage(String tenantName) { Page page = PageFactory.defaultPage(); QueryWrapper query = new QueryWrapper<>(); - query.like("tenant_name",tenantName); + query.like("tenant_name", tenantName); page = tenantDeptService.page(page, query); return super.packForBT(page); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java index cd02707..23786e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/TenantDeptMapper.java @@ -3,14 +3,19 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.casic.missiles.modular.system.model.TenantDept; +import java.util.List; +import java.util.Map; + /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author lwh123 * @since 2022-06-07 */ public interface TenantDeptMapper extends BaseMapper { + List> getDeptList(); + List> getTenantDeptList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml index b569a2f..320caa9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/TenantDeptMapper.xml @@ -4,9 +4,9 @@ - - - + + + @@ -14,4 +14,14 @@ id, tenant_id AS tenantId, dept_id AS deptId + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java index 540fb73..de1690f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ITenantDeptService.java @@ -24,7 +24,7 @@ * @param query 检索条件 * @return 租户列表查询 */ - List tenantList(QueryWrapper query); + List tenantList(QueryWrapper query,Long deptId); /** * 绑定项目关系 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java index 4c9bd3a..9f7449c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/TenantDeptServiceImpl.java @@ -9,11 +9,13 @@ import com.casic.missiles.modular.system.model.Tenant; import com.casic.missiles.modular.system.model.TenantDept; import com.casic.missiles.modular.system.service.ITenantDeptService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -32,28 +34,80 @@ private AbstractDeptService abstractDeptService; @Override - public List tenantList(QueryWrapper query) { + public List tenantList(QueryWrapper query, Long deptId) { + Map deptMap = getDeptList(); + Map tenantDeptMap = getTenantDeptList(); List tenants = abstractTenantService.list(query); - List dtos = tenants.stream().map(tenant -> { - TenantDTO dto = new TenantDTO(); - BeanUtils.copyProperties(tenant, dto); - QueryWrapper dtoQuery = new QueryWrapper<>(); - dtoQuery.eq("tenant_id",dto.getId()); - TenantDept tenantDept = this.getOne(dtoQuery); - if (tenantDept != null) { - dto.setDeptId(tenantDept.getDeptId()); - dto.setDeptName(abstractDeptService.getDeptName(tenantDept.getDeptId())); - } - return dto; - }).collect(Collectors.toList()); + List dtos = tenants.stream().filter( + tenant -> filterByDept(tenant, tenantDeptMap, deptId, deptMap) + ).map(tenant -> appendDeptInfo(tenant, tenantDeptMap)).collect(Collectors.toList()); return dtos; } @Override public void relateTenant(TenantDept tenantDept) { QueryWrapper dtoQuery = new QueryWrapper<>(); - dtoQuery.eq("tenant_id",tenantDept.getTenantId()); + dtoQuery.eq("tenant_id", tenantDept.getTenantId()); this.remove(dtoQuery); this.save(tenantDept); } + + /** + * 获取部门和pid的map + * @return + */ + private Map getDeptList() { + List> deptMapList = this.baseMapper.getDeptList(); + Map deptMap = deptMapList.stream() + .collect(Collectors.toMap(e -> String.valueOf(e.get("id")), e -> String.valueOf(e.get("pid")))); + return deptMap; + } + + /** + * 获取tenant、Deptid的map + * @return + */ + private Map getTenantDeptList() { + List> tenantDeptList = this.baseMapper.getTenantDeptList(); + Map tenantDeptMap = tenantDeptList.stream() + .collect(Collectors.toMap(e -> String.valueOf(e.get("tentantId")), e -> String.valueOf(e.get("deptId")))); + return tenantDeptMap; + } + + /** + * 根据部门过滤tenant + * @param tenant + * @param tenantDeptMap + * @param deptId + * @param deptMap + * @return + */ + private Boolean filterByDept(Tenant tenant, Map tenantDeptMap, Long deptId, Map deptMap) { + Boolean flag = false; + String tempDeptId = tenantDeptMap.get(String.valueOf(tenant.getId())); + while (!StringUtils.isEmpty(tempDeptId)&&!tempDeptId.equals("-1")) { + if (tempDeptId.equals(String.valueOf(deptId))) { + flag = true; + break; + } + tempDeptId = deptMap.get(tempDeptId); + } + return flag; + } + + /** + * 增加部门信息 + * @param tenant + * @param tenantDeptMap + * @return + */ + private TenantDTO appendDeptInfo(Tenant tenant, Map tenantDeptMap) { + TenantDTO dto = new TenantDTO(); + BeanUtils.copyProperties(tenant, dto); + if (tenantDeptMap.containsKey(String.valueOf(dto.getId()))) { + dto.setDeptId(Long.valueOf(tenantDeptMap.get(String.valueOf(dto.getId())))); + dto.setDeptName(abstractDeptService.getDeptName(dto.getDeptId())); + } + return dto; + } } diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 80c2da7..dfecddd 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dev + active: postgre servlet: multipart: max-file-size: 50MB @@ -18,7 +18,7 @@ enable-sql-runner: true configuration: # 配置结果集属性为空时 是否映射返回结果 -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 # log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl ################### mybatis-plus配置 ################### ################### casic配置 ###################