diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 7b0d81c06..955db8360 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -1752,4 +1752,13 @@ public class SysUserController { List sysUserList = sysUserService.querySysUserListByIdList(userIdList); return sysUserList; } + + @ApiOperation(value = "用户管理-查出所有部门及其用户") + @GetMapping(value = "/queryViewerInfo") + public ViewerInfoVo queryViewerInfoVo(@RequestParam(name = "userId", required = true) String userId){ + ViewerInfoVo viewerInfoVo = new ViewerInfoVo(); + viewerInfoVo.setBrandList(projectUserBrandService.queryBrandByUserId(userId)); + viewerInfoVo.setDutyTerritoryList(projectUserDutyTerritoryService.queryDutyTerritoryByUserId(userId)); + return viewerInfoVo; + } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ViewerInfoVo.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ViewerInfoVo.java new file mode 100644 index 000000000..a0fc12192 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ViewerInfoVo.java @@ -0,0 +1,36 @@ +package com.jero.modules.system.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class ViewerInfoVo { + + List brandList; + List dutyTerritoryList; + + public List getBrandList() { + return brandList; + } + + public void setBrandList(List brandList) { + this.brandList = brandList; + } + + public List getDutyTerritoryList() { + return dutyTerritoryList; + } + + public void setDutyTerritoryList(List dutyTerritoryList) { + this.dutyTerritoryList = dutyTerritoryList; + } + + public ViewerInfoVo() { + } + + public ViewerInfoVo(List brandList, List dutyTerritoryList) { + this.brandList = brandList; + this.dutyTerritoryList = dutyTerritoryList; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java index 9c348e93c..4a62c010a 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java @@ -10,7 +10,7 @@ public enum ProjectRoleEnum { REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer"), MANAGER("领导角色","11","R&H Manager"), ADMIN("系统管理员","12","admin"), - VIEWER("Viewer","","Viewer"), + VIEWER("Viewer","13","Viewer"), ; String name; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java index a66b051ef..6ef6744b5 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java @@ -42,4 +42,6 @@ public interface IProjectUserBrandService extends IService { * @return */ List queryList(); + + List queryBrandByUserId(String userId); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java index e7b8f9e2f..a7411a8ff 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java @@ -42,4 +42,12 @@ public interface IProjectUserDutyTerritoryService extends IService queryList(); + + /** + * 根据id查询对应的dutyTerritory集合 + * @param userId + * @return + */ + List queryDutyTerritoryByUserId(String userId); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java index 8b70f71bb..b91111940 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java @@ -1,10 +1,13 @@ package com.jero.modules.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.modules.system.entity.ProjectUserBrand; import com.jero.modules.system.mapper.ProjectUserBrandMapper; import com.jero.modules.system.service.IProjectUserBrandService; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -59,4 +62,15 @@ public class ProjectUserBrandServiceImpl extends ServiceImpl queryList() { return list(); } + + @Override + public List queryBrandByUserId(String userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + List list = list(queryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + return list.stream().map(ProjectUserBrand::getBrandType).collect(Collectors.toList()); + } + return null; + } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java index 40bdf68b0..186041fb0 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java @@ -1,10 +1,15 @@ package com.jero.modules.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.modules.system.entity.ProjectUserDutyTerritory; import com.jero.modules.system.mapper.ProjectUserDutyTerritoryMapper; import com.jero.modules.system.service.IProjectUserDutyTerritoryService; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; + +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -59,4 +64,20 @@ public class ProjectUserDutyTerritoryServiceImpl extends ServiceImpl queryList() { return list(); } + + /** + * 根据id查询对应的dutyTerritory集合 + * @param userId + * @return + */ + @Override + public List queryDutyTerritoryByUserId(String userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + List list = list(queryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + return list.stream().map(ProjectUserDutyTerritory::getDutyTerritory).collect(Collectors.toList()); + } + return null; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java index 775fd29d1..50ec3b0c8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java @@ -20,7 +20,7 @@ public enum ProjectRoleEnum { VERIFYDUTY("验证符合性确认-责任人","10",""), MANAGER("验证符合性确认-责任人","11",""), ADMIN("系统管理员","12",""), - VIEWER("Viewer","",""), + VIEWER("Viewer","13",""), ; String name; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java index c07e317cf..15718bb54 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java @@ -1,6 +1,7 @@ package com.jero.modules.project.mapper; import java.util.List; +import java.util.Set; import org.apache.ibatis.annotations.Param; import com.jero.modules.project.entity.ProjectUserPermission; @@ -15,5 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface ProjectUserPermissionMapper extends BaseMapper { - List queryProjectIdsByUserId(@Param("userId") String userId); + Set queryProjectIdsByUserId(@Param("userId") String userId); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index b1b7892f5..340bd15ae 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -58,6 +58,7 @@ import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysRoleMapper; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; import com.jero.modules.system.service.ISysAnnouncementService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; @@ -242,6 +243,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl{ queryWrapper.eq("regulation_owner_id",currentUser.getId()). or().eq("homologation_engineer_id",currentUser.getId()); }); } List result = super.baseMapper.selectList(projectLawsInventoryEOQueryWrapper); + if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) { + //查当前用户Viewer对应责任领域 + List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + result = result.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList()); + } else { + result = new ArrayList<>(); + } + } dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); long startTime = System.currentTimeMillis(); dataDictDispose(result,projectLawsInventoryEO.getCut()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 3bce43455..ef13c9a91 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -24,6 +24,7 @@ import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysRoleMapper; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; @@ -46,15 +47,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.text.ParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -126,6 +119,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl queryPageList(Map params) { LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - List projectIds = new ArrayList<>(); - if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) == 0) { - //如果不是Viewer,根据项目用户权限表筛选有权访问的项目 - projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); + //根据项目用户权限表筛选有权访问的项目 + Set projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); + if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) { + //如果是Viewer,根据配置的品牌筛选可访问的项目 + List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(brandTypes)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("brand",brandTypes); + if (ObjectUtils.isNotEmpty(list(queryWrapper))) { + projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet())); + } + } } List result = projectLibraryBaseMapper.queryPageList(params);