main
tamguo 7 years ago
parent 3fe4a42b19
commit 26a6eeb407

@ -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<SysRoleMenuEntity>{
}

@ -4,6 +4,8 @@ import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.annotations.TableName;
@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.annotations.TableName;
public class SysRoleEntity implements Serializable { public class SysRoleEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId
private String roleCode; private String roleCode;
private String corpCode; private String corpCode;
private String corpName; private String corpName;
@ -31,6 +34,9 @@ public class SysRoleEntity implements Serializable {
private Date updateDate; private Date updateDate;
private String userType; private String userType;
@TableField(exist=false)
private String roleMenuListJson;
public SysRoleEntity() { public SysRoleEntity() {
} }
@ -154,4 +160,16 @@ public class SysRoleEntity implements Serializable {
this.userType = userType; this.userType = userType;
} }
public String getId() {
return getRoleCode();
}
public String getRoleMenuListJson() {
return roleMenuListJson;
}
public void setRoleMenuListJson(String roleMenuListJson) {
this.roleMenuListJson = roleMenuListJson;
}
} }

@ -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;
}
}

@ -3,13 +3,19 @@ package com.tamguo.modules.sys.service;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.plugins.Page; 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.SysRoleEntity;
import com.tamguo.modules.sys.model.condition.SysRoleCondition; import com.tamguo.modules.sys.model.condition.SysRoleCondition;
public interface ISysRoleService { public interface ISysRoleService extends IService<SysRoleEntity>{
/** 列表查询*/
Page<SysRoleEntity> listData(SysRoleCondition condition); Page<SysRoleEntity> listData(SysRoleCondition condition);
/** 属性菜单*/
Map<String, Object> menuTreeData(String roleCode); Map<String, Object> menuTreeData(String roleCode);
/** 分配功能权限*/
void allowMenuPermission(SysRoleEntity role);
} }

@ -12,20 +12,25 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page; 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.SysMenuMapper;
import com.tamguo.modules.sys.dao.SysRoleMapper; 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.SysMenuEntity;
import com.tamguo.modules.sys.model.SysRoleEntity; 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.model.condition.SysRoleCondition;
import com.tamguo.modules.sys.service.ISysRoleService; import com.tamguo.modules.sys.service.ISysRoleService;
@Service @Service
public class SysRoleServiceImpl implements ISysRoleService{ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity> implements ISysRoleService {
@Autowired @Autowired
private SysRoleMapper sysRoleMapper; private SysRoleMapper sysRoleMapper;
@Autowired @Autowired
private SysMenuMapper sysMenuMapper; private SysMenuMapper sysMenuMapper;
@Autowired
private SysRoleMenuMapper sysRoleMenuMapper;
@Transactional(readOnly=true) @Transactional(readOnly=true)
@Override @Override
@ -37,7 +42,7 @@ public class SysRoleServiceImpl implements ISysRoleService{
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public Map<String, Object> menuTreeData(String roleCode) { public Map<String, Object> menuTreeData(String roleCode) {
List<SysMenuEntity> menus = sysMenuMapper.selectList(Condition.create().eq("module_codes", "core")); List<SysMenuEntity> menus = sysMenuMapper.selectList(Condition.create().eq("is_show", "1"));
List<SysMenuEntity> roleMenus = sysMenuMapper.selectMenuByRoleId(roleCode); List<SysMenuEntity> roleMenus = sysMenuMapper.selectMenuByRoleId(roleCode);
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
@ -72,4 +77,23 @@ public class SysRoleServiceImpl implements ISysRoleService{
} }
return result; 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<roleMenus.size() ; i++) {
JSONObject menu = roleMenus.getJSONObject(i);
SysRoleMenuEntity roleMenu = new SysRoleMenuEntity();
roleMenu.setRoleCode(role.getRoleCode());
roleMenu.setMenuCode(menu.getString("menuCode"));
sysRoleMenuMapper.insert(roleMenu);
}
}
}
} }

