Commit 56035500 authored by liuyang's avatar liuyang

update

parent dbc9e672
......@@ -2,17 +2,21 @@ package com.qkdata.biz.sys.controller;
import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.sys.entity.SysMenuPO;
import com.qkdata.biz.sys.service.MenuTreeProvider;
import com.qkdata.biz.sys.service.ShiroService;
import com.qkdata.biz.sys.service.SysMenuService;
import com.qkdata.biz.sys.vo.QueryMenuModel;
import com.qkdata.biz.sys.vo.SysNavModel;
import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.exception.BusinessException;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.model.Result;
import com.qkdata.common.tree.Tree;
import com.qkdata.common.tree.TreeView;
import com.qkdata.common.util.UserContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -37,18 +41,20 @@ public class SysMenuController {
SysNavModel navDTO = new SysNavModel(menuList,permissions);
return Result.succeed(navDTO);
}
@ApiOperation("获取全部菜单列表")
@GetMapping("/list")
@ApiOperation("查询菜单列表")
@PostMapping("/list")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<List<SysMenuPO>> list(){
public PageResult<SysMenuPO> list(@RequestBody QueryMenuModel param){
return sysMenuService.queryList(param);
}
@ApiOperation("获取全部菜单树")
@GetMapping("/tree")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<Tree> getAllTree(){
List<SysMenuPO> menuList = sysMenuService.list();
for (SysMenuPO menuPO : menuList){
SysMenuPO parentMenu = sysMenuService.getById(menuPO.getParentId());
if (parentMenu != null){
menuPO.setParentName(parentMenu.getName());
}
}
return Result.succeed(menuList);
MenuTreeProvider menuTreeProvider = new MenuTreeProvider();
TreeView treeView = new TreeView(menuList,menuTreeProvider,menuTreeProvider);
return Result.succeed(treeView.buildTree("menuTree"));
}
@ApiOperation("获取不包含按扭的全部菜单")
......
......@@ -4,12 +4,14 @@ import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.sys.entity.SysRolePO;
import com.qkdata.biz.sys.service.SysRoleService;
import com.qkdata.biz.sys.vo.QueryRoleModel;
import com.qkdata.biz.sys.vo.RoleMenuPermissionModel;
import com.qkdata.biz.sys.vo.SysRoleModel;
import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.model.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -71,9 +73,23 @@ public class SysRoleController {
@ApiOperation("删除角色信息")
@SysLog("删除角色信息")
@PostMapping("/delete")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN})
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> delete(@RequestBody Long[] ids){
sysRoleService.removeByIds(Arrays.asList(ids));
return Result.succeed("ok");
}
@ApiOperation("获取某一角色的菜单ids")
@GetMapping("/menuIds/{roleId}")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<List<Long>> findRoleMenuIds(@PathVariable Long roleId){
return Result.succeed(sysRoleService.findRoleMenuIds(roleId));
}
@ApiOperation("保存角色菜单权限")
@PostMapping("/menu/save")
@SysLog("保存角色菜单权限")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> saveRoleMenu(@RequestBody RoleMenuPermissionModel model){
sysRoleService.saveRoleMenuPermission(model);
return Result.succeed("ok");
}
}
package com.qkdata.biz.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.sys.entity.SysMenuPO;
import com.qkdata.biz.sys.vo.QueryMenuModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenuPO> {
List<SysMenuPO> queryNotButtonList();
List<SysMenuPO> queryList(Page<SysMenuPO> page, @Param("p") QueryMenuModel param);
}
......@@ -9,4 +9,6 @@ import java.util.List;
@Mapper
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenuPO> {
List<Long> selectMenuIdsByRoleId(Long roleId);
List<Long> findRoleMenuIds(Long roleId);
}
package com.qkdata.biz.sys.service;
import com.google.common.collect.Lists;
import com.qkdata.biz.sys.entity.SysMenuPO;
import com.qkdata.common.tree.IContentProvider;
import com.qkdata.common.tree.ILabelProvider;
import com.qkdata.common.tree.TreeTypeEnum;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MenuTreeProvider implements IContentProvider, ILabelProvider {
private List<SysMenuPO> menuList;
@Override
public List<? extends Object> getChildren(Object curElement, int level, int index) {
SysMenuPO menuPO = (SysMenuPO) curElement;
List<SysMenuPO> children = Lists.newArrayList();
for (SysMenuPO sysMenuPO : menuList) {
if (sysMenuPO.getParentId().longValue() == menuPO.getId().longValue()){
children.add(sysMenuPO);
}
}
return children;
}
@Override
public List<? extends Object> getRootElement(List<?> treeData, int level, int index) {
menuList = (List<SysMenuPO>) treeData;
return menuList.stream().filter(menu -> menu.getParentId() == 0).collect(Collectors.toList());
}
@Override
public boolean hasChild(Object curElement, int level, int index) {
SysMenuPO menuPO = (SysMenuPO) curElement;
boolean flag = false;
for (SysMenuPO sysMenuPO : menuList) {
if (sysMenuPO.getParentId().longValue() == menuPO.getId().longValue()){
flag = true;
break;
}
}
return flag;
}
@Override
public TreeTypeEnum getLabelType(Object curElement, int level, int index) {
return TreeTypeEnum.NORMAL;
}
@Override
public String getLabelName(Object curElement, int level, int index) {
SysMenuPO menuPO = (SysMenuPO) curElement;
return menuPO.getName();
}
@Override
public Object getLabelId(Object curElement, int level, int index) {
SysMenuPO menuPO = (SysMenuPO) curElement;
return menuPO.getId();
}
@Override
public String getIcon(Object curElement, int level, int index) {
SysMenuPO menuPO = (SysMenuPO) curElement;
return menuPO.getIcon();
}
@Override
public boolean isDefaultIcon(Object curElement, int level, int index) {
return false;
}
@Override
public boolean isClick(Object curElement, int level, int index) {
return false;
}
@Override
public boolean isCheck(Object curElement, int level, int index) {
return false;
}
@Override
public String getCheckId(Object curElement, int level, int index) {
return null;
}
@Override
public Map<String, String> getAttributes(Object curElement, int level, int index) {
return null;
}
}
package com.qkdata.biz.sys.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.qkdata.biz.enums.MenuTypeEnum;
import com.qkdata.biz.sys.entity.SysMenuPO;
import com.qkdata.biz.sys.mapper.SysMenuMapper;
import com.qkdata.biz.sys.mapper.SysUserMapper;
import com.qkdata.biz.sys.vo.QueryMenuModel;
import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.service.impl.BaseServiceImpl;
import com.qkdata.common.constants.Constants;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -75,4 +79,11 @@ public class SysMenuService extends BaseServiceImpl<SysMenuMapper, SysMenuPO> {
public List<SysMenuPO> queryNotButtonList() {
return baseMapper.queryNotButtonList();
}
public PageResult<SysMenuPO> queryList(QueryMenuModel param) {
Page<SysMenuPO> page = new Page(param.getPageIndex(),param.getPageSize());
List<SysMenuPO> pageList = baseMapper.queryList(page,param);
return PageResult.<SysMenuPO>builder().code(CodeEnum.SUCCESS.getCode()).count(page.getTotal()).data(pageList).build();
}
}
......@@ -5,6 +5,7 @@ import com.qkdata.biz.sys.entity.SysRoleMenuPO;
import com.qkdata.biz.sys.mapper.SysRoleMenuMapper;
import com.qkdata.common.base.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.List;
......@@ -14,6 +15,7 @@ public class SysRoleMenuService extends BaseServiceImpl<SysRoleMenuMapper, SysRo
public List<Long> queryMenuIdList(Long roleId) {
return baseMapper.selectMenuIdsByRoleId(roleId);
}
@Transactional
public void saveOrUpdateRoleMenu(Long roleId, List<Long> menuIdList) {
deleteByRoleIds(new Long[]{roleId});
......@@ -31,4 +33,8 @@ public class SysRoleMenuService extends BaseServiceImpl<SysRoleMenuMapper, SysRo
private void deleteByRoleIds(Long[] roleIds) {
baseMapper.delete(Wrappers.<SysRoleMenuPO>lambdaQuery().in(SysRoleMenuPO::getRoleId,roleIds));
}
public List<Long> findRoleMenuIds(Long roleId) {
return baseMapper.findRoleMenuIds(roleId);
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.sys.entity.SysRolePO;
import com.qkdata.biz.sys.mapper.SysRoleMapper;
import com.qkdata.biz.sys.vo.QueryRoleModel;
import com.qkdata.biz.sys.vo.RoleMenuPermissionModel;
import com.qkdata.biz.sys.vo.SysRoleModel;
import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.exception.BusinessException;
......@@ -63,4 +64,12 @@ public class SysRoleService extends BaseServiceImpl<SysRoleMapper, SysRolePO> {
public List<SysRoleModel> getUserRoles(Long userId) {
return baseMapper.findUserRoles(userId);
}
public List<Long> findRoleMenuIds(Long roleId) {
return sysRoleMenuService.findRoleMenuIds(roleId);
}
public void saveRoleMenuPermission(RoleMenuPermissionModel model) {
sysRoleMenuService.saveOrUpdateRoleMenu(model.getRoleId(),model.getMenuIds());
}
}
package com.qkdata.biz.sys.vo;
import com.qkdata.common.constants.Constants;
import lombok.Data;
@Data
public class QueryMenuModel {
private int pageIndex = Constants.DEFAULT_PAGE;
private int pageSize = Constants.DEFAULT_PAGE_SIZE;
private String name;
}
package com.qkdata.biz.sys.vo;
import lombok.Data;
import java.util.List;
@Data
public class RoleMenuPermissionModel {
private Long roleId;
private List<Long> menuIds;
}
......@@ -37,7 +37,7 @@ public interface ILabelProvider {
* @param index 索引
* @return 节点ID
*/
String getLabelId(final Object curElement, final int level, final int index);
Object getLabelId(final Object curElement, final int level, final int index);
/**
* 获取当前元素显示图标.如果不显示图标,返回null
......
......@@ -13,7 +13,7 @@ public class TreeNode {
/**
* <code>id</code> - 节点ID.
*/
private String m_id;
private Object m_id;
/**
* <code>m_lable</code> - 节点名称.
*/
......@@ -53,7 +53,7 @@ public class TreeNode {
* @param id 节点ID.
* @param values 节点属性集合.
*/
public TreeNode(final String id, final Map<String, String> values) {
public TreeNode(final Object id, final Map<String, String> values) {
this.m_id = id;
this.m_extProperty = values;
}
......@@ -61,14 +61,14 @@ public class TreeNode {
/**
* @return id - {return content description}
*/
public String getId() {
public Object getId() {
return m_id;
}
/**
* @param id - {parameter description}.
*/
public void setId(final String id) {
public void setId(final Object id) {
m_id = id;
}
......
......@@ -4,4 +4,12 @@
<select id="queryNotButtonList" resultType="com.qkdata.biz.sys.entity.SysMenuPO">
select * from sys_menu where type != 2 order by order_num asc
</select>
<select id="queryList" resultType="com.qkdata.biz.sys.entity.SysMenuPO">
select * from sys_menu
where 1 = 1
<if test="p.name != null">
name like concat('%',#{p.name},'%')
</if>
order by parent_id,order_num
</select>
</mapper>
\ No newline at end of file
......@@ -4,4 +4,8 @@
<select id="selectMenuIdsByRoleId" resultType="java.lang.Long">
select menu_id from sys_role_menu where role_id = #{roleId}
</select>
<select id="findRoleMenuIds" resultType="java.lang.Long">
select menu_id from sys_role_menu
where role_id = #{roleId}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment