diff --git a/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java b/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java index c85dcbf..0e00358 100644 --- a/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java +++ b/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java @@ -19,8 +19,8 @@ public class QueryParamDto { private String keyWord; /**权限层级*/ private String level = UserUtil.getAuthLevel(); - /**工程权限*/ - private List proIds = UserUtil.getAuthProIds(); + /**项目部权限*/ + private List departs = UserUtil.getAuthDeparts(); private int pageNum = 1; private int pageSize = 10; } diff --git a/src/main/java/com/bonus/digitalSignage/model/SysUser.java b/src/main/java/com/bonus/digitalSignage/model/SysUser.java index 447890a..b6f5c95 100644 --- a/src/main/java/com/bonus/digitalSignage/model/SysUser.java +++ b/src/main/java/com/bonus/digitalSignage/model/SysUser.java @@ -90,7 +90,9 @@ public class SysUser extends PageEntity { /** * 所属部门 */ - private String dept; + private Long dept; + + private List departs; /** * 登录权限 @@ -162,9 +164,9 @@ public class SysUser extends PageEntity { private String keyWord; /** - * 角色级别 + * 项目部级别 */ - private String roleLevel; + private String level; /** * 工程ID diff --git a/src/main/java/com/bonus/digitalSignage/system/dao/UserDao.java b/src/main/java/com/bonus/digitalSignage/system/dao/UserDao.java index 2a7b9d0..e5978b2 100644 --- a/src/main/java/com/bonus/digitalSignage/system/dao/UserDao.java +++ b/src/main/java/com/bonus/digitalSignage/system/dao/UserDao.java @@ -200,4 +200,6 @@ public interface UserDao { Integer saveUserProject(@Param("userId") Long id, @Param("proId")String proId); List getProjects(UserDto userDto); + + List getDataAuth(Long dept); } diff --git a/src/main/java/com/bonus/digitalSignage/system/service/UserService.java b/src/main/java/com/bonus/digitalSignage/system/service/UserService.java index 71ab5ca..1c9a86e 100644 --- a/src/main/java/com/bonus/digitalSignage/system/service/UserService.java +++ b/src/main/java/com/bonus/digitalSignage/system/service/UserService.java @@ -170,4 +170,13 @@ public interface UserService { List getPersonList(SysUser data); List getProjects(UserDto userDto); + + /** + * 查询当前登录用户的所属部门及子部门 + * @param dept + * @return List + * @author cwchen + * @date 2025/4/22 9:50 + */ + List getDataAuth(Long dept); } diff --git a/src/main/java/com/bonus/digitalSignage/system/service/impl/UserDetailsServiceImpl.java b/src/main/java/com/bonus/digitalSignage/system/service/impl/UserDetailsServiceImpl.java index e463a15..30c33f9 100644 --- a/src/main/java/com/bonus/digitalSignage/system/service/impl/UserDetailsServiceImpl.java +++ b/src/main/java/com/bonus/digitalSignage/system/service/impl/UserDetailsServiceImpl.java @@ -62,6 +62,9 @@ public class UserDetailsServiceImpl implements UserDetailsService { BeanUtils.copyProperties(sysUser, loginUser); List permissions = permissionDao.listByUserId(sysUser.getId()); loginUser.setPermissions(permissions); + // 查询当前登录用户数据权限 + List departs = userService.getDataAuth(loginUser.getDept()); + loginUser.setDeparts(departs); return loginUser; } diff --git a/src/main/java/com/bonus/digitalSignage/system/service/impl/UserServiceImpl.java b/src/main/java/com/bonus/digitalSignage/system/service/impl/UserServiceImpl.java index a95a326..6824862 100644 --- a/src/main/java/com/bonus/digitalSignage/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/bonus/digitalSignage/system/service/impl/UserServiceImpl.java @@ -1,7 +1,9 @@ package com.bonus.digitalSignage.system.service.impl; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import com.bonus.digitalSignage.base.entity.DtreeVo; import com.bonus.digitalSignage.model.Role; @@ -326,4 +328,13 @@ public class UserServiceImpl implements UserService { return userDto; } + @Override + public List getDataAuth(Long dept) { + try { + return Optional.ofNullable(userDao.getDataAuth(dept)).orElseGet(ArrayList::new); + } catch (Exception e) { + log.error(e.toString(), e); + return new ArrayList<>(); + } + } } diff --git a/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java b/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java index a08d966..fd5b7c5 100644 --- a/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java +++ b/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java @@ -7,10 +7,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; public class UserUtil { @@ -37,39 +34,17 @@ public class UserUtil { * @date 2025/4/21 18:02 */ public static String getAuthLevel() { - LoginUser loginUser = getLoginUser(); - if(loginUser == null){ - return null; - }else { - String roleLevel = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getRoleLevel).orElse("0"); - String proIds = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getProIds).orElse("-1"); - if(Objects.equals(roleLevel, Constants.ROLE_LEVEL)){ // 非全部权限 - List proList = Arrays.stream(proIds.split(",")).map(String::trim).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); - return null; - } - } - return null; + return Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getLevel).orElse("0"); } /** - * 获取所属工程权限 + * 获取所属项目部权限 * @return List * @author cwchen * @date 2025/4/21 18:02 */ - public static List getAuthProIds() { - LoginUser loginUser = getLoginUser(); - if(loginUser == null){ - return null; - }else { - String roleLevel = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getRoleLevel).orElse("0"); - String proIds = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getProIds).orElse("-1"); - if(Objects.equals(roleLevel, Constants.ROLE_LEVEL)){ // 非全部权限 - List proList = Arrays.stream(proIds.split(",")).map(String::trim).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); - return proList; - } - } - return null; + public static List getAuthDeparts() { + return Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getDeparts).orElse(null); } } diff --git a/src/main/resources/mappers/backstage/ProProgressMapper.xml b/src/main/resources/mappers/backstage/ProProgressMapper.xml index 8e3d91a..479a4cb 100644 --- a/src/main/resources/mappers/backstage/ProProgressMapper.xml +++ b/src/main/resources/mappers/backstage/ProProgressMapper.xml @@ -20,10 +20,10 @@ WHERE sd2.dict_code = 'voltage_level' AND sd.del_flag = 0 ) A ON A.dict_value = tp.voltage_level - - AND tp.pro_id IN - - #{proId} + + AND tp.depart_id IN + + #{departId} diff --git a/src/main/resources/mappers/system/UserMapper.xml b/src/main/resources/mappers/system/UserMapper.xml index b87ac1d..52d7f4b 100644 --- a/src/main/resources/mappers/system/UserMapper.xml +++ b/src/main/resources/mappers/system/UserMapper.xml @@ -79,9 +79,10 @@ @@ -272,6 +273,24 @@ left join tb_project p on t.pro_id = p.id where t.user_id = #{id} + insert into sys_role_user(roleId, userId) values