src/main/java/com/whyc/controller/LoginController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/RoleController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/UserLoginInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/RoleMenuMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/Menu.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/LoginService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/RoleMenuMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>