@ -7,6 +7,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.tamguo.modules.sys.model.SysRoleEntity; import com.tamguo.modules.sys.model.SysRoleEntity;
@ -34,8 +35,10 @@ public class SysRoleController {
/** 角色授权功能菜单*/ /** 角色授权功能菜单*/
@RequestMapping(path="menu") @RequestMapping(path="menu")
public String menu() { public ModelAndView menu(String roleCode , ModelAndView model) {
return ROLE_MENU_INDEX_PAGE; model.addObject("role", iSysRoleService.selectById(roleCode));
model.setViewName(ROLE_MENU_INDEX_PAGE);
return model;
} }
/** 列表数据*/ /** 列表数据*/
@ -52,4 +55,12 @@ public class SysRoleController {
return iSysRoleService.menuTreeData(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()+"】成功!");
}
} }

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tamguo.modules.sys.dao.SysRoleMenuMapper">
</mapper>

@ -27,7 +27,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div> </div>
</div> </div>
<form id="inputForm" action="/js/a/sys/role/save" method="post" class="form-horizontal"> <form id="inputForm" th:action="${setting.domain + 'sys/role/allowMenuPermission'}" method="post" class="form-horizontal">
<input type="hidden" id="op" name="op" value="auth"/> <input type="hidden" id="op" name="op" value="auth"/>
<div class="box-body"> <div class="box-body">
<div class="form-unit">基本信息</div> <div class="form-unit">基本信息</div>
@ -38,7 +38,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<span class="required ">*</span> 角色名称:<i class="fa icon-question hide"></i></label> <span class="required ">*</span> 角色名称:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="hidden" id="oldRoleName" name="oldRoleName" value="部门经理"/> <input type="hidden" id="oldRoleName" name="oldRoleName" value="部门经理"/>
<input type="text" id="roleName" name="roleName" value="部门经理" maxlength="100" readonly="true" class="form-control required " remote="/js/a/sys/role/checkRoleName?oldRoleName=部门经理" data-msg-remote="角色名称已存在"/> <input type="text" id="roleName" name="roleName" th:value="${role.roleName}" maxlength="100" readonly="true" class="form-control required " />
</div> </div>
</div> </div>
</div> </div>
@ -48,7 +48,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<span class="required ">*</span> 角色编码:<i class="fa icon-question hide"></i></label> <span class="required ">*</span> 角色编码:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="hidden" id="isNewRecord" name="isNewRecord" value="false"/> <input type="hidden" id="isNewRecord" name="isNewRecord" value="false"/>
<input type="text" id="roleCode" name="roleCode" value="dept" maxlength="64" readonly="true" class="form-control required abc"/> <input type="text" id="roleCode" name="roleCode" th:value="${role.roleCode}" maxlength="64" readonly="true" class="form-control required abc"/>
</div> </div>
</div> </div>
</div> </div>
@ -112,14 +112,16 @@ $("#inputForm").validate({
$.each(menuTrees, function(key, menuTree){ $.each(menuTrees, function(key, menuTree){
var treeNodes = menuTree.getCheckedNodes(true); var treeNodes = menuTree.getCheckedNodes(true);
for(var i=0; i<treeNodes.length; i++) { for(var i=0; i<treeNodes.length; i++) {
menuData.push(treeNodes[i].id); var menu = {};
menu.menuCode = treeNodes[i].id;
menuData.push(menu);
} }
}); });
$("#roleMenuListJson").val(JSON.stringify(menuData)); $("#roleMenuListJson").val(JSON.stringify(menuData));
// 提交表单数据 // 提交表单数据
js.ajaxSubmitForm($(form), function(data){ js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message); js.showMessage(data.message);
if(data.result == Global.TRUE){ if(data.code == 0){
js.closeCurrentTabPage(function(contentWindow){ js.closeCurrentTabPage(function(contentWindow){
contentWindow.page(); contentWindow.page();
}); });

Loading…
Cancel
Save