Commit ef83fe23 by liuyongshuai

修改角色的层级问题;修改批量授权的bug;解决山西的连接字符串过长的问题

parent 7857006e
......@@ -307,6 +307,7 @@ public class SysUserController {
for (int i = 0;i<idList.length;i++){
SysUser thisUser = new SysUser();
thisUser.setId(idList[i]);
thisUser.setRoleId(user.getRoleId());
userService.batchUpdate(thisUser);
}
......
......@@ -502,7 +502,7 @@
from SYS_USER t
left join
(select u.user_id ,
listagg( roleName, ',' ) within group ( order by u.user_id ) as roleName
xmlagg(xmlparse(content roleName||',' wellformed) order by u.user_id).getclobval() as roleName
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
on t.id=tt.user_id
where scbz='0'
......@@ -548,7 +548,7 @@
from SYS_USER t
left join
(select u.user_id ,
listagg( roleName, ',' ) within group ( order by u.user_id ) as roleName
xmlagg(xmlparse(content roleName||',' wellformed) order by u.user_id).getclobval() as roleName
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
on t.id=tt.user_id
where scbz='0'
......
......@@ -242,20 +242,32 @@ public class SysUserServiceImpl implements SysUserService {
deleteUserZpByUserId(user.getId());
addUserZp(user);
}
authorize(user, dlUser, userDao);
authorize(user, true,dlUser, userDao);
return user;
}
//授权操作
public static void authorize(SysUser user, SysUser dlUser, SysUserDao userDao) {
//3.删除原有的角色和用户的绑定关系
int b = userDao.deleteSysUserRoleByUserId(user.getId());
public static void authorize(SysUser user, Boolean flag,SysUser dlUser, SysUserDao userDao) {
List<String> oldRoleIdList = null;
if(flag){
//3.删除原有的角色和用户的绑定关系
int b = userDao.deleteSysUserRoleByUserId(user.getId());
}else {
oldRoleIdList = userDao.selectSysRoleIdByUserId(user.getId());
}
//4.增加新的用户和角色的关系
String roleIds = user.getRoleId();
if(roleIds!=null&&!"".equals(roleIds)){
String[] roleList = roleIds.split(",");
List<SysUserRole> userRoles = new ArrayList<SysUserRole>();
for (String role:roleList){
a:for (String role:roleList){
if(oldRoleIdList!=null&&oldRoleIdList.size()>0){
b:for (String oldId:oldRoleIdList) {
if(oldId.equals(role)){
continue a;
}
}
}
SysUserRole sysUserRole = new SysUserRole();
sysUserRole.setId(SequenceUtil.getNextXxzjbh());
sysUserRole.setUserId(user.getId());
......@@ -279,7 +291,13 @@ public class SysUserServiceImpl implements SysUserService {
@Override
public SysUser batchUpdate(SysUser user) {
SysUser dlUser = TokenUtil.getUser();
authorize(user, dlUser, userDao);
/**
* 批量操作存在一个问题,用户原有的角色会被删除,然后再增加新的角色,
* 所以在此需要修改批量授权逻辑,比对每个用户原有的角色,已有,则跳过,
* 没有,则加入批量插入的list
*/
authorize(user, false,dlUser, userDao);
return user;
}
......
......@@ -139,7 +139,7 @@
$("#isParentRole").removeClass("btx");
$("#permissionName").removeAttr('lay-verify');
$("#pidName").removeAttr('lay-verify');
$("#hasPermission").hide();
//$("#hasPermission").hide();
$("#isParentRole").hide();
}
if(data.value=="02"){
......
......@@ -143,7 +143,7 @@
$("#isParentRole").removeClass("btx");
$("#permissionName").removeAttr('lay-verify');
$("#pidName").removeAttr('lay-verify');
$("#hasPermission").hide();
//$("#hasPermission").hide();
$("#isParentRole").hide();
$("#permissionName").val("");
$("#permissionId").val("");
......
......@@ -199,10 +199,8 @@
<div class="select-box3 left">
<div class="layui-form-item">
<label class="layui-form-label" style="position: absolute;left: 50%;margin-left: -71px;">用户角色</label>
<input type="text" id="batchRoleId" Name="batchRoleId" style="display: none;">
<ul class="list-juese" id="batchRoleName" name="batchRoleName">
<li>
<input type="text" id="batchRoleId" Name="batchRoleId" style="display: none;">
</li>
</ul>
<button class="layui-btn layui-btn-normal" style="position: absolute; left: 50%;bottom: 5px;margin-left: -26px;" onclick="save();">保存</button>
</div>
......@@ -276,9 +274,6 @@
for (var i = 0; i < checkboxs.length; i++) {
if ($(checkboxs[i]).hasClass('layui-form-checked')) {
var idStr = "";
var that = $(checkboxs[i]).parents("tr").clone();
if (!that.find(".layui-form-checkbox").hasClass("UserMoved")) {
that.find(".layui-form-checkbox").addClass("UserMoved");
......
......@@ -74,7 +74,7 @@
<div class="layui-form-item btx">
<label class="layui-form-label">登录密码</label>
<div class="layui-input-block">
<input type="password" name="password" lay-verify="required" placeholder="默认密码000000" value="${user.password}"
<input type="password" name="password" lay-verify="required" placeholder="" value="${user.password}"
class="layui-input">
</div>
</div>
......@@ -93,13 +93,13 @@
class="layui-input">
</div>
</div>--%>
<%--<div class="layui-form-item btx">
<div class="layui-form-item btx">
<label class="layui-form-label">联系电话</label>
<div class="layui-input-block">
<input type="text" name="telephone" lay-verify="phone" placeholder="请输入联系电话"
value="${user.telephone}" class="layui-input">
</div>
</div>--%>
</div>
<div class="layui-form-item btx">
<label class="layui-form-label">用户警号</label>
<div class="layui-input-block">
......
......@@ -41,18 +41,23 @@ function setTree(data,treeId,type,kid,vid,glcs) {
onCheck: function (e,treeId) {
var treeObj=$.fn.zTree.getZTreeObj(treeId),
nodes=treeObj.getCheckedNodes(true),
v="",k="";
v="",k="",vStr="";
for(var i=0;i<nodes.length;i++){
var thisName = nodes[i].name;
if(thisName.indexOf("[")>-1){
thisName=thisName.substring(0,thisName.indexOf("["));
}
if(vid=="batchRoleName"){
$("#batchRoleName").append("<li>"+thisName+"</li>");
vStr+="<li>"+thisName+"</li>"
}
v+=thisName + ",";
k+=nodes[i].id + ",";
}
if(vid=="batchRoleName"){
//消除迭代影响
$("#batchRoleName").empty();
$("#batchRoleName").append(vStr);
}
$("#"+kid).val(k);
$("#"+vid).val(v);
// closeTree();
......
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