sunyize hace 2 años
padre
commit
d590c8d5e0

+ 38 - 0
tnc-system/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -28,6 +29,8 @@ import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static net.sf.jsqlparser.util.validation.metadata.NamedObject.role;
+
 /**
  * <p>
  * 菜单权限表 前端控制器
@@ -41,6 +44,13 @@ import java.util.stream.Collectors;
 @RequestMapping("/sys/permission")
 public class SysPermissionController {
 
+	//本部门及以下  sys_org_code like'#{sys_org_code}%'  sys_permission_data_rule
+	private static String powerOrg="sysPowerOrg";
+	// 只看自己
+	private static String powerCreateBy="sysPowerCreateBy";
+	//只看本部门
+	private static String powerThisOrg="sysPowerThisOrg";
+
 	@Autowired
 	private ISysPermissionService sysPermissionService;
 
@@ -65,6 +75,8 @@ public class SysPermissionController {
 	@Autowired
 	private ISysRoleIndexService sysRoleIndexService;
 
+	@Autowired
+	private ISysRoleService iSysRoleService;
 	/**
 	 * 加载数据节点
 	 *
@@ -487,6 +499,32 @@ public class SysPermissionController {
 			String permissionIds = json.getString("permissionIds");
 			String lastPermissionIds = json.getString("lastpermissionIds");
 			this.sysRolePermissionService.saveRolePermission(roleId, permissionIds, lastPermissionIds);
+
+			//  {"id":1,"name":"只查看自己"},
+			//  {"id":2,"name":"查看下级数据"}
+			//  {"id":3,"name":"只查看本部门"}
+			//根据 role_id 更新data_rule_ids       sys_role_permission
+			// 根据角色ID 查找角色
+			SysRole byId = iSysRoleService.getById(roleId);
+			String join ="";
+			if (StringUtils.isNotBlank(byId.getPower())&&byId.getPower().equals("1")){
+				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerCreateBy);
+				join = sysPermissions.get(0).getId();
+			}
+			if (StringUtils.isNotBlank(byId.getPower())&&byId.getPower().equals("2")){
+				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerOrg);
+				join =  sysPermissions.get(0).getId();
+			}
+			if (StringUtils.isNotBlank(byId.getPower())&&byId.getPower().equals("3")){
+				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerThisOrg);
+				join =  sysPermissions.get(0).getId();
+			}
+			if (StringUtils.isNotBlank(join)){
+				UpdateWrapper<SysRolePermission> updateWrapper = new UpdateWrapper<>();
+				updateWrapper.eq("role_id",roleId).set("data_rule_ids",join);
+				sysRolePermissionService.update(updateWrapper);
+			}
+
 			//update-begin---author:wangshuai ---date:20220316  for:[VUEN-234]用户管理角色授权添加敏感日志------------
             LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 			baseCommonService.addLog("修改角色ID: "+roleId+" 的权限配置,操作人: " +loginUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2);

+ 37 - 1
tnc-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java

@@ -9,6 +9,8 @@ import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresRoles;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CacheConstant;
@@ -76,7 +78,12 @@ public class SysRoleController {
 	
 	@Autowired
 	private ISysPermissionService sysPermissionService;
-
+	//本部门及以下  sys_org_code like'#{sys_org_code}%'  sys_permission_data_rule
+	private static String powerOrg="sysPowerOrg";
+	// 只看自己
+	private static String powerCreateBy="sysPowerCreateBy";
+	//只看本部门
+	private static String powerThisOrg="sysPowerThisOrg";
 	/**
 	  * 分页列表查询
 	 * @param role
@@ -119,6 +126,10 @@ public class SysRoleController {
 				randomString.append(characters.charAt(randomIndex));
 			}
 			role.setRoleCode(randomString.toString());//随机生成code
+			//默认查自己
+			if (StringUtils.isBlank(role.getPower())){
+				role.setPower("1");
+			}
 			sysRoleService.save(role);
 			result.success("添加成功!");
 		} catch (Exception e) {
@@ -143,6 +154,31 @@ public class SysRoleController {
 		}else {
 			role.setUpdateTime(new Date());
 			boolean ok = sysRoleService.updateById(role);
+
+			//  {"id":1,"name":"只查看自己"},
+			//  {"id":2,"name":"查看下级数据"}
+			//  {"id":3,"name":"只查看本部门"}
+			//根据 role_id 更新data_rule_ids       sys_role_permission
+			// 根据角色ID 查找角色
+			String join ="";
+			if (StringUtils.isNotBlank(role.getPower())&&role.getPower().equals("1")){
+				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerCreateBy);
+				join = sysPermissions.get(0).getId();
+			}
+			if (StringUtils.isNotBlank(role.getPower())&&role.getPower().equals("2")){
+				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerOrg);
+				join =  sysPermissions.get(0).getId();
+			}
+			if (StringUtils.isNotBlank(role.getPower())&&role.getPower().equals("3")){
+				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerThisOrg);
+				join =  sysPermissions.get(0).getId();
+			}
+			if (StringUtils.isNotBlank(join)){
+				UpdateWrapper<SysRolePermission> updateWrapper = new UpdateWrapper<>();
+				updateWrapper.eq("role_id",role.getId()).set("data_rule_ids",join);
+				sysRolePermissionService.update(updateWrapper);
+			}
+
 			//TODO 返回false说明什么?
 			if(ok) {
 				result.success("修改成功!");

+ 1 - 1
tnc-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -102,7 +102,7 @@ public class SysUserController {
      * @param req
      * @return
      */
-    @PermissionData(pageComponent = "system/UserList")
+    //@PermissionData(pageComponent = "system/UserList")
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
 	public Result<IPage<SysUser>> queryPageList(SysUser user,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {

+ 4 - 0
tnc-system/src/main/java/org/jeecg/modules/system/entity/SysRole.java

@@ -79,4 +79,8 @@ public class SysRole implements Serializable {
     private Date updateTime;
 
 
+    /**
+     * 数据查询规则
+     */
+    private String power;
 }

+ 4 - 1
tnc-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java

@@ -25,7 +25,10 @@ public interface SysPermissionMapper extends BaseMapper<SysPermission> {
 	 * @return
 	 */
 	public List<TreeModel> queryListByParentId(@Param("parentId") String parentId);
-	
+
+	@Select("SELECT * FROM sys_permission_data_rule WHERE status=1 and     rule_name=#{name} ")
+	public List<SysPermission> queryListSysPermission(@Param("name") String name);
+
 	/**
 	 * 根据用户查询用户权限
      * @param username 用户账户名称

+ 3 - 1
tnc-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java

@@ -25,7 +25,9 @@ public interface ISysPermissionService extends IService<SysPermission> {
      * @return
      */
 	public List<TreeModel> queryListByParentId(String parentId);
-	
+
+	List<SysPermission> queryListByPermissionName(String name);
+
 	/**
      * 真实删除
      * @param id 菜单id

+ 8 - 0
tnc-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java

@@ -40,6 +40,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, SysPermission> implements ISysPermissionService {
 
+
+
 	@Resource
 	private SysPermissionMapper sysPermissionMapper;
 	
@@ -60,6 +62,12 @@ public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, S
 		return sysPermissionMapper.queryListByParentId(parentId);
 	}
 
+
+	@Override
+	public List<SysPermission> queryListByPermissionName(String name) {
+		return sysPermissionMapper.queryListSysPermission(name);
+	}
+
 	/**
 	  * 真实删除
 	 */