diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 64a709f..90ecf76 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -121,15 +121,9 @@ public class WhiteController extends CoreBaseController { ValidatorBean.checkNotNull(loginName,"用户名不能为空"); ValidatorBean.checkNotNull(loginPwd,"密码不能为空"); ValidatorBean.checkNotNull(languageCode,"语言不能为空"); -// ValidatorBean.checkNotNull(ipAddr,"IP 地址不能为空"); logout(); - - // 去除前后空格 - loginName = loginName.trim(); - loginPwd = loginPwd.trim(); - - SessionUser user = userService.queryUserLogin(loginName,loginPwd,languageCode); + SessionUser user = userService.queryUserLogin(loginName.trim(),loginPwd.trim(),languageCode); String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + user.getUser().getId(); redisCore.deleteKey(redisKey); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index ac93866..44309b8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -306,6 +306,7 @@ public class SysMenuController extends CoreBaseController { ValidatorBean.checkNotNull(menu.getParentId(), "父级功能ID不能为空"); menu.setId(Long.parseLong(menu.getMenuCode())); + menu.setMenuSort(Integer.parseInt(menu.getMenuCode())); if (!map.containsKey(menu.getMenuCode())) { map.put(menu.getMenuCode(),menu); } else { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java index 56851c0..b55d00f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java @@ -35,6 +35,13 @@ public interface IUserPermissionDao { List findSysMenuByUser(SysUser user); /** + * 根据角色获取 目录 + * @param roleId 角色ID集合 + * @return 获取有效的目录信息 + */ + List findSysMenuByInRoleId(Long ... roleId); + + /** * 查询用户所有功能权限 Tree * @param user 用户 * @return 查询结果 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java index 34a3bb3..92d2f08 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import javax.persistence.EntityManager; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -40,7 +41,7 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { LOGGER.info(" 查询用户所有角色 user id:{}", user.getId()); String hql = "select sr from SysRefUserRole as rur " + - " left join SysRole as sr on sr.id = rur.roleId " + + " left join SysRole as sr on sr.id = rur.roleId" + " where rur.userId =:userId"; //hql = "select rur from RefUserRole as rur,SysRole as where rur.userId =:userId and sr.id = rur.roleId"; return entityManager.createQuery(hql).setParameter("userId",user.getId()).getResultList(); @@ -66,6 +67,26 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { } @Override + public List findSysMenuByInRoleId(Long... roleId) { + LOGGER.info(" 查询用户所有菜单 roleIds :{}", roleId); + List result = new ArrayList<>(); + if(roleId != null && roleId.length > 0){ + String hql = "select sm from SysRefRoleMenu as rrm " + + " left join SysMenu as sm on sm.id = rrm.menuId" + + " where rrm.roleId in :roleId"; + List list = entityManager.createQuery(hql).setParameter("roleId", Arrays.asList(roleId)).getResultList(); + if(list != null && list.size() > 0){ + for (SysMenu menu : list) { + if(!result.contains(menu)){ + result.add(menu); + } + } + } + } + return result; + } + + @Override public List findSysMenuByUserTree(SysUser user) { return null; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java index 950828d..f7da85b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java @@ -82,7 +82,6 @@ public class SysMenuService implements ISysMenuService { sysMenuRDao.update(menu); // 更新冗余信息 personnelService.refreshMenuRdd(menu.getId()); - personnelService.refreshUpdateMenuRdd(menu.getId()); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index 5d493c4..740a764 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -177,17 +177,6 @@ public class SysRoleService implements ISysRoleService { } } - // 冗余信息 - for (SysRole role : roleList) { - role.setModuleNumber(moduleListRdd.size()); - role.setModuleNamesRdd(String.join(",",moduleListRdd)); - - role.setMenuNumber(featuresListRdd.size()); - role.setMenuNamesRdd(String.join(",",featuresListRdd)); - -// ConvertBean.serviceModelUpdate(role,userName); - } - refRoleMenuRDao.saveAll(refs); roleRDao.saveAll(roleList); }else { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index ac4b9b0..03747d5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -23,6 +23,7 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import com.alibaba.fastjson.JSON; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.ListUtils; import org.apache.commons.lang3.ArrayUtils; @@ -112,7 +113,6 @@ public class SysUserService implements ISysUserService { if(user == null){ throw new CredentialsException("用户不存在"); } - packSessionUser(sessionUser, user, user.getUserType(), languageCode); AuthUtil.setSessionUser(sessionUser); refreshUserLoginInformation(user.getId()); @@ -634,7 +634,7 @@ public class SysUserService implements ISysUserService { LOGGER.error(" SysUser Peck Role information Error userId : {} Exception Message : {} " ,user.getUserInfoId(),e.getMessage()); e.printStackTrace(); } - + if(roleList != null && roleList.size() > 0){ List list = new ArrayList<>(); roleList.forEach(role -> { @@ -654,9 +654,15 @@ public class SysUserService implements ISysUserService { public void packSysUserMenu(SysUser user){ List list = null; try { - LOGGER.debug("平台用户 SYS_USER user id :{}", user.getUserInfoId()); + LOGGER.info("平台用户 SYS_USER user id :{}", user.getUserInfoId()); + if(user.getRoleList() != null && user.getRoleList().size() > 0){ + List ids = new ArrayList<>(); + user.getRoleList().forEach(role -> { + ids.add(role.getId()); + }); - list = userPermissionDao.findSysMenuByUser(user); + list = userPermissionDao.findSysMenuByInRoleId(ids.toArray(new Long[ids.size()])); + } }catch (Exception e){ LOGGER.error(" SysUser Peck Menu information Error userId : {} Exception Message : {} " ,user.getUserInfoId(),e.getMessage()); e.printStackTrace();