main
tamguo 7 years ago
parent 7c1a4b8c71
commit a16481ee16

@ -22,4 +22,7 @@ public interface ISysUserService extends IService<SysUserEntity>{
/** 添加用户信息*/ /** 添加用户信息*/
public void save(SysUserEntity user); public void save(SysUserEntity user);
/** 分配角色*/
public void allowUserRole(SysUserEntity user);
} }

@ -23,6 +23,7 @@ import com.tamguo.modules.sys.model.condition.SysUserCondition;
import com.tamguo.modules.sys.model.enums.SysUserMgrTypeEnum; import com.tamguo.modules.sys.model.enums.SysUserMgrTypeEnum;
import com.tamguo.modules.sys.model.enums.SysUserStatusEnum; import com.tamguo.modules.sys.model.enums.SysUserStatusEnum;
import com.tamguo.modules.sys.model.enums.SysUserTypeEnum; import com.tamguo.modules.sys.model.enums.SysUserTypeEnum;
import com.tamguo.modules.sys.service.ISysRoleService;
import com.tamguo.modules.sys.service.ISysUserService; import com.tamguo.modules.sys.service.ISysUserService;
import com.tamguo.modules.sys.utils.ShiroUtils; import com.tamguo.modules.sys.utils.ShiroUtils;
import com.tamguo.modules.sys.utils.TamguoConstant; import com.tamguo.modules.sys.utils.TamguoConstant;
@ -36,6 +37,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
public SysUserPostMapper sysUserPostMapper; public SysUserPostMapper sysUserPostMapper;
@Autowired @Autowired
public SysUserRoleMapper sysUserRoleMapper; public SysUserRoleMapper sysUserRoleMapper;
@Autowired
public ISysRoleService iSysRoleService;
@Transactional(readOnly=false) @Transactional(readOnly=false)
@Override @Override
@ -133,7 +136,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
} }
// 处理角色 // 处理角色
if(StringUtils.isEmpty(user.getUserRoleString())) { if(!StringUtils.isEmpty(user.getUserRoleString())) {
String[] roleCodes = user.getUserRoleString().split(",");
for(String roleCode : roleCodes) {
SysUserRoleEntity role = new SysUserRoleEntity();
role.setRoleCode(roleCode);
role.setUserCode(user.getUserCode());
sysUserRoleMapper.insert(role);
}
}
}
@SuppressWarnings("unchecked")
@Transactional(readOnly=false)
@Override
public void allowUserRole(SysUserEntity user) {
// 删除角色记录
sysUserRoleMapper.delete(Condition.create().eq("user_code", user.getUserCode()));
// 处理角色
if(!StringUtils.isEmpty(user.getUserRoleString())) {
String[] roleCodes = user.getUserRoleString().split(","); String[] roleCodes = user.getUserRoleString().split(",");
for(String roleCode : roleCodes) { for(String roleCode : roleCodes) {
SysUserRoleEntity role = new SysUserRoleEntity(); SysUserRoleEntity role = new SysUserRoleEntity();

@ -21,9 +21,14 @@ import com.tamguo.modules.sys.utils.Result;
@RequestMapping(path="sys/user") @RequestMapping(path="sys/user")
public class SysUserController { public class SysUserController {
/** 用户列表*/
private final String USER_LIST_PAGE = "modules/sys/user/list"; private final String USER_LIST_PAGE = "modules/sys/user/list";
/** 修改*/
private final String USER_UPDATE_PAGE = "modules/sys/user/update"; private final String USER_UPDATE_PAGE = "modules/sys/user/update";
/** 新增*/
private final String USER_ADD_PAGE = "modules/sys/user/add"; private final String USER_ADD_PAGE = "modules/sys/user/add";
/** 分配角色*/
private final String USER_ROLE_PAGE = "modules/sys/user/role";
@Autowired @Autowired
private ISysUserService iSysUserService; private ISysUserService iSysUserService;
@ -46,6 +51,13 @@ public class SysUserController {
return model; return model;
} }
@RequestMapping(path="role")
public ModelAndView role(String userCode , ModelAndView model) {
model.setViewName(USER_ROLE_PAGE);
model.addObject("user", iSysUserService.selectById(userCode));
return model;
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@RequestMapping(path="update") @RequestMapping(path="update")
public ModelAndView update(String userCode , ModelAndView model) { public ModelAndView update(String userCode , ModelAndView model) {
@ -82,7 +94,7 @@ public class SysUserController {
public Result update(SysUserEntity user) { public Result update(SysUserEntity user) {
try { try {
iSysUserService.update(user); iSysUserService.update(user);
return Result.result(0, null, "保存用户【"+user.getUserCode()+"】成功!"); return Result.result(0, null, "保存用户【"+user.getUserName()+"】成功!");
} catch (Exception e) { } catch (Exception e) {
return ExceptionSupport.resolverResult("更新用户", this.getClass(), e); return ExceptionSupport.resolverResult("更新用户", this.getClass(), e);
} }
@ -94,9 +106,21 @@ public class SysUserController {
public Result save(SysUserEntity user) { public Result save(SysUserEntity user) {
try { try {
iSysUserService.save(user); iSysUserService.save(user);
return Result.result(0, null, "保存用户【"+user.getUserCode()+"】成功!"); return Result.result(0, null, "保存用户【"+user.getUserName()+"】成功!");
} catch (Exception e) { } catch (Exception e) {
return ExceptionSupport.resolverResult("保存用户", this.getClass(), e); return ExceptionSupport.resolverResult("保存用户", this.getClass(), e);
} }
} }
/** 授权用户角色*/
@RequestMapping(path="allowUserRole",method=RequestMethod.POST)
@ResponseBody
public Result allowUserRole(SysUserEntity user) {
try {
iSysUserService.allowUserRole(user);
return Result.result(0, null, "【"+user.getUserName()+"】分配角色成功!");
} catch (Exception e) {
return ExceptionSupport.resolverResult("分配角色", this.getClass(), e);
}
}
} }

@ -330,7 +330,7 @@ $('#dataGrid').dataGrid({
actions.push('<a href="/js/a/sys/empUser/delete?userCode='+row.userCode+'" class="btnList" title="删除用户" data-confirm="确认要删除该用户吗?"><i class="fa fa-trash-o"></i></a>&nbsp;'); actions.push('<a href="/js/a/sys/empUser/delete?userCode='+row.userCode+'" class="btnList" title="删除用户" data-confirm="确认要删除该用户吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="javascript:" class="btnMore" title="更多操作"><i class="fa fa-chevron-circle-right"></i></a>&nbsp;'); actions.push('<a href="javascript:" class="btnMore" title="更多操作"><i class="fa fa-chevron-circle-right"></i></a>&nbsp;');
actions.push('<div class="moreItems">'); actions.push('<div class="moreItems">');
actions.push('<a href="/js/a/sys/empUser/form?userCode='+row.userCode+'&op=auth" class="btn btn-default btn-xs btnList" title="用户分配角色"><i class="fa fa-check-square-o"></i> 分配角色</a>&nbsp;'); actions.push('<a href="sys/user/role?userCode='+row.userCode+'&op=auth" class="btn btn-default btn-xs btnList" title="用户分配角色"><i class="fa fa-check-square-o"></i> 分配角色</a>&nbsp;');
actions.push('<a href="/js/a/sys/empUser/formAuthDataScope?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="用户分配数据权限"><i class="fa fa-check-circle-o"></i> 数据权限</a>&nbsp;'); actions.push('<a href="/js/a/sys/empUser/formAuthDataScope?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="用户分配数据权限"><i class="fa fa-check-circle-o"></i> 数据权限</a>&nbsp;');
actions.push('<a href="/js/a/sys/empUser/resetpwd?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="用户密码重置" data-confirm="确认要将该用户密码重置到初始状态吗?"><i class="fa fa-reply-all"></i> 重置密码</a>&nbsp;'); actions.push('<a href="/js/a/sys/empUser/resetpwd?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="用户密码重置" data-confirm="确认要将该用户密码重置到初始状态吗?"><i class="fa fa-reply-all"></i> 重置密码</a>&nbsp;');
actions.push('</div>'); actions.push('</div>');

@ -0,0 +1,124 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>用户管理 - JeeSite Demo</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
<!--[if lt IE 9]><script src="/js/static/common/h5fix.min.js"></script><![endif]-->
<link rel="stylesheet" th:href="${setting.domain + 'fonts/font-icons.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'bootstrap/css/bootstrap.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'select2/4.0/select2.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'icheck/1.0/minimal/grey.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'jqGrid/4.7/css/ui.jqgrid.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'adminlte/css/AdminLTE.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/jeesite.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/common.css'}">
</head><body class="hold-transition ">
<div class="wrapper"><div class="main-content">
<div class="box box-main">
<div class="box-header with-border">
<div class="box-title">
<i class="fa icon-people"></i> 用户分配角色
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<form id="inputForm" th:action="${setting.domain + 'sys/user/allowUserRole'}" method="post" class="form-horizontal">
<input type="hidden" id="userCode" name="userCode" th:value="${user.userCode}"/>
<div class="box-body">
<br/> <div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 登录账号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="loginCode" name="loginCode" th:value="${user.loginCode}" minlength="4" maxlength="20" readonly="true" class="form-control required userName" th:remote="${setting.domain + 'sys/user/checkLoginCode?oldLoginCode=' + user.loginCode}" data-msg-remote="登录账号已存在"/>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 用户昵称:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="userName" name="userName" th:value="${user.userName}" maxlength="32" readonly="true" class="form-control required "/>
</div>
</div>
</div>
</div>
<div class="form-unit">分配角色</div>
<div class="pl10 pb20">
<table id="roleGrid"></table>
<input type="hidden" id="userRoleString" name="userRoleString" value=""/>
</div>
</div>
<div class="box-footer">
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> 保 存</button>&nbsp;
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> 关 闭</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<a id="scroll-up" href="#" class="btn btn-sm"><i class="fa fa-angle-double-up"></i></a>
<script th:src="${setting.domain + 'bootstrap/js/bootstrap.min.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/select2.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'layer/3.1/layer.js'}"></script>
<script th:src="${setting.domain + 'my97/WdatePicker.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/jquery.jqGrid.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/jquery.jqGrid.extend.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/jquery.validate.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/localization/messages_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/jquery.validate.extend.js'}"></script>
<script th:src="${setting.domain + 'common/jeesite.js'}"></script>
<script th:src="${setting.domain + 'common/i18n/jeesite_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'common/common.js'}"></script>
<script>
$("#inputForm").validate({
submitHandler: function(form){
// 获取选中角色
$("#userRoleString").val(roleGrid.dataGrid('getSelectRows').join(','));
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);
if(data.code == 0){
js.closeCurrentTabPage(function(contentWindow){
contentWindow.page();
});
}
}, "json");
}
});
// 加载角色列表
var roleGrid = $("#roleGrid").dataGrid({
url: ctx + 'sys/role/treeData',
postData: [
{name:'userType',value:'employee'},
{name:'ctrlPermi',value:'2'}
],
columnModel: [
{header:'角色名称', name:'roleName', sortable:false, width:100, align:"center"},
{header:'角色编码', name:'id', sortable:false, width:100, align:"center"}
],
showCheckbox: true,
autoGridHeight: function(){
return 'auto';
},
autoGridWidth: function(){
return $('#inputForm .box-body').width()-20;
},
ajaxSuccess: function(){
roleGrid.dataGrid('setSelectRow', 'dept');
}
});
</script>
Loading…
Cancel
Save