提交 ba57e004 编写于 作者: laizhilong's avatar laizhilong

权限树添加根节点“系统”,去掉“数据范围”所处的节点

上级 d6a23c76
...@@ -188,7 +188,7 @@ ...@@ -188,7 +188,7 @@
// 获取选中状态的节点 // 获取选中状态的节点
const arr = CDtree.getCheckedNodes().concat(QXtree.getCheckedNodes()); const arr = CDtree.getCheckedNodes().concat(QXtree.getCheckedNodes());
this.selectData = arr; this.selectData = arr;
console.log("选中的node:" + arr); // console.log("选中的node:" + arr);
} }
/** /**
......
...@@ -255,8 +255,28 @@ public class UAACoreService { ...@@ -255,8 +255,28 @@ public class UAACoreService {
permissionsSql.append(" INNER JOIN IBZPSDEOPPRIV t1 ON t.SYS_PERMISSIONID = t1.SYS_PSDEOPPRIVID"); permissionsSql.append(" INNER JOIN IBZPSDEOPPRIV t1 ON t.SYS_PERMISSIONID = t1.SYS_PSDEOPPRIVID");
List<JSONObject> permissions = isys_permissionService.select(permissionsSql.toString(),null); List<JSONObject> permissions = isys_permissionService.select(permissionsSql.toString(),null);
// 清空sql,获取权限所处系统
permissionsSql.delete(0,permissionsSql.length());
permissionsSql.append("select temp.systemid from ( ");
permissionsSql.append(" select ");
permissionsSql.append(" t.SYS_PERMISSIONID as sys_permissionid, ");
permissionsSql.append(" t.SYS_PERMISSIONNAME as sys_permissionname, ");
permissionsSql.append(" t1.PSSYSMODULEID as pssysmoduleid, ");
permissionsSql.append(" t1.PSSYSMODULENAME as pssysmodulename, ");
permissionsSql.append(" t1.PSDATAENTITYID as psdataentityid, ");
permissionsSql.append(" t1.PSDATAENTITYNAME as psdataentityname, ");
permissionsSql.append(" t1.Pssourceid as pssourceid, ");
permissionsSql.append(" t1.Pssourcename as pssourcename,");
permissionsSql.append(" t1.PSDEDATARANGEID as psdedatarangeid, ");
permissionsSql.append(" t1.PSDEDATARANGENAME as psdedatarangename,");
permissionsSql.append(" t1.PSSYSTEMID as systemid ");
permissionsSql.append(" FROM IBZPERMISSION t");
permissionsSql.append(" INNER JOIN IBZPSDEOPPRIV t1 ON t.SYS_PERMISSIONID = t1.SYS_PSDEOPPRIVID");
permissionsSql.append(" )temp group by temp.SYSTEMID");
List<JSONObject> systems = isys_permissionService.select(permissionsSql.toString(),null);
if (permissions.size() > 0) { if (permissions.size() > 0) {
treeNode = this.transferDataCapabilityToELTree(permissions); treeNode = this.transferDataCapabilityToELTree(permissions,systems);
} }
return treeNode; return treeNode;
...@@ -267,49 +287,55 @@ public class UAACoreService { ...@@ -267,49 +287,55 @@ public class UAACoreService {
* 用于将资源表中数据能力数据转换成饿了么树格式数据 * 用于将资源表中数据能力数据转换成饿了么树格式数据
* *
* @param deCapabilityDatas * @param deCapabilityDatas
* @param systems
* @return * @return
*/ */
public JSONArray transferDataCapabilityToELTree(List<JSONObject> deCapabilityDatas) { public JSONArray transferDataCapabilityToELTree(List<JSONObject> deCapabilityDatas,List<JSONObject> systems) {
Map<String, String> opprivTreeNameMap = new HashMap<>(); Map<String, String> opprivTreeNameMap = new HashMap<>();
JSONObject groupByMenuObj = groupByDataCapability(deCapabilityDatas, opprivTreeNameMap);//将数据库数据进行分组 JSONObject groupByMenuObj = groupByDataCapability(deCapabilityDatas, systems, opprivTreeNameMap);//将数据库数据进行分组
JSONArray elTreeObj = transferDataCapabilityToELTree(groupByMenuObj, opprivTreeNameMap);//将分组后的数据转换成饿了么树格式数据 JSONArray elTreeObj = transferDataCapabilityToELTree(groupByMenuObj, opprivTreeNameMap);//将分组后的数据转换成饿了么树格式数据
return elTreeObj; return elTreeObj;
} }
/** /**
* 将数据库中的数据能力数据进行分组 * 将数据库中的数据能力数据进行分组
* * 格式为:系统-模块-实体-数据集/实体行为-数据能力
* @param deCapabilityDatas * @param deCapabilityDatas
* @param systems
* @return * @return
*/ */
private JSONObject groupByDataCapability(List<JSONObject> deCapabilityDatas, Map<String, String> opprivTreeNameMap) { private JSONObject groupByDataCapability(List<JSONObject> deCapabilityDatas, List<JSONObject> systems, Map<String, String> opprivTreeNameMap) {
JSONObject root_system = new JSONObject(); //顶级系统数据 JSONObject permission_system = new JSONObject(); //顶级系统数据
for (JSONObject system : systems) {
String systemid = system.getString("systemid");
JSONObject permission_moudle = new JSONObject(); //次级模块数据 JSONObject permission_moudle = new JSONObject(); //次级模块数据
for (JSONObject obj : deCapabilityDatas) { for (JSONObject obj : deCapabilityDatas) {
JSONObject jobj = new JSONObject(); JSONObject jobj = new JSONObject();
jobj.putAll(obj); jobj.putAll(obj);
String str_systemid = jobj.getString("systemid"); String str_systemid = jobj.getString("systemid");// 系统标识
String str_moudle = jobj.getString("pssysmoduleid");// 系统模块标识
String str_moudle = jobj.getString("pssysmoduleid"); String str_moudle_name = jobj.getString("pssysmodulename");// 系统模块名称
String str_moudle_name = jobj.getString("pssysmodulename"); String str_entity = jobj.getString("psdataentityid");// 实体标识
String str_entity = jobj.getString("psdataentityid"); String str_entity_name = jobj.getString("psdataentityname");// 实体名称
String str_entity_name = jobj.getString("psdataentityname"); String str_dataset = jobj.getString("pssourceid");// 数据集,实体行为标识
String str_dataset = jobj.getString("pssourceid"); String str_dataset_name = jobj.getString("pssourcename");// 数据集,实体行为名称
String str_dataset_name = jobj.getString("pssourcename"); String str_datarange = jobj.getString("psdedatarangeid");// 实体数据范围标识
String str_datarange = jobj.getString("psdedatarangeid"); String str_datarange_name = jobj.getString("psdedatarangename");// 实体数据范围名称
String str_datarange_name = jobj.getString("psdedatarangename"); String str_permissionid = jobj.getString("sys_permissionid");// 实体数据操作名称
String str_permissionname = jobj.getString("sys_permissionname"); String str_permissionname = jobj.getString("sys_permissionname");// 实体数据操作标识
String str_permissionid = jobj.getString("sys_permissionid");
// 根据systemid进行操作
if (systemid.equals(str_systemid)){
JSONObject cur_system = new JSONObject(); JSONObject cur_system = new JSONObject();
JSONObject cur_moudle = new JSONObject(); JSONObject cur_moudle = new JSONObject();
JSONObject cur_entity = new JSONObject(); JSONObject cur_entity = new JSONObject();
JSONObject cur_dataset = new JSONObject(); // JSONObject cur_dataset = new JSONObject();
JSONArray cur_dataset = new JSONArray();
JSONArray cur_data_range = new JSONArray(); JSONArray cur_data_range = new JSONArray();
if (root_system.containsKey(str_systemid))// 系统合并 if (permission_system.containsKey(str_systemid))// 系统合并
cur_system = root_system.getJSONObject(str_systemid); cur_system = permission_system.getJSONObject(str_systemid);
if (permission_moudle.containsKey(str_moudle))//模块合并 if (permission_moudle.containsKey(str_moudle))//模块合并
cur_moudle = permission_moudle.getJSONObject(str_moudle); cur_moudle = permission_moudle.getJSONObject(str_moudle);
...@@ -317,47 +343,50 @@ public class UAACoreService { ...@@ -317,47 +343,50 @@ public class UAACoreService {
if (cur_moudle.containsKey(str_entity))//实体合并 if (cur_moudle.containsKey(str_entity))//实体合并
cur_entity = cur_moudle.getJSONObject(str_entity); cur_entity = cur_moudle.getJSONObject(str_entity);
if (cur_entity.containsKey(str_dataset))//数据集合并 if (cur_entity.containsKey(str_dataset))//数据集,实体行为合并
cur_dataset = cur_entity.getJSONObject(str_dataset); cur_dataset = cur_entity.getJSONArray(str_dataset);
if (cur_dataset.containsKey(str_datarange))//数据范围合并 // if (cur_dataset.containsKey(str_datarange))//数据范围合并
cur_data_range = cur_dataset.getJSONArray(str_datarange); // cur_data_range = cur_dataset.getJSONArray(str_datarange);
JSONObject permission = new JSONObject(); JSONObject permission = new JSONObject();
permission.put("id", str_permissionid); permission.put("id", str_permissionid);
permission.put("label", str_permissionname); permission.put("label", str_permissionname);
// cur_data_range.add(permission);
cur_data_range.add(permission); // cur_dataset.put(str_datarange, cur_data_range);
cur_dataset.add(permission);
cur_dataset.put(str_datarange, cur_data_range);
cur_entity.put(str_dataset, cur_dataset); cur_entity.put(str_dataset, cur_dataset);
cur_moudle.put(str_entity, cur_entity); cur_moudle.put(str_entity, cur_entity);
cur_system.put(str_moudle,cur_moudle);
permission_moudle.put(str_moudle, cur_moudle); permission_moudle.put(str_moudle, cur_moudle);
permission_system.put(str_systemid,cur_system);
//构造树节点名称集合 //构造树节点名称集合
if (!opprivTreeNameMap.containsKey(str_systemid)) { if (!opprivTreeNameMap.containsKey(str_systemid)) {// 系统
opprivTreeNameMap.put(str_systemid, "SYSTEM"); opprivTreeNameMap.put(str_systemid, str_systemid);
} }
if (!opprivTreeNameMap.containsKey(str_moudle)) { if (!opprivTreeNameMap.containsKey(str_moudle)) {// 模块
opprivTreeNameMap.put(str_moudle, str_moudle_name); opprivTreeNameMap.put(str_moudle, str_moudle_name);
} }
if (!opprivTreeNameMap.containsKey(str_entity)) { if (!opprivTreeNameMap.containsKey(str_entity)) {// 实体
opprivTreeNameMap.put(str_entity, str_entity_name); opprivTreeNameMap.put(str_entity, str_entity_name);
} }
if (!opprivTreeNameMap.containsKey(str_dataset)) { if (!opprivTreeNameMap.containsKey(str_dataset)) {// 数据集。实体行为
opprivTreeNameMap.put(str_dataset, str_dataset_name); opprivTreeNameMap.put(str_dataset, str_dataset_name);
} }
if (!opprivTreeNameMap.containsKey(str_datarange_name)) { // if (!opprivTreeNameMap.containsKey(str_datarange_name)) {// 数据范围
opprivTreeNameMap.put(str_datarange, str_datarange_name); // opprivTreeNameMap.put(str_datarange, str_datarange_name);
// }
} }
} }
}
return permission_moudle; // return permission_moudle;
return permission_system;
} }
/** /**
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册