Commit 56035500 authored by liuyang's avatar liuyang

update

parent dbc9e672
...@@ -2,17 +2,21 @@ package com.qkdata.biz.sys.controller; ...@@ -2,17 +2,21 @@ package com.qkdata.biz.sys.controller;
import com.qkdata.biz.common.BizConstants; import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.sys.entity.SysMenuPO; 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.ShiroService;
import com.qkdata.biz.sys.service.SysMenuService; import com.qkdata.biz.sys.service.SysMenuService;
import com.qkdata.biz.sys.vo.QueryMenuModel;
import com.qkdata.biz.sys.vo.SysNavModel; import com.qkdata.biz.sys.vo.SysNavModel;
import com.qkdata.common.annotation.SysLog; import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.exception.BusinessException; 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.base.model.Result;
import com.qkdata.common.tree.Tree;
import com.qkdata.common.tree.TreeView;
import com.qkdata.common.util.UserContext; import com.qkdata.common.util.UserContext;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles; import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -37,18 +41,20 @@ public class SysMenuController { ...@@ -37,18 +41,20 @@ public class SysMenuController {
SysNavModel navDTO = new SysNavModel(menuList,permissions); SysNavModel navDTO = new SysNavModel(menuList,permissions);
return Result.succeed(navDTO); return Result.succeed(navDTO);
} }
@ApiOperation("获取全部菜单列表") @ApiOperation("查询菜单列表")
@GetMapping("/list") @PostMapping("/list")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR) @RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<List<SysMenuPO>> list(){ public PageResult<SysMenuPO> list(@RequestBody QueryMenuModel param){
List<SysMenuPO> menuList = sysMenuService.list(); return sysMenuService.queryList(param);
for (SysMenuPO menuPO : menuList){
SysMenuPO parentMenu = sysMenuService.getById(menuPO.getParentId());
if (parentMenu != null){
menuPO.setParentName(parentMenu.getName());
}
} }
return Result.succeed(menuList); @ApiOperation("获取全部菜单树")
@GetMapping("/tree")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<Tree> getAllTree(){
List<SysMenuPO> menuList = sysMenuService.list();
MenuTreeProvider menuTreeProvider = new MenuTreeProvider();
TreeView treeView = new TreeView(menuList,menuTreeProvider,menuTreeProvider);
return Result.succeed(treeView.buildTree("menuTree"));
} }
@ApiOperation("获取不包含按扭的全部菜单") @ApiOperation("获取不包含按扭的全部菜单")
......
...@@ -4,12 +4,14 @@ import com.qkdata.biz.common.BizConstants; ...@@ -4,12 +4,14 @@ import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.sys.entity.SysRolePO; import com.qkdata.biz.sys.entity.SysRolePO;
import com.qkdata.biz.sys.service.SysRoleService; import com.qkdata.biz.sys.service.SysRoleService;
import com.qkdata.biz.sys.vo.QueryRoleModel; import com.qkdata.biz.sys.vo.QueryRoleModel;
import com.qkdata.biz.sys.vo.RoleMenuPermissionModel;
import com.qkdata.biz.sys.vo.SysRoleModel; import com.qkdata.biz.sys.vo.SysRoleModel;
import com.qkdata.common.annotation.SysLog; import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.model.PageResult; import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.model.Result; import com.qkdata.common.base.model.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; 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.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles; import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -71,9 +73,23 @@ public class SysRoleController { ...@@ -71,9 +73,23 @@ public class SysRoleController {
@ApiOperation("删除角色信息") @ApiOperation("删除角色信息")
@SysLog("删除角色信息") @SysLog("删除角色信息")
@PostMapping("/delete") @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){ public Result<String> delete(@RequestBody Long[] ids){
sysRoleService.removeByIds(Arrays.asList(ids)); sysRoleService.removeByIds(Arrays.asList(ids));
return Result.succeed("ok"); 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; package com.qkdata.biz.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.entity.SysMenuPO;
import com.qkdata.biz.sys.vo.QueryMenuModel;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@Mapper @Mapper
public interface SysMenuMapper extends BaseMapper<SysMenuPO> { public interface SysMenuMapper extends BaseMapper<SysMenuPO> {
List<SysMenuPO> queryNotButtonList(); List<SysMenuPO> queryNotButtonList();
List<SysMenuPO> queryList(Page<SysMenuPO> page, @Param("p") QueryMenuModel param);
} }
...@@ -9,4 +9,6 @@ import java.util.List; ...@@ -9,4 +9,6 @@ import java.util.List;
@Mapper @Mapper
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenuPO> { public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenuPO> {
List<Long> selectMenuIdsByRoleId(Long roleId); 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; package com.qkdata.biz.sys.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.qkdata.biz.enums.MenuTypeEnum; import com.qkdata.biz.enums.MenuTypeEnum;
import com.qkdata.biz.sys.entity.SysMenuPO; import com.qkdata.biz.sys.entity.SysMenuPO;
import com.qkdata.biz.sys.mapper.SysMenuMapper; import com.qkdata.biz.sys.mapper.SysMenuMapper;
import com.qkdata.biz.sys.mapper.SysUserMapper; 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.base.service.impl.BaseServiceImpl;
import com.qkdata.common.constants.Constants; import com.qkdata.common.constants.Constants;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -75,4 +79,11 @@ public class SysMenuService extends BaseServiceImpl<SysMenuMapper, SysMenuPO> { ...@@ -75,4 +79,11 @@ public class SysMenuService extends BaseServiceImpl<SysMenuMapper, SysMenuPO> {
public List<SysMenuPO> queryNotButtonList() { public List<SysMenuPO> queryNotButtonList() {
return baseMapper.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; ...@@ -5,6 +5,7 @@ import com.qkdata.biz.sys.entity.SysRoleMenuPO;
import com.qkdata.biz.sys.mapper.SysRoleMenuMapper; import com.qkdata.biz.sys.mapper.SysRoleMenuMapper;
import com.qkdata.common.base.service.impl.BaseServiceImpl; import com.qkdata.common.base.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.List; import java.util.List;
...@@ -14,6 +15,7 @@ public class SysRoleMenuService extends BaseServiceImpl<SysRoleMenuMapper, SysRo ...@@ -14,6 +15,7 @@ public class SysRoleMenuService extends BaseServiceImpl<SysRoleMenuMapper, SysRo
public List<Long> queryMenuIdList(Long roleId) { public List<Long> queryMenuIdList(Long roleId) {
return baseMapper.selectMenuIdsByRoleId(roleId); return baseMapper.selectMenuIdsByRoleId(roleId);
} }
@Transactional
public void saveOrUpdateRoleMenu(Long roleId, List<Long> menuIdList) { public void saveOrUpdateRoleMenu(Long roleId, List<Long> menuIdList) {
deleteByRoleIds(new Long[]{roleId}); deleteByRoleIds(new Long[]{roleId});
...@@ -31,4 +33,8 @@ public class SysRoleMenuService extends BaseServiceImpl<SysRoleMenuMapper, SysRo ...@@ -31,4 +33,8 @@ public class SysRoleMenuService extends BaseServiceImpl<SysRoleMenuMapper, SysRo
private void deleteByRoleIds(Long[] roleIds) { private void deleteByRoleIds(Long[] roleIds) {
baseMapper.delete(Wrappers.<SysRoleMenuPO>lambdaQuery().in(SysRoleMenuPO::getRoleId,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; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.sys.entity.SysRolePO; import com.qkdata.biz.sys.entity.SysRolePO;
import com.qkdata.biz.sys.mapper.SysRoleMapper; import com.qkdata.biz.sys.mapper.SysRoleMapper;
import com.qkdata.biz.sys.vo.QueryRoleModel; import com.qkdata.biz.sys.vo.QueryRoleModel;
import com.qkdata.biz.sys.vo.RoleMenuPermissionModel;
import com.qkdata.biz.sys.vo.SysRoleModel; import com.qkdata.biz.sys.vo.SysRoleModel;
import com.qkdata.common.base.enums.CodeEnum; import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.exception.BusinessException; import com.qkdata.common.base.exception.BusinessException;
...@@ -63,4 +64,12 @@ public class SysRoleService extends BaseServiceImpl<SysRoleMapper, SysRolePO> { ...@@ -63,4 +64,12 @@ public class SysRoleService extends BaseServiceImpl<SysRoleMapper, SysRolePO> {
public List<SysRoleModel> getUserRoles(Long userId) { public List<SysRoleModel> getUserRoles(Long userId) {
return baseMapper.findUserRoles(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 { ...@@ -37,7 +37,7 @@ public interface ILabelProvider {
* @param index 索引 * @param index 索引
* @return 节点ID * @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 * 获取当前元素显示图标.如果不显示图标,返回null
......
...@@ -13,7 +13,7 @@ public class TreeNode { ...@@ -13,7 +13,7 @@ public class TreeNode {
/** /**
* <code>id</code> - 节点ID. * <code>id</code> - 节点ID.
*/ */
private String m_id; private Object m_id;
/** /**
* <code>m_lable</code> - 节点名称. * <code>m_lable</code> - 节点名称.
*/ */
...@@ -53,7 +53,7 @@ public class TreeNode { ...@@ -53,7 +53,7 @@ public class TreeNode {
* @param id 节点ID. * @param id 节点ID.
* @param values 节点属性集合. * @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_id = id;
this.m_extProperty = values; this.m_extProperty = values;
} }
...@@ -61,14 +61,14 @@ public class TreeNode { ...@@ -61,14 +61,14 @@ public class TreeNode {
/** /**
* @return id - {return content description} * @return id - {return content description}
*/ */
public String getId() { public Object getId() {
return m_id; return m_id;
} }
/** /**
* @param id - {parameter description}. * @param id - {parameter description}.
*/ */
public void setId(final String id) { public void setId(final Object id) {
m_id = id; m_id = id;
} }
......
...@@ -4,4 +4,12 @@ ...@@ -4,4 +4,12 @@
<select id="queryNotButtonList" resultType="com.qkdata.biz.sys.entity.SysMenuPO"> <select id="queryNotButtonList" resultType="com.qkdata.biz.sys.entity.SysMenuPO">
select * from sys_menu where type != 2 order by order_num asc select * from sys_menu where type != 2 order by order_num asc
</select> </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> </mapper>
\ No newline at end of file
...@@ -4,4 +4,8 @@ ...@@ -4,4 +4,8 @@
<select id="selectMenuIdsByRoleId" resultType="java.lang.Long"> <select id="selectMenuIdsByRoleId" resultType="java.lang.Long">
select menu_id from sys_role_menu where role_id = #{roleId} select menu_id from sys_role_menu where role_id = #{roleId}
</select> </select>
<select id="findRoleMenuIds" resultType="java.lang.Long">
select menu_id from sys_role_menu
where role_id = #{roleId}
</select>
</mapper> </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