From 26a6eeb4071c0ad6f4c5155b7dc3d4bc065b6d83 Mon Sep 17 00:00:00 2001 From: tamguo Date: Thu, 26 Jul 2018 10:32:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/dao/SysRoleMenuMapper.java | 8 ++++++ .../modules/sys/model/SysRoleEntity.java | 18 ++++++++++++ .../modules/sys/model/SysRoleMenuEntity.java | 24 ++++++++++++++++ .../modules/sys/service/ISysRoleService.java | 8 +++++- .../sys/service/impl/SysRoleServiceImpl.java | 28 +++++++++++++++++-- .../modules/sys/web/SysRoleController.java | 15 ++++++++-- .../resources/mappers/SysRoleMenuMapper.xml | 5 ++++ .../templates/modules/sys/role/menu.html | 16 ++++++----- 8 files changed, 110 insertions(+), 12 deletions(-) create mode 100644 tamguo-oms/src/main/java/com/tamguo/modules/sys/dao/SysRoleMenuMapper.java create mode 100644 tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleMenuEntity.java create mode 100644 tamguo-oms/src/main/resources/mappers/SysRoleMenuMapper.xml diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/dao/SysRoleMenuMapper.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/dao/SysRoleMenuMapper.java new file mode 100644 index 0000000..df2e239 --- /dev/null +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/dao/SysRoleMenuMapper.java @@ -0,0 +1,8 @@ +package com.tamguo.modules.sys.dao; + +import com.tamguo.config.dao.SuperMapper; +import com.tamguo.modules.sys.model.SysRoleMenuEntity; + +public interface SysRoleMenuMapper extends SuperMapper{ + +} diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleEntity.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleEntity.java index 63d9d6d..a421556 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleEntity.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleEntity.java @@ -4,6 +4,8 @@ import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; @@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.annotations.TableName; public class SysRoleEntity implements Serializable { private static final long serialVersionUID = 1L; + @TableId private String roleCode; private String corpCode; private String corpName; @@ -30,6 +33,9 @@ public class SysRoleEntity implements Serializable { private String updateBy; private Date updateDate; private String userType; + + @TableField(exist=false) + private String roleMenuListJson; public SysRoleEntity() { } @@ -153,5 +159,17 @@ public class SysRoleEntity implements Serializable { public void setUserType(String userType) { this.userType = userType; } + + public String getId() { + return getRoleCode(); + } + + public String getRoleMenuListJson() { + return roleMenuListJson; + } + + public void setRoleMenuListJson(String roleMenuListJson) { + this.roleMenuListJson = roleMenuListJson; + } } \ No newline at end of file diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleMenuEntity.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleMenuEntity.java new file mode 100644 index 0000000..f3cbabb --- /dev/null +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/model/SysRoleMenuEntity.java @@ -0,0 +1,24 @@ +package com.tamguo.modules.sys.model; + +import com.baomidou.mybatisplus.annotations.TableName; + +@TableName(value="sys_role_menu") +public class SysRoleMenuEntity { + + private String roleCode; + private String menuCode; + + public String getRoleCode() { + return roleCode; + } + public void setRoleCode(String roleCode) { + this.roleCode = roleCode; + } + public String getMenuCode() { + return menuCode; + } + public void setMenuCode(String menuCode) { + this.menuCode = menuCode; + } + +} diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysRoleService.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysRoleService.java index aa97669..f37916c 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysRoleService.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/ISysRoleService.java @@ -3,13 +3,19 @@ package com.tamguo.modules.sys.service; import java.util.Map; import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; import com.tamguo.modules.sys.model.SysRoleEntity; import com.tamguo.modules.sys.model.condition.SysRoleCondition; -public interface ISysRoleService { +public interface ISysRoleService extends IService{ + /** 列表查询*/ Page listData(SysRoleCondition condition); + /** 属性菜单*/ Map menuTreeData(String roleCode); + /** 分配功能权限*/ + void allowMenuPermission(SysRoleEntity role); + } diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysRoleServiceImpl.java b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysRoleServiceImpl.java index 3436d5f..e4fd726 100644 --- a/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysRoleServiceImpl.java +++ b/tamguo-oms/src/main/java/com/tamguo/modules/sys/service/impl/SysRoleServiceImpl.java @@ -12,20 +12,25 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.tamguo.modules.sys.dao.SysMenuMapper; import com.tamguo.modules.sys.dao.SysRoleMapper; +import com.tamguo.modules.sys.dao.SysRoleMenuMapper; import com.tamguo.modules.sys.model.SysMenuEntity; import com.tamguo.modules.sys.model.SysRoleEntity; +import com.tamguo.modules.sys.model.SysRoleMenuEntity; import com.tamguo.modules.sys.model.condition.SysRoleCondition; import com.tamguo.modules.sys.service.ISysRoleService; @Service -public class SysRoleServiceImpl implements ISysRoleService{ +public class SysRoleServiceImpl extends ServiceImpl implements ISysRoleService { @Autowired private SysRoleMapper sysRoleMapper; @Autowired private SysMenuMapper sysMenuMapper; + @Autowired + private SysRoleMenuMapper sysRoleMenuMapper; @Transactional(readOnly=true) @Override @@ -37,7 +42,7 @@ public class SysRoleServiceImpl implements ISysRoleService{ @SuppressWarnings("unchecked") @Override public Map menuTreeData(String roleCode) { - List menus = sysMenuMapper.selectList(Condition.create().eq("module_codes", "core")); + List menus = sysMenuMapper.selectList(Condition.create().eq("is_show", "1")); List roleMenus = sysMenuMapper.selectMenuByRoleId(roleCode); JSONObject result = new JSONObject(); @@ -72,4 +77,23 @@ public class SysRoleServiceImpl implements ISysRoleService{ } return result; } + + @Transactional(readOnly=false) + @SuppressWarnings("unchecked") + @Override + public void allowMenuPermission(SysRoleEntity role) { + // 先删除关联表数据 + sysRoleMenuMapper.delete(Condition.create().eq("role_code", role.getRoleCode())); + + if(!StringUtils.isEmpty(role.getRoleMenuListJson())) { + JSONArray roleMenus = JSONArray.parseArray(role.getRoleMenuListJson()); + for(int i=0 ; i menuTreeData(String roleCode) { return iSysRoleService.menuTreeData(roleCode); } + + /** 角色授权功能菜单 */ + @RequestMapping(path="allowMenuPermission",method=RequestMethod.POST) + @ResponseBody + public Result allowMenuPermission(SysRoleEntity role) { + iSysRoleService.allowMenuPermission(role); + return Result.result(0, null, "保存角色【"+role.getRoleName()+"】成功!"); + } } diff --git a/tamguo-oms/src/main/resources/mappers/SysRoleMenuMapper.xml b/tamguo-oms/src/main/resources/mappers/SysRoleMenuMapper.xml new file mode 100644 index 0000000..d699709 --- /dev/null +++ b/tamguo-oms/src/main/resources/mappers/SysRoleMenuMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tamguo-oms/src/main/resources/templates/modules/sys/role/menu.html b/tamguo-oms/src/main/resources/templates/modules/sys/role/menu.html index 4209fac..69281d0 100644 --- a/tamguo-oms/src/main/resources/templates/modules/sys/role/menu.html +++ b/tamguo-oms/src/main/resources/templates/modules/sys/role/menu.html @@ -27,7 +27,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/> -
+
基本信息
@@ -37,8 +37,8 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
- - + +
@@ -47,8 +47,8 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
- - + +
@@ -112,14 +112,16 @@ $("#inputForm").validate({ $.each(menuTrees, function(key, menuTree){ var treeNodes = menuTree.getCheckedNodes(true); for(var i=0; i