From 4820a179aa255bf9a39a73f20e29ca0a1ee88089 Mon Sep 17 00:00:00 2001 From: tamguo Date: Thu, 2 Aug 2018 10:24:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/service/ISysUserService.java | 5 ++ .../sys/service/impl/SysUserServiceImpl.java | 31 +++++++++ .../modules/sys/utils/SystemConstant.java | 3 + .../modules/sys/web/LoginController.java | 8 +++ .../resources/templates/include/leftMenu.html | 68 ++++++------------- 5 files changed, 66 insertions(+), 49 deletions(-) diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysUserService.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysUserService.java index ce9e474..91e3f0d 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysUserService.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysUserService.java @@ -1,9 +1,11 @@ package com.tamguo.modules.sys.service; import java.util.List; +import java.util.Set; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.IService; +import com.tamguo.modules.sys.model.SysMenuEntity; import com.tamguo.modules.sys.model.SysUserDataScopeEntity; import com.tamguo.modules.sys.model.SysUserEntity; import com.tamguo.modules.sys.model.SysUserRoleEntity; @@ -58,4 +60,7 @@ public interface ISysUserService extends IService{ /** 修改管理员*/ public void updateAdmin(SysUserEntity user); + + /** 当前用户权限菜单*/ + public Set findUserMenuList(); } diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysUserServiceImpl.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysUserServiceImpl.java index e07a5c5..3d10fe4 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysUserServiceImpl.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysUserServiceImpl.java @@ -1,8 +1,10 @@ package com.tamguo.modules.sys.service.impl; import java.util.Date; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -14,10 +16,14 @@ import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.baomidou.mybatisplus.toolkit.CollectionUtils; +import com.tamguo.modules.sys.dao.SysMenuMapper; +import com.tamguo.modules.sys.dao.SysRoleMenuMapper; import com.tamguo.modules.sys.dao.SysUserDataScopeMapper; import com.tamguo.modules.sys.dao.SysUserMapper; import com.tamguo.modules.sys.dao.SysUserPostMapper; import com.tamguo.modules.sys.dao.SysUserRoleMapper; +import com.tamguo.modules.sys.model.SysMenuEntity; +import com.tamguo.modules.sys.model.SysRoleMenuEntity; import com.tamguo.modules.sys.model.SysUserDataScopeEntity; import com.tamguo.modules.sys.model.SysUserEntity; import com.tamguo.modules.sys.model.SysUserPostEntity; @@ -30,6 +36,7 @@ import com.tamguo.modules.sys.service.ISysRoleService; import com.tamguo.modules.sys.service.ISysUserService; import com.tamguo.modules.sys.utils.Result; import com.tamguo.modules.sys.utils.ShiroUtils; +import com.tamguo.modules.sys.utils.SystemConstant; import com.tamguo.modules.sys.utils.TamguoConstant; @Service @@ -45,6 +52,10 @@ public class SysUserServiceImpl extends ServiceImpl findUserMenuList() { + String userCode = ShiroUtils.getUserCode(); + if(SystemConstant.SYSTEM_USER_CODE.equals(userCode)) { + List menus = sysMenuMapper.selectList(Condition.create().orderAsc(java.util.Arrays.asList("tree_sort"))); + return new HashSet<>(menus); + } + Set menus = new HashSet<>(); + List userRoleList = sysUserRoleMapper.selectList(Condition.create().eq("user_code", userCode)); + for(SysUserRoleEntity userRole : userRoleList) { + List roleMenuList = sysRoleMenuMapper.selectList(Condition.create().eq("role_code", userRole.getRoleCode())); + for(SysRoleMenuEntity roleMenu : roleMenuList) { + SysMenuEntity menu = sysMenuMapper.selectById(roleMenu.getMenuCode()); + menus.add(menu); + } + } + return menus; + } + } diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/utils/SystemConstant.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/utils/SystemConstant.java index e3cd765..acf648d 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/utils/SystemConstant.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/utils/SystemConstant.java @@ -7,4 +7,7 @@ public class SystemConstant { /** 验证码常数*/ public static final String KAPTCHA_SESSION_KEY = "KAPTCHA_SESSION_KEY"; + + /** 验证码常数*/ + public static final String SYSTEM_USER_CODE = "system"; } diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/web/LoginController.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/web/LoginController.java index efd247e..1581fc0 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/web/LoginController.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/web/LoginController.java @@ -11,12 +11,14 @@ import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.subject.Subject; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; +import com.tamguo.modules.sys.service.ISysUserService; import com.tamguo.modules.sys.utils.ExceptionSupport; import com.tamguo.modules.sys.utils.Result; import com.tamguo.modules.sys.utils.ShiroUtils; @@ -24,6 +26,9 @@ import com.tamguo.modules.sys.utils.TamguoConstant; @Controller public class LoginController { + + @Autowired + private ISysUserService iSysUserService; @RequestMapping(path="login") public String sysLogin(ModelAndView model) { @@ -47,6 +52,9 @@ public class LoginController { password = new Sha256Hash(password).toHex(); UsernamePasswordToken token = new UsernamePasswordToken(username, password); subject.login(token); + + // 获取权限菜单 + request.getSession().setAttribute("userMenuList", iSysUserService.findUserMenuList()); } catch (UnknownAccountException e) { return ExceptionSupport.resolverResult("找不到账户", this.getClass(), e); } catch (IncorrectCredentialsException e) { diff --git a/tamguo-oms/src/main/resources/templates/include/leftMenu.html b/tamguo-oms/src/main/resources/templates/include/leftMenu.html index e7d7643..610ac97 100644 --- a/tamguo-oms/src/main/resources/templates/include/leftMenu.html +++ b/tamguo-oms/src/main/resources/templates/include/leftMenu.html @@ -14,54 +14,24 @@ \ No newline at end of file