fix: 内部工作组权限问题及修复权限数据接口
This commit is contained in:
+11
@@ -223,4 +223,15 @@ public class LawsWorkingGroupController extends JeroController<LawsWorkingGroup,
|
|||||||
}
|
}
|
||||||
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修复所有权限
|
||||||
|
*/
|
||||||
|
@ApiOperationSupport(order = 7)
|
||||||
|
@ApiOperation(value="内部工作组-修复所有权限", notes="内部工作组-修复所有权限")
|
||||||
|
@GetMapping(value = "/fixAllAuth")
|
||||||
|
public Result<T> fixAllAuth() {
|
||||||
|
lawsWorkingGroupService.fixAllAuth();
|
||||||
|
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,14 @@ public interface ILawsWorkingGroupService extends IService<LawsWorkingGroup> {
|
|||||||
*/
|
*/
|
||||||
void add(LawsWorkingGroup lawsWorkingGroup);
|
void add(LawsWorkingGroup lawsWorkingGroup);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修复所有权限
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void fixAllAuth();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
*
|
*
|
||||||
|
|||||||
+38
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.sys.service.impl;
|
package com.jero.modules.sys.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jero.common.constant.CommonConstant;
|
import com.jero.common.constant.CommonConstant;
|
||||||
import com.jero.modules.sys.entity.LawsWorkingGroup;
|
import com.jero.modules.sys.entity.LawsWorkingGroup;
|
||||||
@@ -58,6 +59,22 @@ public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMap
|
|||||||
save(lawsWorkingGroup);
|
save(lawsWorkingGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修复所有标准分会分配的管理权限
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void fixAllAuth() {
|
||||||
|
// 获取所有二级工作组
|
||||||
|
List<LawsWorkingGroup> list = this.list(
|
||||||
|
new LambdaQueryWrapper<LawsWorkingGroup>().eq(LawsWorkingGroup::getLevel, 2));
|
||||||
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
|
list.forEach(this::editById);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
*
|
*
|
||||||
@@ -66,11 +83,28 @@ public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMap
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void editById(LawsWorkingGroup lawsWorkingGroup) {
|
public void editById(LawsWorkingGroup lawsWorkingGroup) {
|
||||||
|
LawsWorkingGroup old = getById(lawsWorkingGroup.getId());
|
||||||
|
// 找到所有子集工作组 更新userId
|
||||||
|
List<LawsWorkingGroup> subset = this.getSubset(old.getId());
|
||||||
|
subset.forEach(item -> item.setUserId(lawsWorkingGroup.getUserId()));
|
||||||
|
saveOrUpdateBatch(subset);
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
lawsWorkingGroup.setUpdateTime(now);
|
lawsWorkingGroup.setUpdateTime(now);
|
||||||
saveOrUpdate(lawsWorkingGroup);
|
saveOrUpdate(lawsWorkingGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据父级id获取所有子集工作组
|
||||||
|
*
|
||||||
|
* @param pId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private List<LawsWorkingGroup> getSubset(String pId) {
|
||||||
|
LambdaQueryWrapper<LawsWorkingGroup> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(LawsWorkingGroup::getPid, pId);
|
||||||
|
return list(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
*
|
*
|
||||||
@@ -129,6 +163,7 @@ public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMap
|
|||||||
List<LawsWorkingGroup> LawsWorkingGroups = new ArrayList<>(nodesSet);
|
List<LawsWorkingGroup> LawsWorkingGroups = new ArrayList<>(nodesSet);
|
||||||
return this.convertToTree(LawsWorkingGroups);
|
return this.convertToTree(LawsWorkingGroups);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<LawsWorkingGroup> findPathToRoot(List<LawsWorkingGroup> list, LawsWorkingGroup node) {
|
private Set<LawsWorkingGroup> findPathToRoot(List<LawsWorkingGroup> list, LawsWorkingGroup node) {
|
||||||
Set<LawsWorkingGroup> pathNodes = new HashSet<>();
|
Set<LawsWorkingGroup> pathNodes = new HashSet<>();
|
||||||
LawsWorkingGroup currentHolder = node;
|
LawsWorkingGroup currentHolder = node;
|
||||||
@@ -141,6 +176,7 @@ public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMap
|
|||||||
}
|
}
|
||||||
return pathNodes;
|
return pathNodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<LawsWorkingGroup> findAllChildren(List<LawsWorkingGroup> list, LawsWorkingGroup node) {
|
private Set<LawsWorkingGroup> findAllChildren(List<LawsWorkingGroup> list, LawsWorkingGroup node) {
|
||||||
Set<LawsWorkingGroup> childrenSet = new HashSet<>();
|
Set<LawsWorkingGroup> childrenSet = new HashSet<>();
|
||||||
List<LawsWorkingGroup> directChildren = list.stream().filter(n -> n.getPid().equals(node.getId())).collect(Collectors.toList());
|
List<LawsWorkingGroup> directChildren = list.stream().filter(n -> n.getPid().equals(node.getId())).collect(Collectors.toList());
|
||||||
@@ -167,6 +203,7 @@ public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMap
|
|||||||
}
|
}
|
||||||
return treeList;
|
return treeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addChildGroups(LawsWorkingGroup parentGroup, List<LawsWorkingGroup> list, List<SysUser> listSysUser) {
|
private void addChildGroups(LawsWorkingGroup parentGroup, List<LawsWorkingGroup> list, List<SysUser> listSysUser) {
|
||||||
List<LawsWorkingGroup> childGroups = new ArrayList<>();
|
List<LawsWorkingGroup> childGroups = new ArrayList<>();
|
||||||
for (LawsWorkingGroup group : list) {
|
for (LawsWorkingGroup group : list) {
|
||||||
@@ -204,6 +241,7 @@ public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMap
|
|||||||
addChildGroupsById(root, list);
|
addChildGroupsById(root, list);
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addChildGroupsById(LawsWorkingGroup parentGroup, List<LawsWorkingGroup> list) {
|
private void addChildGroupsById(LawsWorkingGroup parentGroup, List<LawsWorkingGroup> list) {
|
||||||
List<LawsWorkingGroup> childGroups = new ArrayList<>();
|
List<LawsWorkingGroup> childGroups = new ArrayList<>();
|
||||||
for (LawsWorkingGroup group : list) {
|
for (LawsWorkingGroup group : list) {
|
||||||
|
|||||||
Reference in New Issue
Block a user