//获取用户id String userId = UserAgent.get().getUserId(); //根据id拿到用户组织 Map<String, UserEo> userMapByUid = comDataComponent.getUserMapByUid(); String orgCode = userMapByUid.get(userId).getOrgCode(); //所有的行权限 列权限 List<SchemaRowRuleEo> schemaRowRuleList = comDataComponent.getSchemaRowRuleList(); List<SchemaColumnRuleEo> schemaColumnRuleList = comDataComponent.getSchemaColumnRuleList(); List<SchemaRowRule> userRowRuleList = new ArrayList<>(); //设置行权限 根据用户id和用户组织去获取 for (SchemaRowRuleEo schemaRowRuleEo : schemaRowRuleList) { SchemaRowRule schemaRowRule = SchemaRowRule.builder().build(); DataPermissionSchema build = DataPermissionSchema.builder().schemaCode(schemaRowRuleEo.getSchemaCode()).databaseCode(schemaRowRuleEo.getDatabaseCode()).build(); if(StringUtils.isNotEmpty(schemaRowRuleEo.getRowPermissionUserList())){ List<String> userlist = JSONArray.parseArray(schemaRowRuleEo.getRowPermissionUserList(), String.class); if(userlist.contains(userId)){ BeanUtils.copyProperties(schemaRowRuleEo,schemaRowRule); userRowRuleList.add(schemaRowRule); } }else if(StringUtils.isNotEmpty(schemaRowRuleEo.getRowPermissionOrgList())){ List<String> orglist = JSONArray.parseArray(schemaRowRuleEo.getRowPermissionOrgList(), String.class); if(orglist.contains(orgCode)){ BeanUtils.copyProperties(schemaRowRuleEo,schemaRowRule); userRowRuleList.add(schemaRowRule); } } build.setSchemaRowRuleList(userRowRuleList); }优化代码
时间: 2023-12-08 22:03:14 浏览: 130
JLWCE.rar_Linux/Unix编程_C#_
可以将以下部分代码进行优化:
```
if(userlist.contains(userId)){
BeanUtils.copyProperties(schemaRowRuleEo,schemaRowRule);
userRowRuleList.add(schemaRowRule);
}else if(orglist.contains(orgCode)){
BeanUtils.copyProperties(schemaRowRuleEo,schemaRowRule);
userRowRuleList.add(schemaRowRule);
}
```
可以改成:
```
if(userlist.contains(userId) || orglist.contains(orgCode)){
BeanUtils.copyProperties(schemaRowRuleEo,schemaRowRule);
userRowRuleList.add(schemaRowRule);
}
```
这样可以减少代码重复度,提高代码可读性。另外,需要注意的是,`DataPermissionSchema` 对象的 `schemaRowRuleList` 属性应该在循环结束后再进行设置。可以将 `build.setSchemaRowRuleList(userRowRuleList);` 移动到循环结束后。
阅读全文