A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

3.3 用户中心查询用户权限
3.3.1 需求分析
认证服务请求用户中心查询用户信息,用户需要将用户基本信息和用户权限一同返回给认证服务。
本小节实现用户查询查询用户权限,并将用户权限信息添加到的用户信息中返回给认证服务。
以上需求需要修改如下接口:
[AppleScript] 纯文本查看 复制代码
@GetMapping("/getuserext") public XcUserExt getUserext(@RequestParam("username") String username);

3.3.2 DAO
在用户中心服务中编写dao,实现根据用户id查询权限。 1、定义XcMenuMapper.java
在com.xuecheng.ucenter.dao包下定义:

[AppleScript] 纯文本查看 复制代码
@Mapper public interface XcMenuMapper {   
  public List<XcMenu> selectPermissionByUserId(String userid); }  

2、XcMenuMapper.xml
在com.xuecheng.ucenter.dao下定义XcMenuMapper.xml

[AppleScript] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF‐8" ?> <!DOCTYPE mapper PUBLIC "‐//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis‐3mapper.dtd" > <mapper namespace="com.xuecheng.ucenter.dao.XcMenuMapper" >   
     <select id="selectPermissionByUserId"  resultType="com.xuecheng.framework.domain.ucenter.XcMenu" parameterType="java.lang.String" >       
  SELECT     
    id,   
      CODE,    
     p_id pId,      
  menu_name menuName,      
   url,      
   is_menu isMenu,   
      LEVEL,  
      sort,  
      STATUS,    
     icon,  
       create_time createTime,    
    update_time updateTiem     
    FROM       
  xc_menu  
       WHERE id IN(       
   SELECT menu_id FROM xc_permission WHERE role_id IN(     
        SELECT role_id FROM xc_user_role WHERE user_id = #{id}   
       )    
     )   
    </select>   
  </mapper>

其它Dao采用spring data 编写如下:


3.3.3 Service
修改UserService的getUserExt方法,查询用户权限。

[AppleScript] 纯文本查看 复制代码
//根据账号查询用户的信息,返回用户扩展信息 public XcUserExt getUserExt(String username){     XcUser xcUser = this.findXcUserByUsername(username);  
   if(xcUser == null){   
      return null;   
 }  
   //根据用户id查询用户权限  
   String userId = xcUser.getId();   
  List<XcMenu> xcMenus = xcMenuMapper.selectPermissionByUserId(userId);  
   XcUserExt xcUserExt = new XcUserExt();  
   BeanUtils.copyProperties(xcUser,xcUserExt); 
   //用户的权限    
 xcUserExt.setPermissions(xcMenus);  
   return xcUserExt; }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马