提交 711051a5 编写于 作者: N nicky

Merge remote-tracking branch 'origin/1.0.0' into dev

......@@ -6,5 +6,16 @@ import com.muses.taoshop.manager.entity.Menu;
import java.util.List;
public interface IMenuService {
/**
* 根据权限id获取菜单
* @param permissionId
* @return
*/
Menu listMenu(int permissionId);
/**
* 权限菜单获取,即根据用户角色获取用户可以查看的菜单
* @return
*/
List<Menu> listPermissionMenu(int userId);
}
......@@ -20,5 +20,8 @@ import java.util.List;
*/
@MybatisRepository
public interface SysMenuMapper {
Menu listMenu(@Param("permissionId") int permissionId);
List<Menu> listPermissionMenu(@Param("userId")int userId);
}
......@@ -5,6 +5,8 @@ import com.muses.taoshop.manager.mapper.SysMenuMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <pre>
* 菜单管理业务接口
......@@ -22,9 +24,23 @@ public class MenuServiceImpl implements IMenuService{
@Autowired
SysMenuMapper sysMenuMapper;
/**
* 根据权限id获取菜单
* @param permissionId
* @return
*/
@Override
public Menu listMenu(int permissionId) {
return sysMenuMapper.listMenu(permissionId);
}
/**
* 权限菜单获取,即根据用户角色获取用户可以查看的菜单
*
* @return
*/
@Override
public List<Menu> listPermissionMenu(int userId) {
return sysMenuMapper.listPermissionMenu(userId);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muses.taoshop.manager.mapper.SysMenuMapper">
<!-- 根据权限id获取菜单-->
<select id="listMenu" parameterType="Integer" resultType="Menu">
SELECT
m.*
......@@ -11,5 +11,27 @@
ON p.menuId = m.menuId
WHERE p.id = #{permissionId}
</select>
<!-- 获取权限菜单 -->
<select id="listPermissionMenu" parameterType="Integer" resultType="Menu">
SELECT
m.*
FROM
sys_menu m
WHERE m.menuId IN
(SELECT
p.menuId
FROM
sys_permission p
LEFT JOIN sys_role_permission rp
ON rp.permissionId = p.id
WHERE rp.roleId IN
(SELECT
ur.roleId
FROM
sys_user_role ur
LEFT JOIN sys_role r
ON r.roleId = ur.roleId
WHERE ur.userId = #{userId}))
</select>
</mapper>
\ No newline at end of file
......@@ -9,7 +9,6 @@
<select id="listUserRole" parameterType="Integer" resultType="SysRole">
SELECT
r.*,
ur.userId
FROM
sys_user_role ur
LEFT JOIN sys_role r
......
......@@ -120,6 +120,7 @@ public class LoginController extends BaseController {
Subject sub = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username,password);
sub.login(token);
log.info("登录成功!");
}
}else{
//账号或者密码错误
......@@ -145,12 +146,13 @@ public class LoginController extends BaseController {
*/
@RequestMapping(value="/toIndex")
public ModelAndView toMain() throws AuthenticationException{
log.info("跳转到系统主页=>");
ModelAndView mv = this.getModelAndView();
/* 获取Shiro管理的Session */
/* E1:获取Shiro管理的用户Session */
Subject subject = SecurityUtils.getSubject();
Session session = subject.getSession();
SysUser user = (SysUser)session.getAttribute(Constants.SESSION_USER);
/* E2:获取用户具有的角色权限 */
if(user != null){
Set<SysRole> roles = iSysRoleService.getUserRoles(user.getId());
Set<Permission> permissions = new HashSet<Permission>();
......@@ -167,17 +169,13 @@ public class LoginController extends BaseController {
Menu menu = iMenuService.listMenu(p.getId());
menuList.add(menu);
}
/* E3:获取权限对应的菜单信息*/
//TODO 方法二: 直接通过SQL获取权限菜单
//menuList = iMenuService.listPermissionMenu(user.getId());
log.info("用户可以查看的菜单个数:{}"+menuList.size());
MenuTreeUtil treeUtil = new MenuTreeUtil();
log.info("用户可以查看的菜单列表:{}"+menuList.toArray());
if(!CollectionUtils.isEmpty(menuList)) {
List<Menu> treemenus= treeUtil.menuList(menuList);
// String json = JSON.toJSONString(treemenus);
//
// json = json.replaceAll("menuId","id").replaceAll("parentId","pId").
// replaceAll("menuName","name").replaceAll("hasSubMenu","checked");
mv.addObject("menus",treemenus);
mv.setViewName("admin/frame/index");
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册