src/main/java/com/whyc/controller/PermissionController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/RoleController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/RoleMenuController.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/pojo/RoleMenu.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/User.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/UserRole.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/RoleMenuService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/config/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/RoleMenuMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/PermissionController.java
@@ -16,6 +16,10 @@ @RequestMapping("permission") @Api(tags = "权限") @Slf4j @Deprecated /** * 不独立存在,依附于角色菜单 */ public class PermissionController { @Resource src/main/java/com/whyc/controller/RoleController.java
@@ -35,27 +35,7 @@ @Autowired private RoleMenuService roleMenuService; /**=============用户与角色================**/ @GetMapping("userWithNoRole") @ApiOperation(value = "查询未分配角色的用户") public List<User> getUserWithNoRole(){ return userRoleService.getUserWithNoRole(); } @GetMapping("userWithRole") @ApiOperation(value = "查询分配角色的用户") public List<UserRole> getUserWithRole(){ return userRoleService.getUserWithRole(); } @GetMapping("userWithRoleMap") @ApiOperation(value = "查询分配角色的用户Map") public Map<String,List<UserRole>> getUserWithRoleMap(){ return userRoleService.getUserWithRoleMap(); } @GetMapping("roleAll") @GetMapping("all") @ApiOperation(value = "查询所有角色") public List<Role> getRoleAll(){ return roleService.getAll(); @@ -65,12 +45,6 @@ @ApiOperation(value = "新增角色") public boolean add(@RequestBody Role role){ return roleService.add(role); } @PostMapping("batch") @ApiOperation(value = "批量新增角色") public boolean addBatch(@RequestBody List<Role> roles){ return roleService.addBatch(roles); } /** src/main/java/com/whyc/controller/RoleMenuController.java
New file @@ -0,0 +1,46 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.Menu; import com.whyc.pojo.RoleMenu; import com.whyc.service.RoleMenuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * 角色和菜单是一对一的 * 用户和角色是一对一的 * 每个用户登录后,会获得对应的菜单列表 * 而管理员可以设置和获取所有用户的菜单列表 * 而非管理员只能看到自己的 */ @RequestMapping("roleMenu") @RestController @Api(tags = "角色菜单") public class RoleMenuController { @Resource private RoleMenuService service; @GetMapping("menuByRoleId") @ApiOperation(value = "查询角色对应的菜单") public Response getMenuByRoleId(@RequestParam Integer roleId){ List<Menu> roleMenus = service.getMenuByRoleId(roleId); return new Response().set(1,roleMenus); } public Response getMenu(@RequestParam Integer roleId){ List<Menu> roleMenus = service.getMenuByRoleId(roleId); return new Response().set(1,roleMenus); } } src/main/java/com/whyc/mapper/RoleMenuMapper.java
@@ -11,4 +11,6 @@ public interface RoleMenuMapper extends CustomMapper<RoleMenu> { List<Menu> getUserMenu(Integer id); List<Menu> getMenuByRoleId(Integer roleId); } src/main/java/com/whyc/pojo/Menu.java
@@ -1,10 +1,14 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import org.apache.ibatis.type.Alias; import java.util.List; /** * 用户菜单 * 菜单和权限一一对应 */ @Alias("Menu") @TableName( schema = "`db_experiment`",value = "`tb_menu`") @@ -14,9 +18,15 @@ /**菜单的路径*/ private String url; /**级别:1级,2级菜单...*/ @Deprecated private String level; /**父id*/ private Integer parentId; /**排序*/ private Integer order; @TableField(exist = false) private List<Menu> menuList; public Integer getId() { return id; @@ -50,6 +60,14 @@ this.level = level; } public Integer getParentId() { return parentId; } public void setParentId(Integer parentId) { this.parentId = parentId; } public Integer getOrder() { return order; } @@ -57,4 +75,12 @@ public void setOrder(Integer order) { this.order = order; } public List<Menu> getMenuList() { return menuList; } public void setMenuList(List<Menu> menuList) { this.menuList = menuList; } } src/main/java/com/whyc/pojo/RoleMenu.java
@@ -1,5 +1,6 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import org.apache.ibatis.type.Alias; @@ -10,8 +11,15 @@ @TableName( schema = "`db_experiment`",value = "tb_role_menu") public class RoleMenu { private Integer id; private Integer roleId; private Integer menuId; //private Integer roleId; @TableField("roleId") private Role role; //private Integer menuId; @TableField("menuId") private Menu menu; private Integer status; public Integer getId() { return id; @@ -21,19 +29,27 @@ this.id = id; } public Integer getRoleId() { return roleId; public Integer getStatus() { return status; } public void setRoleId(Integer roleId) { this.roleId = roleId; public void setStatus(Integer status) { this.status = status; } public Integer getMenuId() { return menuId; public Role getRole() { return role; } public void setMenuId(Integer menuId) { this.menuId = menuId; public void setRole(Role role) { this.role = role; } public Menu getMenu() { return menu; } public void setMenu(Menu menu) { this.menu = menu; } } src/main/java/com/whyc/pojo/User.java
@@ -14,8 +14,17 @@ private String name; private String password; private String salt; /**真实名称*/ private String formalName; /**所属站点/区域*/ private Integer stationId; private String phone; /**角色*/ private Integer roleId; private String comment; @JsonFormat(locale = "zh",timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; private Integer status; public User() { } @@ -58,6 +67,46 @@ this.salt = salt; } public String getFormalName() { return formalName; } public void setFormalName(String formalName) { this.formalName = formalName; } public Integer getStationId() { return stationId; } public void setStationId(Integer stationId) { this.stationId = stationId; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public Integer getRoleId() { return roleId; } public void setRoleId(Integer roleId) { this.roleId = roleId; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public Date getCreateTime() { return createTime; } @@ -66,4 +115,11 @@ this.createTime = createTime; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } } src/main/java/com/whyc/pojo/UserRole.java
@@ -9,6 +9,7 @@ */ @Alias("UserRole") @TableName( schema = "`db_experiment`",value = "tb_user_role") @Deprecated public class UserRole { private Integer id; src/main/java/com/whyc/service/RoleMenuService.java
@@ -1,11 +1,16 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.dto.Response; import com.whyc.mapper.RoleMenuMapper; import com.whyc.pojo.Menu; import com.whyc.pojo.RoleMenu; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.*; import java.util.stream.Collectors; /** * 角色-菜单 @@ -19,4 +24,31 @@ public List<Menu> getUserMenu(Integer id) { return mapper.getUserMenu(id); } public List<Menu> getMenuByRoleId(Integer roleId) { List<Menu> menuList = mapper.getMenuByRoleId(roleId); for (int i = 0; i < menuList.size(); i++) { Integer parentId = menuList.get(i).getParentId(); if(parentId !=0){ //将这个menu插入到parent中 for (int j = 0; j < menuList.size(); j++) { if(menuList.get(j).getId()==parentId){ List<Menu> menuListTemp = menuList.get(j).getMenuList(); if(menuListTemp==null) { menuListTemp = new LinkedList<>(); } menuListTemp.add(menuList.get(i)); menuList.get(j).setMenuList(menuListTemp); menuList.remove(i); i--; break; } } } } return menuList; } } src/main/resources/config/application.yml
@@ -37,7 +37,7 @@ #数据库大写下划线转换 capital-mode: true #mp2.3+ 全局表前缀 tb_ table-prefix: tb_ #table-prefix: tb_ #刷新mapper 调试神器 # refresh-mapper: true configuration: src/main/resources/mapper/RoleMenuMapper.xml
@@ -2,8 +2,26 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whyc.mapper.RoleMenuMapper" > <resultMap id="Map_Menu" type="Menu" autoMapping="true"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="url" column="url"/> <result property="parentId" column="parent_id"/> <result property="order" column="order"/> </resultMap> <select id="getUserMenu" resultType="com.whyc.pojo.Menu"> </select> <select id="getMenuByRoleId" resultMap="Map_Menu"> SELECT m.* FROM db_experiment.tb_role_menu rm, db_experiment.tb_menu m WHERE rm.menu_id = m.id AND rm.role_id = #{roleId} AND rm.status=1 </select> </mapper>