From badf10af5578f3fe4151824670bb7a794efc63dd Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 03 十二月 2024 17:12:04 +0800
Subject: [PATCH] 数据授权
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java | 79 +++++++++++++++++++++++++++++++--------
1 files changed, 63 insertions(+), 16 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
index 12701d1..f9aff20 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
@@ -26,9 +26,11 @@
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.*;
+import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.math3.distribution.TDistribution;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.slf4j.Logger;
@@ -892,7 +894,7 @@
*/
@Override
public List<BusinessObject> queryCBOByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap)
+ Map<String, String> conditionMap, Map<String, Object> replaceMap)
throws VciBaseException {
PageHelper ph = new PageHelper(-1);
return queryCBOByScheme(queryScheme,conditionMap,replaceMap,ph);
@@ -910,7 +912,7 @@
*/
@Override
public List<BusinessObject> queryCBOByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap,
+ Map<String, String> conditionMap, Map<String, Object> replaceMap,
PageHelper ph) throws VciBaseException {
List<String> clauseList = new ArrayList<String>();
clauseList.add("*");
@@ -925,7 +927,7 @@
* @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public QueryTemplate getQtByName(String name, Map<String, String> replaceMap) throws VciBaseException{
+ public QueryTemplate getQtByName(String name, Map<String, Object> replaceMap) throws VciBaseException{
QueryTemplate qt = null;
try{
VciBaseUtil.alertNotNull(name,"鏌ヨ妯℃澘鐨勫悕绉�");
@@ -934,15 +936,18 @@
//鍥犱负涔嬪墠骞冲彴鐨凾ool.replaceQTValues 娌℃湁澶勭悊 ${xxx}銆傦紝 涓轰簡蹇界暐澶у皬鍐欙紝鎴戜滑杩欓噷鍗曠嫭澶勭悊 weidy@2021-3-10
//鎴戜滑杞崲涓哄皬鍐�
Condition condition = qt.getCondition();
- Map<String,String> replaceLowMap = new HashMap<>();
+ Map<String,Object> replaceLowMap = new HashMap<>();
if(condition !=null && condition.getCIMap()!=null){
// Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap();
+ //杞皬鍐�
if(!CollectionUtils.isEmpty(replaceMap)){
replaceMap.forEach((key,value)->{
replaceLowMap.put(key.toLowerCase(),value);
});
}
- Map<String, ConditionItem> ciMap = condition.getCIMap();
+ //鏀逛负閫掑綊锛屽鐞嗘ā鏉垮妯℃澘鐨勯棶棰�
+ this.recurReplaceCiMap(qt,replaceLowMap);
+ /*Map<String, ConditionItem> ciMap = condition.getCIMap();
ciMap.forEach((ciId,ci)->{
if(ci.isLeaf()) {
LeafInfo lInfo = ci.getLeafInfo();
@@ -965,7 +970,7 @@
}
}
}
- });
+ });*/
}
}catch(PLException e){
logger.error(e.code,e);
@@ -978,6 +983,44 @@
}
/**
+ * 閫掑綊澶勭悊ciMap涓�兼浛鎹㈤棶棰�,澶勭悊妯℃澘濂楁ā鏉跨殑闂
+ * @param qt
+ * @param replaceLowMap
+ */
+ private void recurReplaceCiMap(QueryTemplate qt, Map<String,Object> replaceLowMap){
+ //璺冲嚭閫掑綊
+ if(Func.isEmpty(qt)){
+ return;
+ }
+ Map<String, ConditionItem> ciMap = qt.getCondition().getCIMap();
+ ciMap.forEach((ciId,ci)->{
+ if(ci.isLeaf()) {
+ LeafInfo lInfo = ci.getLeafInfo();
+ String value = lInfo.getValue().getOrdinaryValue();
+ if(StringUtils.isNotBlank(value)){
+ if(value.contains("#")){
+ //绯荤粺鍙橀噺.鏀寔涓�涓�
+ //lInfo.getValue().setOrdinaryValue(systemVarValueMap.getOrDefault(value.toUpperCase(),""));
+ }else if(value.contains("${")){
+ //鏈�${xxxx}鐨勬柟寮�
+ if(!CollectionUtils.isEmpty(replaceLowMap)) {
+ try {
+ lInfo.getValue().setOrdinaryValue(VciBaseUtil.replaceByFreeMarker(value, replaceLowMap));
+ }catch (Throwable e){
+ logger.error("鍙兘閰嶇疆鏈夐棶棰橈紝鍦ㄨ浆鎹reemarker琛ㄨ揪寮忕殑鏃跺�欙紝娌℃湁鎵惧埌瀵瑰簲鐨勫�硷紝鐩墠琛ㄨ揪寮忎负{}",new String[]{value},e);
+ }
+ }
+ }else if(replaceLowMap.containsKey(value.toLowerCase())){
+ lInfo.getValue().setOrdinaryValue((String) replaceLowMap.get(value.toLowerCase()));
+ }
+ }else {
+ recurReplaceCiMap(lInfo.getValue().getQueryTemplate(),replaceLowMap);
+ }
+ }
+ });
+ }
+
+ /**
* 鏍规嵁鏌ヨ妯℃澘鏉ユ煡璇㈡暟鎹�
* @param queryScheme 鏌ヨ鏂规
* @param conditionMap 鏌ヨ鏉′欢
@@ -989,7 +1032,7 @@
*/
@Override
public List<BusinessObject> queryCBOByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap,
+ Map<String, String> conditionMap, Map<String, Object> replaceMap,
PageHelper ph, List<String> clauseList) throws VciBaseException {
QueryTemplate qt = getQtByName(queryScheme,replaceMap);
return baseQueryCBO(qt,conditionMap,ph,clauseList);
@@ -1093,7 +1136,7 @@
*/
@Override
public int queryCountByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap)
+ Map<String, String> conditionMap, Map<String, Object> replaceMap)
throws VciBaseException {
QueryTemplate qt = getQtByName(queryScheme,replaceMap);
return baseQueryCount(qt,conditionMap);
@@ -1441,7 +1484,7 @@
@Override
public <T> List<T> queryObjectByScheme(String queryScheme, Class<T> c,
Map<String, String> conditionMap, PageHelper ph,
- Map<String, String> replaceMap) throws VciBaseException {
+ Map<String, Object> replaceMap) throws VciBaseException {
WebUtil.alertNotNull(queryScheme,"鏌ヨ鏂规");
//鐩存帴浠庡璞¢噷鍘绘煡璇笟鍔$被鍨嬬殑鍚嶇О
swapConditionMap(c,conditionMap);
@@ -2067,7 +2110,7 @@
*/
@Override
public DataGrid queryGridByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap)
+ Map<String, String> conditionMap, Map<String, Object> replaceMap)
throws VciBaseException {
return queryGridByScheme(queryScheme,conditionMap,replaceMap,new PageHelper(-1,true),null);
}
@@ -2083,7 +2126,7 @@
*/
@Override
public DataGrid queryGridByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap,
+ Map<String, String> conditionMap, Map<String, Object> replaceMap,
PageHelper ph) throws VciBaseException {
return queryGridByScheme(queryScheme,conditionMap,replaceMap,ph,null);
}
@@ -2100,7 +2143,7 @@
*/
@Override
public DataGrid queryGridByScheme(String queryScheme,
- Map<String, String> conditionMap, Map<String, String> replaceMap,
+ Map<String, String> conditionMap, Map<String, Object> replaceMap,
PageHelper ph, List<String> clauseList) throws VciBaseException {
if(ph == null){
ph = new PageHelper(-1,true);
@@ -2171,7 +2214,7 @@
*/
@Override
public DataGrid queryGridClassByScheme(String queryScheme, Class c,
- Map<String, String> conditionMap,Map<String,String> replaceMap) throws VciBaseException {
+ Map<String, String> conditionMap,Map<String,Object> replaceMap) throws VciBaseException {
return queryGridClassByScheme(queryScheme,c,conditionMap,replaceMap,new PageHelper(-1,true));
}
@@ -2186,7 +2229,7 @@
*/
@Override
public DataGrid queryGridClassByScheme(String queryScheme, Class c,
- Map<String, String> conditionMap, Map<String,String> replaceMap,PageHelper ph)
+ Map<String, String> conditionMap, Map<String,Object> replaceMap,PageHelper ph)
throws VciBaseException {
if(ph == null){
ph = new PageHelper(-1,true);
@@ -2231,10 +2274,14 @@
public Map cbo2Map(BusinessObject cbo) throws VciBaseException {
Map<String,String> map = new HashMap<String, String>();
WebUtil.copyValueToMapFromCbos(cbo, map);
- return map;
+ //TODO锛�20241128 杩囨护鎺夌┖key鍜岀┖value
+ Map<String, Object> filteredCbo2Map = map.entrySet()
+ .stream()
+ .filter(entry -> entry.getKey() != null && !entry.getKey().isEmpty() && entry.getValue() != null && !entry.getValue().toString().isEmpty())
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+ return filteredCbo2Map;
}
-
/**
* map杞负BusinessObject
* @param mapList map鍒楄〃
--
Gitblit v1.10.0