From 4e7907983a99e695f2acba4dec8bd73b7dbe6b2b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 29 六月 2023 14:41:33 +0800
Subject: [PATCH] optimize
---
java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java | 368 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 335 insertions(+), 33 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java b/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java
old mode 100644
new mode 100755
index 9df2dcd..cc2c0d0
--- a/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java
+++ b/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java
@@ -2,21 +2,24 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.java110.common.cache.MappingCache;
-import com.java110.common.constant.CommonConstant;
-import com.java110.common.constant.MappingConstant;
-import com.java110.common.constant.ResponseConstant;
-import com.java110.common.constant.StatusConstant;
-import com.java110.common.util.Assert;
-import com.java110.common.util.DateUtil;
+import com.java110.dto.system.*;
+import com.java110.utils.cache.AppRouteCache;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
import com.java110.core.context.AbstractDataFlowContext;
import com.java110.core.context.ApiDataFlow;
import com.java110.core.context.DataFlow;
-import com.java110.entity.center.AppRoute;
-import com.java110.entity.center.AppService;
-import com.java110.entity.center.Business;
-import com.java110.entity.center.DataFlowLinksCost;
+import com.java110.core.context.OrderDataFlow;
+import com.java110.dto.system.AppBusiness;
import org.springframework.beans.BeanInstantiationException;
+import org.springframework.http.HttpHeaders;
+import org.springframework.util.MultiValueMap;
import java.util.*;
@@ -59,7 +62,7 @@
* @return
*/
public static void addCostTime(AbstractDataFlowContext dataFlow, String linksCode, String linksName, Date startDate){
- if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_COST_TIME_ON_OFF))) {
+ if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH,MappingConstant.KEY_COST_TIME_ON_OFF))) {
DataFlowLinksCost dataFlowLinksCost = new DataFlowLinksCost().builder(linksCode, linksName, startDate, DateUtil.getCurrentDate());
dataFlow.addLinksCostDates(dataFlowLinksCost);
}
@@ -76,7 +79,7 @@
* @return
*/
public static void addCostTime(AbstractDataFlowContext dataFlow, String linksCode, String linksName, Date startDate, Date endDate){
- if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_COST_TIME_ON_OFF))) {
+ if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH,MappingConstant.KEY_COST_TIME_ON_OFF))) {
DataFlowLinksCost dataFlowLinksCost = new DataFlowLinksCost().builder(linksCode, linksName, startDate, endDate);
dataFlow.addLinksCostDates(dataFlowLinksCost);
}
@@ -123,6 +126,23 @@
}
return null;
}
+
+ /**
+ * 鏍规嵁AppId 鍜宻erviceCode 鏌ヨAppRoute
+ * @param appId
+ * @param serviceCode
+ * @return
+ */
+ public static AppRoute getRoute(String appId,String serviceCode){
+ List<AppRoute> appRoutes = AppRouteCache.getAppRoute(appId);
+ for(AppRoute appRoute : appRoutes) {
+ if (StatusConstant.STATUS_CD_VALID.equals(appRoute.getStatusCd())
+ &&appRoute.getAppService().getServiceCode().equals(serviceCode)){
+ return appRoute;
+ }
+ }
+ return null;
+ }
/**
* 鑾峰彇鍗曚釜鏈嶅姟
* @param dataFlow
@@ -152,6 +172,20 @@
}
/**
+ * 鏍规嵁appid 鍜� serviceCode 鏌ヨ鐩稿簲鐨� appservice
+ * @param appId
+ * @param serviceCode
+ * @return
+ */
+ public static AppService getService(String appId,String serviceCode){
+ AppRoute route = getRoute(appId, serviceCode);
+ if(route == null){
+ return null;
+ }
+ return route.getAppService();
+ }
+
+ /**
* 鑾峰彇Order淇℃伅
* @param dataFlow
* @return
@@ -166,6 +200,25 @@
order.put("requestTime",dataFlow.getRequestTime());
order.put("orderTypeCd",dataFlow.getOrderTypeCd());
order.put("remark",dataFlow.getRemark());
+ order.put("statusCd",StatusConstant.STATUS_CD_SAVE);
+ return order ;
+ }
+
+ /**
+ * 鑾峰彇Order淇℃伅
+ * @param orders 璁㈠崟淇℃伅
+ * @return
+ */
+ public static Map getOrder(Orders orders){
+ Map order = new HashMap();
+ orders.setoId(GenerateCodeFactory.getOId());
+ order.put("oId",orders.getoId());
+ order.put("appId",orders.getAppId());
+ order.put("extTransactionId",orders.getExtTransactionId());
+ order.put("userId",orders.getUserId());
+ order.put("requestTime",orders.getRequestTime());
+ order.put("orderTypeCd",orders.getOrderTypeCd());
+ order.put("remark",orders.getRemark());
order.put("statusCd",StatusConstant.STATUS_CD_SAVE);
return order ;
}
@@ -197,15 +250,37 @@
}
/**
+ * 鑾峰彇璁㈠崟灞炴��
+ * @param orders
+ * @return
+ */
+ public static List<Map> getOrderAttrs(Orders orders){
+ List<Map> orderAttrs = new ArrayList<Map>();
+
+ List<OrdersAttrs> attrs = orders.getOrdersAttrs();
+ Map attrMap = null;
+ for(OrdersAttrs ordersAttr:attrs)
+ {
+ ordersAttr.setAttrId(GenerateCodeFactory.getAttrId());
+ attrMap = new HashMap();
+ attrMap.put("oId",orders.getoId());
+ attrMap.put("attrId", ordersAttr.getAttrId());
+ attrMap.put("specCd",ordersAttr.getSpecCd());
+ attrMap.put("value",ordersAttr.getValue());
+ orderAttrs.add(attrMap);
+ }
+ return orderAttrs;
+ }
+ /**
* 鑾峰彇璁㈠崟椤�
* @param dataFlow
* @return
*/
public static List<Map> getBusiness(DataFlow dataFlow){
List<Map> businesss = new ArrayList<Map>();
- List<Business> businesses= dataFlow.getBusinesses();
+ List<AppBusiness> businesses= dataFlow.getBusinesses();
Map busiMap = null;
- for(Business business : businesses) {
+ for(AppBusiness business : businesses) {
if(business == null){
continue;
}
@@ -220,6 +295,33 @@
}
return businesss;
}
+
+
+ /**
+ * 鑾峰彇璁㈠崟椤�
+ * @param dataFlow
+ * @return
+ */
+ public static List<Map> getBusiness(OrderDataFlow dataFlow){
+ List<Map> businesss = new ArrayList<Map>();
+ Map busiMap = null;
+ List<com.java110.dto.system.Business> businessList = dataFlow.getBusinessList();
+ for(com.java110.dto.system.Business business : businessList) {
+ if(business == null){
+ continue;
+ }
+ business.setbId(GenerateCodeFactory.getBId());
+ busiMap = new HashMap();
+ busiMap.put("oId",dataFlow.getOrders().getoId());
+ busiMap.put("businessTypeCd",business.getBusinessTypeCd());
+ busiMap.put("remark",business.getRemark());
+ busiMap.put("statusCd",StatusConstant.STATUS_CD_SAVE);
+ busiMap.put("bId",business.getbId());
+ businesss.add(busiMap);
+ }
+ return businesss;
+ }
+
/**
* 缁勮鎾ゅ崟鏁版嵁
@@ -240,14 +342,32 @@
}
/**
+ * 缁勮鎾ゅ崟鏁版嵁
+ * @param dataFlow
+ * @param message
+ * @return
+ */
+ public static List<Map> getDeleteOrderBusiness(OrderDataFlow dataFlow,String message){
+ List<Map> business = new ArrayList<Map>();
+ Map busiMap = new HashMap();
+ busiMap.put("oId",dataFlow.getOrders().getoId());
+ busiMap.put("businessTypeCd",StatusConstant.REQUEST_BUSINESS_TYPE_DELETE);
+ busiMap.put("remark",message);
+ busiMap.put("statusCd",StatusConstant.STATUS_CD_DELETE_ORDER);
+ busiMap.put("bId", GenerateCodeFactory.getBId());
+ business.add(busiMap);
+ return business;
+ }
+
+ /**
* 鑾峰彇璁㈠崟灞炴��
* @param dataFlow
* @return
*/
public static List<Map> getBusinessAttrs(DataFlow dataFlow){
List<Map> businessAttrs = new ArrayList<Map>();
- List<Business> businesses = dataFlow.getBusinesses();
- for(Business business :businesses) {
+ List<AppBusiness> businesses = dataFlow.getBusinesses();
+ for(AppBusiness business :businesses) {
if (business.getAttrs() == null || business.getAttrs().size() ==0) {
continue;
}
@@ -259,6 +379,34 @@
attrMap.put("attrId", GenerateCodeFactory.getAttrId());
attrMap.put("specCd", attrs.getJSONObject(attrIndex).getString("specCd"));
attrMap.put("value", attrs.getJSONObject(attrIndex).getString("value"));
+ businessAttrs.add(attrMap);
+ }
+ }
+ return businessAttrs;
+ }
+
+
+ /**
+ * 鑾峰彇璁㈠崟灞炴��
+ * @param dataFlow
+ * @return
+ */
+ public static List<Map> getBusinessAttrs(OrderDataFlow dataFlow){
+ List<Map> businessAttrs = new ArrayList<Map>();
+ List<com.java110.dto.system.Business> businesses = dataFlow.getBusinessList();
+ for(com.java110.dto.system.Business business :businesses) {
+ if (business.getBusinessAttrs() == null || business.getBusinessAttrs().size() ==0) {
+ continue;
+ }
+ List<BusinessAttrs> attrs = business.getBusinessAttrs();
+ Map attrMap = null;
+ for (BusinessAttrs businessAttrs1 : attrs) {
+ attrMap = new HashMap();
+ businessAttrs1.setAttrId(GenerateCodeFactory.getAttrId());
+ attrMap.put("bId", business.getbId());
+ attrMap.put("attrId", businessAttrs1.getAttrId());
+ attrMap.put("specCd", businessAttrs1.getSpecCd());
+ attrMap.put("value", businessAttrs1.getValue());
businessAttrs.add(attrMap);
}
}
@@ -283,6 +431,19 @@
* @param dataFlow
* @return
*/
+ public static Map getNeedInvalidOrder(OrderDataFlow dataFlow){
+ Map order = new HashMap();
+ order.put("oId",dataFlow.getOrders().getoId());
+ // order.put("finishTime",DateUtil.getCurrentDate());
+ order.put("statusCd",StatusConstant.STATUS_CD_DELETE);
+ return order;
+ }
+
+ /**
+ * 鑾峰彇灏嗚浣滃簾鐨勮鍗�
+ * @param dataFlow
+ * @return
+ */
public static Map getNeedErrorOrder(DataFlow dataFlow){
Map order = new HashMap();
order.put("oId",dataFlow.getoId());
@@ -294,7 +455,7 @@
public static Map getNeedCompleteBusiness(DataFlow dataFlow){
Map business = new HashMap();
String bId = "";
- for(Business busi:dataFlow.getBusinesses()){
+ for(AppBusiness busi:dataFlow.getBusinesses()){
bId += busi.getbId()+",";
}
business.put("bId",bId.substring(0,bId.length()-1));
@@ -311,7 +472,7 @@
public static Map getNeedBusinessComplete(DataFlow dataFlow){
Map business = new HashMap();
String bId = "";
- for(Business busi:dataFlow.getBusinesses()){
+ for(AppBusiness busi:dataFlow.getBusinesses()){
bId += busi.getbId()+",";
}
business.put("bId",bId.substring(0,bId.length()-1));
@@ -328,7 +489,24 @@
public static Map getNeedDeleteBusiness(DataFlow dataFlow){
Map business = new HashMap();
String bId = "";
- for(Business busi:dataFlow.getBusinesses()){
+ for(AppBusiness busi:dataFlow.getBusinesses()){
+ bId += busi.getbId()+",";
+ }
+ business.put("bId",bId.substring(0,bId.length()-1));
+ business.put("finishTime",DateUtil.getCurrentDate());
+ business.put("statusCd",StatusConstant.STATUS_CD_DELETE_ORDER);
+ return business;
+ }
+
+ /**
+ * Business 杩囩▼瀹屾垚
+ * @param dataFlow
+ * @return
+ */
+ public static Map getNeedDeleteBusiness(OrderDataFlow dataFlow){
+ Map business = new HashMap();
+ String bId = "";
+ for(com.java110.dto.system.Business busi:dataFlow.getBusinessList()){
bId += busi.getbId()+",";
}
business.put("bId",bId.substring(0,bId.length()-1));
@@ -353,7 +531,7 @@
*/
public static String getMoreBId(DataFlow dataFlow){
String bId = "";
- for(Business busi:dataFlow.getBusinesses()){
+ for(AppBusiness busi:dataFlow.getBusinesses()){
bId += busi.getbId()+",";
}
return bId;
@@ -384,7 +562,7 @@
JSONObject busi = null;
JSONObject response = null;
- for(Business business :dataFlow.getBusinesses()){
+ for(AppBusiness business :dataFlow.getBusinesses()){
busi = new JSONObject();
busi.put("bId",business.getbId());
busi.put("serviceCode",business.getServiceCode());
@@ -409,7 +587,7 @@
JSONObject busi = null;
JSONObject response = null;
- for(Business business :dataFlow.getBusinesses()){
+ for(AppBusiness business :dataFlow.getBusinesses()){
busi = new JSONObject();
busi.put("bId",business.getbId());
busi.put("serviceCode",business.getServiceCode());
@@ -448,7 +626,7 @@
* @param business
* @return
*/
- public static JSONObject getBusinessTableDataInfoToInstanceTableJson(DataFlow dataFlow,Business business){
+ public static JSONObject getBusinessTableDataInfoToInstanceTableJson(DataFlow dataFlow, AppBusiness business){
JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_INSTANCE);
JSONObject busi = null;
@@ -462,13 +640,28 @@
return requestMessage;
}
+ /**
+ * 鑾峰彇澶辫触娑堟伅鐨勬姤鏂囷紙璁㈠崟澶辫触鍚庨�氱煡涓氬姟绯荤粺锛�
+ * @param business
+ * @return
+ */
+ public static JSONObject getBusinessTableDataInfoToInstanceTableJson(OrderDataFlow dataFlow, com.java110.dto.system.Business business){
+
+ JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_INSTANCE);
+ JSONObject busi = null;
+ busi = new JSONObject();
+ busi.put("bId",business.getbId());
+ busi.put("businessTypeCd",business.getBusinessTypeCd());
+ requestMessage.put("business",busi);
+ return requestMessage;
+ }
/**
* 鍙戣捣鎾ゅ崟璇锋眰鎶ユ枃
* @param business
* @return
*/
- public static JSONObject getDeleteInstanceTableJson(DataFlow dataFlow,Business business){
+ public static JSONObject getDeleteInstanceTableJson(DataFlow dataFlow, AppBusiness business){
JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_DELETE);
JSONObject busi = null;
@@ -476,6 +669,23 @@
busi.put("bId",business.getbId());
busi.put("serviceCode",business.getServiceCode());
busi.put("serviceName",business.getServiceName());
+ //busi.put("datas",business.getDatas());
+ requestMessage.put("business",busi);
+ return requestMessage;
+ }
+
+ /**
+ * 鍙戣捣鎾ゅ崟璇锋眰鎶ユ枃
+ * @param business
+ * @return
+ */
+ public static JSONObject getDeleteInstanceTableJson(OrderDataFlow dataFlow, com.java110.dto.system.Business business){
+
+ JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_DELETE);
+ JSONObject busi = null;
+ busi = new JSONObject();
+ busi.put("bId",business.getbId());
+ busi.put("businessTypeCd",business.getBusinessTypeCd());
//busi.put("datas",business.getDatas());
requestMessage.put("business",busi);
return requestMessage;
@@ -498,7 +708,7 @@
* @param business
* @return
*/
- public static JSONObject getCompleteInstanceDataJson(DataFlow dataFlow,Business business){
+ public static JSONObject getCompleteInstanceDataJson(DataFlow dataFlow, AppBusiness business){
JSONObject notifyMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE);
//JSONObject businesses = notifyMessage.getJSONObject("business");
@@ -517,7 +727,7 @@
* @param business
* @return
*/
- public static JSONObject getRequestBusinessJson(DataFlow dataFlow,Business business){
+ public static JSONObject getRequestBusinessJson(DataFlow dataFlow, AppBusiness business){
JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_BUSINESS);
//JSONObject businesses = notifyMessage.getJSONObject("business");
@@ -528,6 +738,26 @@
busi.put("serviceName",business.getServiceName());
busi.put("remark",business.getRemark());
busi.put("datas",business.getDatas());
+ requestMessage.put("business",busi);
+ return requestMessage;
+ }
+
+
+ /**
+ * 鑾峰彇澶辫触娑堟伅鐨勬姤鏂囷紙璁㈠崟澶辫触鍚庨�氱煡涓氬姟绯荤粺锛�
+ * @param business
+ * @return
+ */
+ public static JSONObject getRequestBusinessJson(OrderDataFlow dataFlow, com.java110.dto.system.Business business){
+
+ JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_BUSINESS);
+ //JSONObject businesses = notifyMessage.getJSONObject("business");
+ JSONObject busi = null;
+ busi = new JSONObject();
+ busi.put("bId",business.getbId());
+ busi.put("businessTypeCd",business.getBusinessTypeCd());
+ busi.put("remark",business.getRemark());
+ busi.put("datas",business.getData());
requestMessage.put("business",busi);
return requestMessage;
}
@@ -548,18 +778,57 @@
}
/**
+ * 涓氬姟绯荤粺浜や簰
+ * @return
+ */
+ private static JSONObject getTransactionBusinessBaseJson(OrderDataFlow dataFlow,String businessType){
+ JSONObject notifyMessage = JSONObject.parseObject("{\"orders\":{},\"business\":{}}");
+ JSONObject orders = notifyMessage.getJSONObject("orders");
+ orders.put("transactionId", UUID.randomUUID().toString().replace("-",""));
+ orders.put("dataFlowId",dataFlow.getDataFlowId());
+ orders.put("orderTypeCd",dataFlow.getOrders().getOrderTypeCd());
+ orders.put("requestTime",DateUtil.getyyyyMMddhhmmssDateString());
+ orders.put("businessType",businessType);
+ return notifyMessage;
+ }
+
+ /**
* 鑾峰彇鍚屾澶勭悊涓氬姟
* @param dataFlow
* @return
*/
- public static List<Business> getSynchronousBusinesses(DataFlow dataFlow){
+ public static List<AppBusiness> getSynchronousBusinesses(DataFlow dataFlow){
AppService service = null;
AppRoute route = null;
- List<Business> syschronousBusinesses = new ArrayList<Business>();
- for(Business business :dataFlow.getBusinesses()){
+ List<AppBusiness> syschronousBusinesses = new ArrayList<AppBusiness>();
+ for(AppBusiness business :dataFlow.getBusinesses()){
route = DataFlowFactory.getRoute(dataFlow,business.getServiceCode());
service = route.getAppService();
if(CommonConstant.ORDER_INVOKE_METHOD_SYNCHRONOUS.equals(route.getInvokeModel())){
+ business.setSeq(service.getSeq());
+ syschronousBusinesses.add(business);
+ }
+ }
+ if(syschronousBusinesses.size() > 0) {
+ Collections.sort(syschronousBusinesses);
+ }
+
+ return syschronousBusinesses;
+ }
+
+
+ /**
+ * 鑾峰彇鍚屾澶勭悊涓氬姟
+ * @param dataFlow
+ * @return
+ */
+ public static List<com.java110.dto.system.Business> getSynchronousBusinesses(OrderDataFlow dataFlow){
+ AppService service = null;
+ AppRoute route = null;
+ List<com.java110.dto.system.Business> syschronousBusinesses = new ArrayList<com.java110.dto.system.Business>();
+ for(com.java110.dto.system.Business business :dataFlow.getBusinessList()){
+
+ if(CommonConstant.ORDER_INVOKE_METHOD_SYNCHRONOUS.equals(business.getInvokeModel()) || StringUtil.isEmpty(business.getInvokeModel())){
business.setSeq(service.getSeq());
syschronousBusinesses.add(business);
}
@@ -577,11 +846,11 @@
* @param dataFlow
* @return
*/
- public static List<Business> getAsynchronousBusinesses(DataFlow dataFlow){
+ public static List<AppBusiness> getAsynchronousBusinesses(DataFlow dataFlow){
AppService service = null;
AppRoute route = null;
- List<Business> syschronousBusinesses = new ArrayList<Business>();
- for(Business business :dataFlow.getBusinesses()){
+ List<AppBusiness> syschronousBusinesses = new ArrayList<AppBusiness>();
+ for(AppBusiness business :dataFlow.getBusinesses()){
route = DataFlowFactory.getRoute(dataFlow,business.getServiceCode());
service = route.getAppService();
if(CommonConstant.ORDER_INVOKE_METHOD_ASYNCHRONOUS.equals(route.getInvokeModel())){
@@ -593,5 +862,38 @@
return syschronousBusinesses;
}
+ /**
+ * 鑾峰彇寮傛澶勭悊涓氬姟
+ * @param dataFlow
+ * @return
+ */
+ public static List<com.java110.dto.system.Business> getAsynchronousBusinesses(OrderDataFlow dataFlow){
+
+ List<com.java110.dto.system.Business> asynchronousBusinesses = new ArrayList<com.java110.dto.system.Business>();
+ for(com.java110.dto.system.Business business :dataFlow.getBusinessList()){
+ if(CommonConstant.ORDER_INVOKE_METHOD_ASYNCHRONOUS.equals(business.getInvokeModel())){
+
+ asynchronousBusinesses.add(business);
+ }
+ }
+
+ return asynchronousBusinesses;
+ }
+
+
+ /**
+ * hashmap 杞琈ultiValueMap
+ * @param httpHeaders
+ * @return
+ */
+ public static MultiValueMap<String, String> hashMap2MultiValueMap(Map<String,String> httpHeaders){
+ MultiValueMap<String, String> multiValueMap = new HttpHeaders();
+ for(String key:httpHeaders.keySet()) {
+ multiValueMap.add(key,httpHeaders.get(key));
+ }
+
+ return multiValueMap;
+ }
+
}
--
Gitblit v1.8.0