whyczh
2021-04-26 3860baabb6d6a22d0d3fd4de5a15f8e75438197e
更新登录和用户菜单接口
7个文件已修改
92 ■■■■ 已修改文件
src/main/java/com/whyc/controller/LoginController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/RoleController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/UserLoginInfo.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/RoleMenuMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Menu.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/LoginService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/RoleMenuMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/LoginController.java
@@ -1,9 +1,11 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.User;
import com.whyc.service.LoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
src/main/java/com/whyc/controller/RoleController.java
@@ -9,6 +9,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*;
@@ -115,7 +116,8 @@
    @GetMapping("userMenu")
    @ApiOperation(value = "获取当前用户的菜单")
    public List<Menu> getUserMenu(HttpServletRequest request){
        User user = CommonUtil.getUser(request);
        //User user = CommonUtil.getUser(request);
        User user = (User) SecurityUtils.getSubject().getPrincipal();
        return roleMenuService.getUserMenu(user.getId());
    }
src/main/java/com/whyc/dto/UserLoginInfo.java
@@ -1,30 +1,42 @@
package com.whyc.dto;
import com.whyc.pojo.Menu;
import com.whyc.pojo.User;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.util.List;
/**
 * 用户登录后保存的信息
 */
@Data
@NoArgsConstructor
public class UserLoginInfo {
    private String username;
    private Long timestamp;
    private User user;
    private List<Menu> menus;
    public UserLoginInfo(String username, Long timestamp) {
        this.username = username;
        this.timestamp = timestamp;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public Long getTimestamp() {
        return timestamp;
    }
    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }
//    public String getUsername() {
//        return username;
//    }
//
//    public void setUsername(String username) {
//        this.username = username;
//    }
//
//    public Long getTimestamp() {
//        return timestamp;
//    }
//
//    public void setTimestamp(Long timestamp) {
//        this.timestamp = timestamp;
//    }
}
src/main/java/com/whyc/mapper/RoleMenuMapper.java
@@ -2,6 +2,7 @@
import com.whyc.pojo.Menu;
import com.whyc.pojo.RoleMenu;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -10,5 +11,5 @@
 */
public interface RoleMenuMapper extends CustomMapper<RoleMenu> {
    List<Menu> getUserMenu(Integer id);
    List<Menu> getUserMenu(@Param("id") Integer id);
}
src/main/java/com/whyc/pojo/Menu.java
@@ -5,6 +5,8 @@
import lombok.Data;
import org.apache.ibatis.type.Alias;
import java.util.List;
/**
 * 用户菜单
 */
@@ -20,6 +22,7 @@
    private String level;
    /**排序*/
    private Integer ord;
    private Integer upId;
    private Integer menuId;
    private List<Menu> subMenus;
}
src/main/java/com/whyc/service/LoginService.java
@@ -3,7 +3,10 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
import com.whyc.dto.UserLoginInfo;
import com.whyc.mapper.RoleMenuMapper;
import com.whyc.mapper.UserMapper;
import com.whyc.pojo.Menu;
import com.whyc.pojo.User;
import com.whyc.util.DigestsUtil;
import com.whyc.util.ShiroUtil;
@@ -17,12 +20,16 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;
@Service
public class LoginService {
    @Resource
    private UserMapper userMapper;
    @Resource
    private RoleMenuMapper roleMenuMapper;
    public Response login(String userName, String password, HttpServletRequest request) {
        UsernamePasswordToken userToken = new UsernamePasswordToken(userName, password);
@@ -47,7 +54,14 @@
            QueryWrapper<User> queryWrapper = Wrappers.query();
            queryWrapper.eq("name",userName);
            User user = userMapper.selectOne(queryWrapper);
            return new Response<>().set(1,user);
            List<Menu> menus = roleMenuMapper.getUserMenu(user.getId());
            UserLoginInfo info = new UserLoginInfo();
            info.setUsername(userName);
            info.setTimestamp(System.currentTimeMillis());
            info.setUser(user);
            info.setMenus(menus);
            return new Response<>().set(1,info);
        }
        return new Response<>().set(0,false);
    }
src/main/resources/mapper/RoleMenuMapper.xml
@@ -3,8 +3,26 @@
<mapper namespace="com.whyc.mapper.RoleMenuMapper" >
    <select id="getUserMenu" resultType="com.whyc.pojo.Menu">
    <resultMap type="com.whyc.pojo.Menu" id="MenuMap">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="icon" column="icon"/>
        <collection property="subMenus" ofType="com.whyc.pojo.Menu">
            <id property="id" column="mid" />
            <result property="name" column="mname"/>
            <result property="url" column="murl" />
        </collection>
    </resultMap>
    <select id="getUserMenu" resultMap="MenuMap">
        select pm.id,pm.name,pm.icon,m.id mid,m.name mname,m.url murl
        from tb_user u
         inner join tb_user_role ur on u.id=ur.user_id
         inner join tb_role role on ur.role_id=role.id
         inner join tb_role_menu rm on role.id=rm.role_id
         inner join tb_menu m on m.id=rm.menu_id
         inner join tb_menu pm on m.menu_id = pm.id
        where u.id=#{id}
    </select>
</mapper>