Commit 9a462646 by 江和松

菜单APP端查询需要查询出树结构

parent 363c3378
...@@ -12,13 +12,7 @@ import com.baosight.iplat4j.core.ioc.spring.PlatApplicationContext; ...@@ -12,13 +12,7 @@ import com.baosight.iplat4j.core.ioc.spring.PlatApplicationContext;
import com.baosight.iplat4j.core.util.StringUtils; import com.baosight.iplat4j.core.util.StringUtils;
import com.baosight.xservices.xs.util.LoginUserDetails; import com.baosight.xservices.xs.util.LoginUserDetails;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -46,10 +40,10 @@ public class AuthenticationInfo { ...@@ -46,10 +40,10 @@ public class AuthenticationInfo {
private static final int DEFAULT_GROUP_THRESHOLD = 20; private static final int DEFAULT_GROUP_THRESHOLD = 20;
private static Map<String, String> param = null; private static Map<String, String> param = null;
private static final Logger logger = LogManager.getLogger(AuthenticationInfo.class); private static final Logger logger = LogManager.getLogger(AuthenticationInfo.class);
public AuthenticationInfo() { public AuthenticationInfo() {
} }
public static String getSubjectId(String subjectType, String subjectName) { public static String getSubjectId(String subjectType, String subjectName) {
String memberId = null; String memberId = null;
Map paramMap = new HashMap(); Map paramMap = new HashMap();
...@@ -69,7 +63,7 @@ public class AuthenticationInfo { ...@@ -69,7 +63,7 @@ public class AuthenticationInfo {
var9 = 0; var9 = 0;
} }
} }
switch(var9) { switch(var9) {
case 0: case 0:
subjectParam = "loginName"; subjectParam = "loginName";
...@@ -86,7 +80,7 @@ public class AuthenticationInfo { ...@@ -86,7 +80,7 @@ public class AuthenticationInfo {
resultParam = PlatApplicationContext.getProperty("xservices.security.subjectType." + subjectType + ".subjectIdParam"); resultParam = PlatApplicationContext.getProperty("xservices.security.subjectType." + subjectType + ".subjectIdParam");
checkSqlId = PlatApplicationContext.getProperty("xservices.security.subjectType." + subjectType + ".checkSqlId"); checkSqlId = PlatApplicationContext.getProperty("xservices.security.subjectType." + subjectType + ".checkSqlId");
} }
if (StringUtils.isNotEmpty(subjectParam) && StringUtils.isNotEmpty(resultParam) && StringUtils.isNotEmpty(checkSqlId)) { if (StringUtils.isNotEmpty(subjectParam) && StringUtils.isNotEmpty(resultParam) && StringUtils.isNotEmpty(checkSqlId)) {
paramMap.put(subjectParam, subjectName); paramMap.put(subjectParam, subjectName);
List members = getDao().query(checkSqlId, paramMap); List members = getDao().query(checkSqlId, paramMap);
...@@ -95,23 +89,23 @@ public class AuthenticationInfo { ...@@ -95,23 +89,23 @@ public class AuthenticationInfo {
} else { } else {
memberId = ((Map)members.get(0)).get(resultParam).toString(); memberId = ((Map)members.get(0)).get(resultParam).toString();
} }
return memberId; return memberId;
} else { } else {
throw new PlatException("当前授权类型主体配置缺失,请检查"); throw new PlatException("当前授权类型主体配置缺失,请检查");
} }
} }
public static Map<String, Object> getUserBelongToGroups(String loginName) { public static Map<String, Object> getUserBelongToGroups(String loginName) {
userBelongToGroups = CacheManager.getCache("iplat:security:subjectParentCache"); userBelongToGroups = CacheManager.getCache("iplat:security:subjectParentCache");
getUserBelongToGroupsList(loginName); getUserBelongToGroupsList(loginName);
return userBelongToGroups; return userBelongToGroups;
} }
public static List getUserBelongToGroupsList(String loginName) { public static List getUserBelongToGroupsList(String loginName) {
return getSubjectParentList("loginName", loginName, "XSAuthorization.queryUserGroupsByLoginName"); return getSubjectParentList("loginName", loginName, "XSAuthorization.queryUserGroupsByLoginName");
} }
private static List getSubjectParentList(String paramKey, String paramVal, String sqlId) { private static List getSubjectParentList(String paramKey, String paramVal, String sqlId) {
List result = (List)CacheManager.getCacheValue("iplat:security:subjectParentCache", paramVal, () -> { List result = (List)CacheManager.getCacheValue("iplat:security:subjectParentCache", paramVal, () -> {
param = new HashMap(); param = new HashMap();
...@@ -120,14 +114,14 @@ public class AuthenticationInfo { ...@@ -120,14 +114,14 @@ public class AuthenticationInfo {
}); });
return result; return result;
} }
public static Map<String, Object> getResourceBelongToGroups(String resourceEname) { public static Map<String, Object> getResourceBelongToGroups(String resourceEname) {
param = new HashMap(); param = new HashMap();
param.put("resourceEname", resourceEname); param.put("resourceEname", resourceEname);
getResultList("XSAuthorization.queryResourceGroupsByResourceEname", param, resourceBelongToGroups, resourceEname); getResultList("XSAuthorization.queryResourceGroupsByResourceEname", param, resourceBelongToGroups, resourceEname);
return resourceBelongToGroups; return resourceBelongToGroups;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getUserParentGroupsByGroupEname(String groupEname) { public static Map<String, Object> getUserParentGroupsByGroupEname(String groupEname) {
...@@ -136,20 +130,20 @@ public class AuthenticationInfo { ...@@ -136,20 +130,20 @@ public class AuthenticationInfo {
returnMap.put(groupEname, result); returnMap.put(groupEname, result);
return returnMap; return returnMap;
} }
public static List getUserParentGroupsByGroupEnameList(String groupEname) { public static List getUserParentGroupsByGroupEnameList(String groupEname) {
param = new HashMap(); param = new HashMap();
param.put("groupEname", groupEname); param.put("groupEname", groupEname);
return getResultList("XSAuthorization.queryUserParentGroups", param); return getResultList("XSAuthorization.queryUserParentGroups", param);
} }
public static Map<String, Object> getUserManagerGroups(String loginName) { public static Map<String, Object> getUserManagerGroups(String loginName) {
param = new HashMap(); param = new HashMap();
param.put("loginName", loginName); param.put("loginName", loginName);
getResultList("XSAuthorization.queryUserManagerGroups", param, userManagerGroups, loginName); getResultList("XSAuthorization.queryUserManagerGroups", param, userManagerGroups, loginName);
return userManagerGroups; return userManagerGroups;
} }
public static Map<String, Object> getUserManageAuthentication(String loginName) { public static Map<String, Object> getUserManageAuthentication(String loginName) {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
Map param = new HashMap(); Map param = new HashMap();
...@@ -160,7 +154,7 @@ public class AuthenticationInfo { ...@@ -160,7 +154,7 @@ public class AuthenticationInfo {
System.out.println("getUserManageAuthentication使用时间:" + (endTime - startTime) + "毫秒"); System.out.println("getUserManageAuthentication使用时间:" + (endTime - startTime) + "毫秒");
return userManageAuthentication; return userManageAuthentication;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getAuthenticationByParam(String subjectName, String subjectType) { public static Map<String, Object> getAuthenticationByParam(String subjectName, String subjectType) {
...@@ -172,10 +166,10 @@ public class AuthenticationInfo { ...@@ -172,10 +166,10 @@ public class AuthenticationInfo {
authenticationByParam.put(subjectName, result); authenticationByParam.put(subjectName, result);
resultMap = authenticationByParam; resultMap = authenticationByParam;
} }
return resultMap; return resultMap;
} }
public static List getAuthenticationByParamList(String subjectName, String subjectType) { public static List getAuthenticationByParamList(String subjectName, String subjectType) {
List resultList = null; List resultList = null;
if (subjectType.equals("USER")) { if (subjectType.equals("USER")) {
...@@ -198,19 +192,19 @@ public class AuthenticationInfo { ...@@ -198,19 +192,19 @@ public class AuthenticationInfo {
result.addAll(list); result.addAll(list);
} }
} }
if (null != subjectList && subjectList.size() > 0) { if (null != subjectList && subjectList.size() > 0) {
subjectId = ((Map)subjectList.get(0)).get("groupId").toString(); subjectId = ((Map)subjectList.get(0)).get("groupId").toString();
} }
List list = getCachedSubjectAuthList(subjectId, subjectName); List list = getCachedSubjectAuthList(subjectId, subjectName);
result.addAll(list); result.addAll(list);
resultList = result; resultList = result;
} }
return (List)resultList; return (List)resultList;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getOldAuthenticationByParam(String subjectName, String subjectType) { public static Map<String, Object> getOldAuthenticationByParam(String subjectName, String subjectType) {
...@@ -245,7 +239,7 @@ public class AuthenticationInfo { ...@@ -245,7 +239,7 @@ public class AuthenticationInfo {
paramMap.put(paramKey, subjectName); paramMap.put(paramKey, subjectName);
subjectList = getDao().query("XSResourceManage.queryResourceGroup", paramMap); subjectList = getDao().query("XSResourceManage.queryResourceGroup", paramMap);
} }
if (null != parentGroupList && parentGroupList.size() > 0) { if (null != parentGroupList && parentGroupList.size() > 0) {
for(int i = 0; i < parentGroupList.size(); ++i) { for(int i = 0; i < parentGroupList.size(); ++i) {
Map map = new HashMap(); Map map = new HashMap();
...@@ -254,11 +248,11 @@ public class AuthenticationInfo { ...@@ -254,11 +248,11 @@ public class AuthenticationInfo {
result.addAll(list); result.addAll(list);
} }
} }
if (null != subjectList && subjectList.size() > 0) { if (null != subjectList && subjectList.size() > 0) {
subjectId = ((Map)subjectList.get(0)).get(subjectKey).toString(); subjectId = ((Map)subjectList.get(0)).get(subjectKey).toString();
} }
Map map = new HashMap(); Map map = new HashMap();
map.put("subjectId", subjectId); map.put("subjectId", subjectId);
List list = getResultList("XSAuthorization.queryRecursiveResourceAuthzBySubjectId", map); List list = getResultList("XSAuthorization.queryRecursiveResourceAuthzBySubjectId", map);
...@@ -268,7 +262,7 @@ public class AuthenticationInfo { ...@@ -268,7 +262,7 @@ public class AuthenticationInfo {
return retMap; return retMap;
} }
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getUserAuthentication(String loginName) { public static Map<String, Object> getUserAuthentication(String loginName) {
...@@ -276,11 +270,11 @@ public class AuthenticationInfo { ...@@ -276,11 +270,11 @@ public class AuthenticationInfo {
userAuthentication.put(loginName, result); userAuthentication.put(loginName, result);
return userAuthentication; return userAuthentication;
} }
public static List getUserAuthenticationList(String loginName) { public static List getUserAuthenticationList(String loginName) {
return getSubjectAuthenticationList(loginName, "USER"); return getSubjectAuthenticationList(loginName, "USER");
} }
public static List getSubjectAuthenticationList(String subjectName, String subjectType) { public static List getSubjectAuthenticationList(String subjectName, String subjectType) {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
...@@ -313,7 +307,7 @@ public class AuthenticationInfo { ...@@ -313,7 +307,7 @@ public class AuthenticationInfo {
String parentGroupSqlId = PlatApplicationContext.getProperty("xservices.security.subjectType." + subjectType + ".parentGroupSqlId"); String parentGroupSqlId = PlatApplicationContext.getProperty("xservices.security.subjectType." + subjectType + ".parentGroupSqlId");
userGroupsList = getSubjectParentList(subjectParam, subjectName, parentGroupSqlId); userGroupsList = getSubjectParentList(subjectParam, subjectName, parentGroupSqlId);
} }
long endTime1 = System.currentTimeMillis(); long endTime1 = System.currentTimeMillis();
long executionTime1 = endTime1 - startTime1; long executionTime1 = endTime1 - startTime1;
logger.info("getUserAuthenticationList:List userGroupsList = getUserBelongToGroupsList(loginName);Time:" + executionTime1); logger.info("getUserAuthenticationList:List userGroupsList = getUserBelongToGroupsList(loginName);Time:" + executionTime1);
...@@ -326,7 +320,7 @@ public class AuthenticationInfo { ...@@ -326,7 +320,7 @@ public class AuthenticationInfo {
} catch (NumberFormatException | NullPointerException var41) { } catch (NumberFormatException | NullPointerException var41) {
groupThreshold = 20; groupThreshold = 20;
} }
List groupListAuthList; List groupListAuthList;
if (userGroupsList.size() > groupThreshold) { if (userGroupsList.size() > groupThreshold) {
List paramUserGroupList = new ArrayList(userGroupsList); List paramUserGroupList = new ArrayList(userGroupsList);
...@@ -336,10 +330,10 @@ public class AuthenticationInfo { ...@@ -336,10 +330,10 @@ public class AuthenticationInfo {
} else { } else {
groupListAuthList = getGroupListAuthList(userGroupsList); groupListAuthList = getGroupListAuthList(userGroupsList);
} }
result.addAll(groupListAuthList); result.addAll(groupListAuthList);
} }
long endTime3 = System.currentTimeMillis(); long endTime3 = System.currentTimeMillis();
long executionTime3 = endTime3 - startTime3; long executionTime3 = endTime3 - startTime3;
logger.info("getUserAuthenticationList:groupListAuthList = getGroupListAuthList(userGroupsList);Time:" + executionTime3); logger.info("getUserAuthenticationList:groupListAuthList = getGroupListAuthList(userGroupsList);Time:" + executionTime3);
...@@ -349,29 +343,29 @@ public class AuthenticationInfo { ...@@ -349,29 +343,29 @@ public class AuthenticationInfo {
long endTime4 = System.currentTimeMillis(); long endTime4 = System.currentTimeMillis();
long executionTime4 = endTime4 - startTime3; long executionTime4 = endTime4 - startTime3;
logger.info("getUserAuthenticationList:List list = getCachedSubjectAuthList(userId, loginName);Time:" + executionTime4); logger.info("getUserAuthenticationList:List list = getCachedSubjectAuthList(userId, loginName);Time:" + executionTime4);
for(int k = 0; k < result.size(); ++k) { for(int k = 0; k < result.size(); ++k) {
Map resultMap = (Map)result.get(k); Map resultMap = (Map)result.get(k);
resultMap.put(resultParam, subjectId); resultMap.put(resultParam, subjectId);
} }
long endTime5 = System.currentTimeMillis(); long endTime5 = System.currentTimeMillis();
long executionTime5 = endTime5 - startTime; long executionTime5 = endTime5 - startTime;
logger.info("getUserAuthenticationList:TotalTime:" + executionTime5); logger.info("getUserAuthenticationList:TotalTime:" + executionTime5);
return result; return result;
} }
} }
private static List getGroupListAuthList(List userGroupsList) { private static List getGroupListAuthList(List userGroupsList) {
Set resultGroupIds = new HashSet(); Set resultGroupIds = new HashSet();
List resultGroups = new ArrayList(); List resultGroups = new ArrayList();
for(int i = 0; i < userGroupsList.size(); ++i) { for(int i = 0; i < userGroupsList.size(); ++i) {
String subjectId = (String)((Map)userGroupsList.get(i)).get("groupId"); String subjectId = (String)((Map)userGroupsList.get(i)).get("groupId");
String groupEname = (String)((Map)userGroupsList.get(i)).get("groupEname"); String groupEname = (String)((Map)userGroupsList.get(i)).get("groupEname");
List list = getCachedSubjectAuthList(subjectId, groupEname); List list = getCachedSubjectAuthList(subjectId, groupEname);
Iterator var7 = list.iterator(); Iterator var7 = list.iterator();
while(var7.hasNext()) { while(var7.hasNext()) {
Object cacheVal = var7.next(); Object cacheVal = var7.next();
if (cacheVal instanceof Map) { if (cacheVal instanceof Map) {
...@@ -386,11 +380,11 @@ public class AuthenticationInfo { ...@@ -386,11 +380,11 @@ public class AuthenticationInfo {
} }
} }
} }
resultGroupIds.clear(); resultGroupIds.clear();
return resultGroups; return resultGroups;
} }
private static List getCachedSubjectAuthList(String subjectId, String subjectEname) { private static List getCachedSubjectAuthList(String subjectId, String subjectEname) {
List list = (List)CacheManager.getCacheValue("iplat:security:subjectCache", subjectEname, () -> { List list = (List)CacheManager.getCacheValue("iplat:security:subjectCache", subjectEname, () -> {
Map map = new HashMap(); Map map = new HashMap();
...@@ -399,7 +393,7 @@ public class AuthenticationInfo { ...@@ -399,7 +393,7 @@ public class AuthenticationInfo {
}); });
return list; return list;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getOldUserAuthentication(String loginName) { public static Map<String, Object> getOldUserAuthentication(String loginName) {
...@@ -415,22 +409,22 @@ public class AuthenticationInfo { ...@@ -415,22 +409,22 @@ public class AuthenticationInfo {
result.addAll(list); result.addAll(list);
} }
} }
Map map = new HashMap(); Map map = new HashMap();
map.put("subjectId", userDetails.get("userId")); map.put("subjectId", userDetails.get("userId"));
List list = getResultList("XSAuthorization.queryRecursiveResourceAuthzBySubjectId", map); List list = getResultList("XSAuthorization.queryRecursiveResourceAuthzBySubjectId", map);
for(int k = 0; k < result.size(); ++k) { for(int k = 0; k < result.size(); ++k) {
Map resultMap = (Map)list.get(k); Map resultMap = (Map)list.get(k);
resultMap.put("userId", userDetails.get("userId")); resultMap.put("userId", userDetails.get("userId"));
} }
result.addAll(list); result.addAll(list);
Map retMap = new HashMap(); Map retMap = new HashMap();
retMap.put(loginName, result); retMap.put(loginName, result);
return retMap; return retMap;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getUserAuthenticationOfResource(String loginName) { public static Map<String, Object> getUserAuthenticationOfResource(String loginName) {
...@@ -438,7 +432,7 @@ public class AuthenticationInfo { ...@@ -438,7 +432,7 @@ public class AuthenticationInfo {
userAuthenticationOfResource.put(loginName, result); userAuthenticationOfResource.put(loginName, result);
return userAuthenticationOfResource; return userAuthenticationOfResource;
} }
public static List getUserAuthenticationOfResourceList(String loginName) { public static List getUserAuthenticationOfResourceList(String loginName) {
Map<String, Object> userBelongToGroups = getUserBelongToGroups(loginName); Map<String, Object> userBelongToGroups = getUserBelongToGroups(loginName);
List userGroupsList = (List)userBelongToGroups.get(loginName); List userGroupsList = (List)userBelongToGroups.get(loginName);
...@@ -455,11 +449,11 @@ public class AuthenticationInfo { ...@@ -455,11 +449,11 @@ public class AuthenticationInfo {
filterAuthResourceList(result, resEnameSet, list); filterAuthResourceList(result, resEnameSet, list);
} }
} }
sortResorceList(result); sortResorceList(result);
return result; return result;
} }
private static void sortResorceList(List<Map> result) { private static void sortResorceList(List<Map> result) {
result.sort((map1, map2) -> { result.sort((map1, map2) -> {
String key1 = map1.get("resourceEname").toString() + map1.get("operationType").toString(); String key1 = map1.get("resourceEname").toString() + map1.get("operationType").toString();
...@@ -467,10 +461,10 @@ public class AuthenticationInfo { ...@@ -467,10 +461,10 @@ public class AuthenticationInfo {
return key1.compareTo(key2); return key1.compareTo(key2);
}); });
} }
private static void filterAuthResourceList(List result, Set<String> resEnameSet, List list) { private static void filterAuthResourceList(List result, Set<String> resEnameSet, List list) {
Iterator var3 = list.iterator(); Iterator var3 = list.iterator();
while(var3.hasNext()) { while(var3.hasNext()) {
Object resultObj = var3.next(); Object resultObj = var3.next();
String resEname = (String)((Map)resultObj).get("resourceEname"); String resEname = (String)((Map)resultObj).get("resourceEname");
...@@ -481,9 +475,9 @@ public class AuthenticationInfo { ...@@ -481,9 +475,9 @@ public class AuthenticationInfo {
resEnameSet.add(key); resEnameSet.add(key);
} }
} }
} }
private static List<Map> clearButtonOfResource(List<Map> list) { private static List<Map> clearButtonOfResource(List<Map> list) {
List<Map> result = new ArrayList(); List<Map> result = new ArrayList();
if (null != list && list.size() > 0) { if (null != list && list.size() > 0) {
...@@ -494,10 +488,10 @@ public class AuthenticationInfo { ...@@ -494,10 +488,10 @@ public class AuthenticationInfo {
} }
} }
} }
return result; return result;
} }
private static List getCachedSubjectResList(String subjectId, String subjectEname) { private static List getCachedSubjectResList(String subjectId, String subjectEname) {
List<Map> list = (List)CacheManager.getCacheValue("iplat:security:subjectResourceCache", subjectEname, () -> { List<Map> list = (List)CacheManager.getCacheValue("iplat:security:subjectResourceCache", subjectEname, () -> {
Map map = new HashMap(); Map map = new HashMap();
...@@ -508,7 +502,7 @@ public class AuthenticationInfo { ...@@ -508,7 +502,7 @@ public class AuthenticationInfo {
List newList2 = (List)Stream.concat(list.stream(), listUnAuthed.stream()).collect(Collectors.toList()); List newList2 = (List)Stream.concat(list.stream(), listUnAuthed.stream()).collect(Collectors.toList());
return newList2; return newList2;
} }
public static List getAllUnAuthPageButt() { public static List getAllUnAuthPageButt() {
List<Map> list = (List)CacheManager.getCacheValue("iplat:security:unAuthPageButtCache", "unAuthPageButtCache", () -> { List<Map> list = (List)CacheManager.getCacheValue("iplat:security:unAuthPageButtCache", "unAuthPageButtCache", () -> {
List resultList = getResultList("XSAuthorization.queryAllUnAuthPageButt", new HashMap()); List resultList = getResultList("XSAuthorization.queryAllUnAuthPageButt", new HashMap());
...@@ -516,7 +510,7 @@ public class AuthenticationInfo { ...@@ -516,7 +510,7 @@ public class AuthenticationInfo {
}); });
return list; return list;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getOldUserAuthenticationOfResource(String loginName) { public static Map<String, Object> getOldUserAuthenticationOfResource(String loginName) {
...@@ -530,7 +524,7 @@ public class AuthenticationInfo { ...@@ -530,7 +524,7 @@ public class AuthenticationInfo {
res.put(loginName, result); res.put(loginName, result);
return res; return res;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getUserAuthMenuPages(String p, String loginName) { public static Map<String, Object> getUserAuthMenuPages(String p, String loginName) {
...@@ -538,7 +532,7 @@ public class AuthenticationInfo { ...@@ -538,7 +532,7 @@ public class AuthenticationInfo {
userAuthMenuPages.put(loginName, menuAndPageListForTree); userAuthMenuPages.put(loginName, menuAndPageListForTree);
return userAuthMenuPages; return userAuthMenuPages;
} }
public static List getUserAuthMenuPagesList(String p, String loginName, String source) { public static List getUserAuthMenuPagesList(String p, String loginName, String source) {
List result = null; List result = null;
p = !org.apache.commons.lang.StringUtils.isEmpty(p) && !"$".equals(p) ? p : "root"; p = !org.apache.commons.lang.StringUtils.isEmpty(p) && !"$".equals(p) ? p : "root";
...@@ -557,7 +551,7 @@ public class AuthenticationInfo { ...@@ -557,7 +551,7 @@ public class AuthenticationInfo {
List pageAuthList = getUserAuthPagesList(loginName); List pageAuthList = getUserAuthPagesList(loginName);
List menuList = new ArrayList(); List menuList = new ArrayList();
List pageList = new ArrayList(); List pageList = new ArrayList();
for(int i = 0; i < ret.size(); ++i) { for(int i = 0; i < ret.size(); ++i) {
Map retMap = (Map)ret.get(i); Map retMap = (Map)ret.get(i);
if ("1".equals(retMap.get("leaf").toString())) { if ("1".equals(retMap.get("leaf").toString())) {
...@@ -566,67 +560,86 @@ public class AuthenticationInfo { ...@@ -566,67 +560,86 @@ public class AuthenticationInfo {
menuList.add(retMap); menuList.add(retMap);
} }
} }
List menuAndPageListForTree = new ArrayList(); List menuAndPageListForTree = new ArrayList();
for(int i = 0; i < ret.size(); ++i) { for(int i = 0; i < ret.size(); ++i) {
Map retResultMap = (Map)ret.get(i); Map retResultMap = (Map)ret.get(i);
BigDecimal retLeaf = (BigDecimal)retResultMap.get("leaf"); BigDecimal retLeaf = (BigDecimal)retResultMap.get("leaf");
BigDecimal menuDecimal = new BigDecimal("2"); BigDecimal menuDecimal = new BigDecimal("2");
BigDecimal leafDecimal = new BigDecimal("1"); BigDecimal leafDecimal = new BigDecimal("1");
String parent = (String)retResultMap.get("parent");
if (retLeaf != null && menuDecimal.equals(retLeaf)) { if (retLeaf != null && menuDecimal.equals(retLeaf)) {
Map paramMap = new HashMap(); Map paramMap = new HashMap();
paramMap.put("node", retResultMap.get("label").toString()); paramMap.put("node", retResultMap.get("label").toString());
List childPageForMenu = getDao().query("XSMenu.queryForRecursiveChildPage", paramMap); List childPageForMenu = getDao().query("XSMenu.queryForRecursiveChildPage", paramMap);
boolean flag = false; boolean flag = false;
List childList = new LinkedList();
if (childPageForMenu != null && childPageForMenu.size() > 0) { if (childPageForMenu != null && childPageForMenu.size() > 0) {
label85: //APP需要遍历所有子菜单
for(int j = 0; j < pageAuthList.size(); ++j) { if(parent.equals("APP")){
Map pageAuthMap = (Map)pageAuthList.get(j); label85:
for(int j = 0; j < pageAuthList.size(); ++j) {
for(int k = 0; k < childPageForMenu.size(); ++k) { Map pageAuthMap = (Map)pageAuthList.get(j);
Map childPageMap = (Map)childPageForMenu.get(k);
if (childPageMap.get("label").toString().equals(pageAuthMap.get("label").toString())) { for(int k = 0; k < childPageForMenu.size(); ++k) {
flag = true; Map childPageMap = (Map)childPageForMenu.get(k);
break label85; if (childPageMap.get("label").toString().equals(pageAuthMap.get("label").toString())) {
flag = true;
childList.add(pageAuthMap);
}
}
}
}else{
label85:
for(int j = 0; j < pageAuthList.size(); ++j) {
Map pageAuthMap = (Map)pageAuthList.get(j);
for(int k = 0; k < childPageForMenu.size(); ++k) {
Map childPageMap = (Map)childPageForMenu.get(k);
if (childPageMap.get("label").toString().equals(pageAuthMap.get("label").toString())) {
flag = true;
childList.add(pageAuthMap);
break label85;
}
} }
} }
} }
retResultMap.put("childMenu",childList);
} }
if (flag) { if (flag) {
menuAndPageListForTree.add(retResultMap); menuAndPageListForTree.add(retResultMap);
} }
} else if (retLeaf != null && leafDecimal.equals(retLeaf)) { } else if (retLeaf != null && leafDecimal.equals(retLeaf)) {
boolean pageFlag = false; boolean pageFlag = false;
for(int k = 0; k < pageAuthList.size(); ++k) { for(int k = 0; k < pageAuthList.size(); ++k) {
Map pageAuthMap = (Map)pageAuthList.get(k); Map pageAuthMap = (Map)pageAuthList.get(k);
if (pageAuthMap.get("label").toString().equals(retResultMap.get("label").toString())) { if (pageAuthMap.get("label").toString().equals(retResultMap.get("label").toString())) {
pageFlag = true; pageFlag = true;
} }
} }
if (pageFlag) { if (pageFlag) {
menuAndPageListForTree.add(retResultMap); menuAndPageListForTree.add(retResultMap);
} }
} }
} }
result = menuAndPageListForTree; result = menuAndPageListForTree;
} }
List newResult = new ArrayList(); List newResult = new ArrayList();
for(int i = 0; i < ((List)result).size(); ++i) { for(int i = 0; i < ((List)result).size(); ++i) {
if (((Map)((List)result).get(i)).get("show_flag") == null || ((Map)((List)result).get(i)).get("show_flag").equals("1")) { if (((Map)((List)result).get(i)).get("show_flag") == null || ((Map)((List)result).get(i)).get("show_flag").equals("1")) {
newResult.add(((List)result).get(i)); newResult.add(((List)result).get(i));
} }
} }
return newResult; return newResult;
} }
public static List getUserAllAuthMenuPagesList(String loginName) { public static List getUserAllAuthMenuPagesList(String loginName) {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
List result = new ArrayList(); List result = new ArrayList();
...@@ -660,7 +673,7 @@ public class AuthenticationInfo { ...@@ -660,7 +673,7 @@ public class AuthenticationInfo {
long startTime4 = System.currentTimeMillis(); long startTime4 = System.currentTimeMillis();
List menuList = new ArrayList(); List menuList = new ArrayList();
List pageList = new ArrayList(); List pageList = new ArrayList();
for(int i = 0; i < ret.size(); ++i) { for(int i = 0; i < ret.size(); ++i) {
Map retMap = (Map)ret.get(i); Map retMap = (Map)ret.get(i);
if ("1".equals(retMap.get("leaf").toString())) { if ("1".equals(retMap.get("leaf").toString())) {
...@@ -669,24 +682,24 @@ public class AuthenticationInfo { ...@@ -669,24 +682,24 @@ public class AuthenticationInfo {
menuList.add(retMap); menuList.add(retMap);
} }
} }
Map authPageMap = new HashMap(); Map authPageMap = new HashMap();
for(int i = 0; i < pageAuthList.size(); ++i) { for(int i = 0; i < pageAuthList.size(); ++i) {
String label = (String)((Map)pageAuthList.get(i)).get("label"); String label = (String)((Map)pageAuthList.get(i)).get("label");
authPageMap.put(label, pageAuthList.get(i)); authPageMap.put(label, pageAuthList.get(i));
} }
Map menuMap = new HashMap(); Map menuMap = new HashMap();
for(int i = 0; i < menuList.size(); ++i) { for(int i = 0; i < menuList.size(); ++i) {
String label = (String)((Map)menuList.get(i)).get("label"); String label = (String)((Map)menuList.get(i)).get("label");
menuMap.put(label, menuList.get(i)); menuMap.put(label, menuList.get(i));
} }
Map pageResultMap = new HashMap(); Map pageResultMap = new HashMap();
Map menuResultMap = new HashMap(); Map menuResultMap = new HashMap();
int i; int i;
Map entity; Map entity;
for(i = 0; i < pageList.size(); ++i) { for(i = 0; i < pageList.size(); ++i) {
...@@ -699,25 +712,25 @@ public class AuthenticationInfo { ...@@ -699,25 +712,25 @@ public class AuthenticationInfo {
menuResultMap = setMenuResultMap(parent, (Map)menuResultMap, menuMap); menuResultMap = setMenuResultMap(parent, (Map)menuResultMap, menuMap);
} }
} }
for(i = 0; i < ret.size(); ++i) { for(i = 0; i < ret.size(); ++i) {
entity = (Map)ret.get(i); entity = (Map)ret.get(i);
if (((Map)menuResultMap).get(entity.get("label")) != null || pageResultMap.get(entity.get("label")) != null) { if (((Map)menuResultMap).get(entity.get("label")) != null || pageResultMap.get(entity.get("label")) != null) {
((List)result).add(ret.get(i)); ((List)result).add(ret.get(i));
} }
} }
long endTime4 = System.currentTimeMillis(); long endTime4 = System.currentTimeMillis();
long executionTime4 = endTime4 - startTime4; long executionTime4 = endTime4 - startTime4;
logger.info("getUserAllAuthMenuPagesList:my_set_resultTime:" + executionTime4); logger.info("getUserAllAuthMenuPagesList:my_set_resultTime:" + executionTime4);
} }
endTime5 = System.currentTimeMillis(); endTime5 = System.currentTimeMillis();
executionTime5 = endTime5 - startTime; executionTime5 = endTime5 - startTime;
logger.info("getUserAllAuthMenuPagesList:totalTime:" + executionTime5); logger.info("getUserAllAuthMenuPagesList:totalTime:" + executionTime5);
return (List)result; return (List)result;
} }
private static Map setMenuResultMap(String parentLabel, Map menuResultMap, Map<String, Map> menuMap) { private static Map setMenuResultMap(String parentLabel, Map menuResultMap, Map<String, Map> menuMap) {
Map menu = (Map)menuMap.get(parentLabel); Map menu = (Map)menuMap.get(parentLabel);
if (menu != null && menuResultMap.get(parentLabel) == null) { if (menu != null && menuResultMap.get(parentLabel) == null) {
...@@ -725,10 +738,10 @@ public class AuthenticationInfo { ...@@ -725,10 +738,10 @@ public class AuthenticationInfo {
String parent = (String)menu.get("parent"); String parent = (String)menu.get("parent");
menuResultMap = setMenuResultMap(parent, menuResultMap, menuMap); menuResultMap = setMenuResultMap(parent, menuResultMap, menuMap);
} }
return menuResultMap; return menuResultMap;
} }
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public static Map<String, Object> getUserAuthPages(String loginName) { public static Map<String, Object> getUserAuthPages(String loginName) {
...@@ -736,7 +749,7 @@ public class AuthenticationInfo { ...@@ -736,7 +749,7 @@ public class AuthenticationInfo {
userAuthPages.put(loginName, pageAuthList); userAuthPages.put(loginName, pageAuthList);
return userAuthPages; return userAuthPages;
} }
public static List getUserAuthPagesList(String loginName) { public static List getUserAuthPagesList(String loginName) {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
List authList = getUserAuthenticationList(loginName); List authList = getUserAuthenticationList(loginName);
...@@ -750,7 +763,7 @@ public class AuthenticationInfo { ...@@ -750,7 +763,7 @@ public class AuthenticationInfo {
long executionTime1 = endTime1 - startTime1; long executionTime1 = endTime1 - startTime1;
logger.info("getUserAuthPagesList:List ret = getResultList(\"XSMenu.query\", new HashMap());Time:" + executionTime1); logger.info("getUserAuthPagesList:List ret = getResultList(\"XSMenu.query\", new HashMap());Time:" + executionTime1);
List pageAuthList = new ArrayList(); List pageAuthList = new ArrayList();
int i; int i;
Map pageMap; Map pageMap;
for(i = 0; i < ret.size(); ++i) { for(i = 0; i < ret.size(); ++i) {
...@@ -759,7 +772,7 @@ public class AuthenticationInfo { ...@@ -759,7 +772,7 @@ public class AuthenticationInfo {
pageList.add(pageMap); pageList.add(pageMap);
} }
} }
if (pageList.size() > 0) { if (pageList.size() > 0) {
for(i = 0; i < pageList.size(); ++i) { for(i = 0; i < pageList.size(); ++i) {
pageMap = (Map)pageList.get(i); pageMap = (Map)pageList.get(i);
...@@ -776,35 +789,35 @@ public class AuthenticationInfo { ...@@ -776,35 +789,35 @@ public class AuthenticationInfo {
} else { } else {
flag = true; flag = true;
} }
if (flag) { if (flag) {
pageAuthList.add(pageMap); pageAuthList.add(pageMap);
} }
} }
} }
long endTime2 = System.currentTimeMillis(); long endTime2 = System.currentTimeMillis();
long executionTime2 = endTime2 - startTime; long executionTime2 = endTime2 - startTime;
logger.info("getUserAuthPagesList:TotalTime:" + executionTime2); logger.info("getUserAuthPagesList:TotalTime:" + executionTime2);
return pageAuthList; return pageAuthList;
} }
public static List getResultList(String sqlMap, Map params) { public static List getResultList(String sqlMap, Map params) {
List resultList = getDao().query(sqlMap, params, 0, -999999); List resultList = getDao().query(sqlMap, params, 0, -999999);
return resultList; return resultList;
} }
/** @deprecated */ /** @deprecated */
public static Map<String, Object> getResultList(String sqlMap, Map params, Map result, String subjectName) { public static Map<String, Object> getResultList(String sqlMap, Map params, Map result, String subjectName) {
if (params == null) { if (params == null) {
params = new HashMap(); params = new HashMap();
} }
List resultList = getResultList(sqlMap, (Map)params); List resultList = getResultList(sqlMap, (Map)params);
result.put(subjectName, resultList); result.put(subjectName, resultList);
return result; return result;
} }
public static List getUserAuthenticationPageOfResource(String loginName) { public static List getUserAuthenticationPageOfResource(String loginName) {
Map<String, Object> userBelongToGroups = getUserBelongToGroups(loginName); Map<String, Object> userBelongToGroups = getUserBelongToGroups(loginName);
List userGroupsList = (List)userBelongToGroups.get(loginName); List userGroupsList = (List)userBelongToGroups.get(loginName);
...@@ -821,12 +834,12 @@ public class AuthenticationInfo { ...@@ -821,12 +834,12 @@ public class AuthenticationInfo {
filterAuthResourceList(result, resEnameSet, list); filterAuthResourceList(result, resEnameSet, list);
} }
} }
List<Map> pageList = clearButtonOfResource(result); List<Map> pageList = clearButtonOfResource(result);
sortResorceList(pageList); sortResorceList(pageList);
return pageList; return pageList;
} }
private static List getCachedSubjectPageList(String subjectId, String subjectEname) { private static List getCachedSubjectPageList(String subjectId, String subjectEname) {
List list = (List)CacheManager.getCacheValue("iplat:security:subjectPageCache", subjectEname, () -> { List list = (List)CacheManager.getCacheValue("iplat:security:subjectPageCache", subjectEname, () -> {
Map map = new HashMap(); Map map = new HashMap();
...@@ -837,7 +850,7 @@ public class AuthenticationInfo { ...@@ -837,7 +850,7 @@ public class AuthenticationInfo {
List newList2 = (List)Stream.concat(list.stream(), listUnAuthed.stream()).collect(Collectors.toList()); List newList2 = (List)Stream.concat(list.stream(), listUnAuthed.stream()).collect(Collectors.toList());
return newList2; return newList2;
} }
private static Dao getDao() { private static Dao getDao() {
return (Dao)PlatApplicationContext.getBean("dao"); return (Dao)PlatApplicationContext.getBean("dao");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment