This commit is contained in:
ls
2024-11-26 18:21:18 +08:00
parent 12fd3bb863
commit 5fcc8036cf

View File

@@ -1,6 +1,5 @@
package org.jeecg.modules.system.controller; package org.jeecg.modules.system.controller;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -20,6 +19,7 @@ import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.modules.redis.client.JeecgRedisClient; import org.jeecg.common.modules.redis.client.JeecgRedisClient;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.config.mybatis.MybatisPlusSaasConfig; import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
@@ -69,9 +69,9 @@ public class SysRoleController {
@Autowired @Autowired
private ISysUserRoleService sysUserRoleService; private ISysUserRoleService sysUserRoleService;
@Autowired @Autowired
private BaseCommonService baseCommonService; private BaseCommonService baseCommonService;
@Autowired @Autowired
private JeecgRedisClient jeecgRedisClient; private JeecgRedisClient jeecgRedisClient;
/** /**
* 分页列表查询 【系统角色,不做租户隔离】 * 分页列表查询 【系统角色,不做租户隔离】
@@ -89,12 +89,16 @@ public class SysRoleController {
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
Result<IPage<SysRole>> result = new Result<IPage<SysRole>>(); Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
//QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
//IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
Page<SysRole> page = new Page<SysRole>(pageNo, pageSize); Page<SysRole> page = new Page<SysRole>(pageNo, pageSize);
page.addOrder(OrderItem.desc("create_time")); page.addOrder(OrderItem.desc("create_time"));
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义duoXuan字段的查询规则为LIKE_WITH_OR
customeRuleMap.put("roleName", QueryRuleEnum.LIKE);
customeRuleMap.put("roleCode", QueryRuleEnum.LIKE);
QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap(), customeRuleMap);
IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
//换成不做租户隔离的方法,实际上还是存在缺陷(缺陷:如果开启租户隔离,虽然能看到其他租户下的角色,编辑会提示报错) //换成不做租户隔离的方法,实际上还是存在缺陷(缺陷:如果开启租户隔离,虽然能看到其他租户下的角色,编辑会提示报错)
IPage<SysRole> pageList = sysRoleService.listAllSysRole(page, role); //IPage<SysRole> pageList = sysRoleService.listAllSysRole(page, role);
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
return result; return result;
@@ -179,7 +183,8 @@ public class SysRoleController {
Integer tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0); Integer tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0);
String username = "admin"; String username = "admin";
if (!tenantId.equals(role.getTenantId()) && !username.equals(sysUser.getUsername())) { if (!tenantId.equals(role.getTenantId()) && !username.equals(sysUser.getUsername())) {
baseCommonService.addLog("未经授权修改非本租户下的角色ID" + role.getId() + ",操作人:" + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_3); baseCommonService.addLog("未经授权修改非本租户下的角色ID" + role.getId() + ",操作人:" + sysUser.getUsername(),
CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_3);
return Result.error("修改角色失败,当前角色不在此租户中。"); return Result.error("修改角色失败,当前角色不在此租户中。");
} }
} }
@@ -210,7 +215,8 @@ public class SysRoleController {
Long getRoleCount = sysRoleService.getRoleCountByTenantId(id, tenantId); Long getRoleCount = sysRoleService.getRoleCountByTenantId(id, tenantId);
String username = "admin"; String username = "admin";
if (getRoleCount == 0 && !username.equals(sysUser.getUsername())) { if (getRoleCount == 0 && !username.equals(sysUser.getUsername())) {
baseCommonService.addLog("未经授权删除非本租户下的角色ID" + id + ",操作人:" + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_4); baseCommonService.addLog("未经授权删除非本租户下的角色ID" + id + ",操作人:" + sysUser.getUsername(),
CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_4);
return Result.error("删除角色失败,删除角色不属于登录租户!"); return Result.error("删除角色失败,删除角色不属于登录租户!");
} }
} }
@@ -250,7 +256,8 @@ public class SysRoleController {
Long getRoleCount = sysRoleService.getRoleCountByTenantId(id, tenantId); Long getRoleCount = sysRoleService.getRoleCountByTenantId(id, tenantId);
//如果存在角色id为0即不存在则删除角色 //如果存在角色id为0即不存在则删除角色
if (getRoleCount == 0 && !username.equals(sysUser.getUsername())) { if (getRoleCount == 0 && !username.equals(sysUser.getUsername())) {
baseCommonService.addLog("未经授权删除非本租户下的角色ID" + id + ",操作人:" + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_4); baseCommonService.addLog("未经授权删除非本租户下的角色ID" + id + ",操作人:" + sysUser.getUsername(),
CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_4);
return Result.error("批量删除角色失败,存在角色不在此租户中,禁止批量删除"); return Result.error("批量删除角色失败,存在角色不在此租户中,禁止批量删除");
} }
} }
@@ -485,7 +492,6 @@ public class SysRoleController {
return Result.ok("保存成功!"); return Result.ok("保存成功!");
} }
/** /**
* 用户角色授权功能,查询菜单权限树 * 用户角色授权功能,查询菜单权限树
* *
@@ -523,7 +529,8 @@ public class SysRoleController {
private void getTreeModelList(List<TreeModel> treeList, List<SysPermission> metaList, TreeModel temp) { private void getTreeModelList(List<TreeModel> treeList, List<SysPermission> metaList, TreeModel temp) {
for (SysPermission permission : metaList) { for (SysPermission permission : metaList) {
String tempPid = permission.getParentId(); String tempPid = permission.getParentId();
TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(), permission.getRuleFlag(), permission.isLeaf()); TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(), permission.getRuleFlag(),
permission.isLeaf());
if (temp == null && oConvertUtils.isEmpty(tempPid)) { if (temp == null && oConvertUtils.isEmpty(tempPid)) {
treeList.add(tree); treeList.add(tree);
if (!tree.getIsLeaf()) { if (!tree.getIsLeaf()) {