From 2f73a671db8bf132baaba12a5c2a9c3b611589e9 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 01 八月 2019 17:14:26 +0800
Subject: [PATCH] 修复 添加房屋时的侦听 类修改
---
java110-event/src/main/java/com/java110/event/center/DataFlowEventPublishing.java | 102 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 93 insertions(+), 9 deletions(-)
diff --git a/java110-event/src/main/java/com/java110/event/center/DataFlowEventPublishing.java b/java110-event/src/main/java/com/java110/event/center/DataFlowEventPublishing.java
index 035d10a..c5f6df2 100644
--- a/java110-event/src/main/java/com/java110/event/center/DataFlowEventPublishing.java
+++ b/java110-event/src/main/java/com/java110/event/center/DataFlowEventPublishing.java
@@ -1,12 +1,14 @@
package com.java110.event.center;
+import com.alibaba.fastjson.JSONObject;
import com.java110.common.constant.CommonConstant;
import com.java110.common.exception.BusinessException;
+import com.java110.common.factory.ApplicationContextFactory;
import com.java110.common.log.LoggerEngine;
import com.java110.common.util.Assert;
-import com.java110.event.center.event.DataFlowEvent;
-import com.java110.event.center.event.DataPreValidateEvent;
-import com.java110.event.center.event.ReceiveRequestEvent;
+import com.java110.core.context.IOrderDataFlowContext;
+import com.java110.entity.order.Business;
+import com.java110.event.center.event.*;
import com.java110.event.center.listener.DataFlowListener;
import java.lang.reflect.ParameterizedType;
@@ -32,7 +34,7 @@
/**
* 淇濆瓨渚﹀惉瀹炰緥淇℃伅锛屼竴鑸惎鍔ㄦ椂鍔犺浇
*/
- private final static List<DataFlowListener<?>> listeners = new ArrayList<DataFlowListener<?>>();
+ private final static List<String> listeners = new ArrayList<String>();
/**
* 淇濆瓨浜嬩欢瀹炰緥淇℃伅锛屼竴鑸惎鍔ㄦ椂鍔犺浇
@@ -52,15 +54,25 @@
* 娣诲姞 渚﹀惉锛岃繖涓彧鏈夊惎鍔ㄦ椂锛屽崟绾跨▼ 澶勭悊锛屾墍浠ユ槸绾跨▼瀹夊叏鐨�
* @param listener
*/
- public static void addListener(DataFlowListener<?> listener){
+ /*public static void addListener(DataFlowListener<?> listener){
listeners.add(listener);
+ }*/
+
+ /**
+ * 娉ㄨВ娉ㄥ唽渚﹀惉
+ * @param listenerBeanName
+ */
+ public static void addListener(String listenerBeanName){
+ //灏� listener 鏀惧叆 AppEventPublishing 涓柟渚垮悗鏈熸搷浣�
+ //娉ㄥ唽渚﹀惉
+ listeners.add(listenerBeanName);
}
/**
* 鑾峰彇渚﹀惉锛堝叏閮ㄤ睛鍚級
* @return
*/
- private static List<DataFlowListener<?>> getListeners(){
+ private static List<String> getListeners(){
return listeners;
}
@@ -72,7 +84,7 @@
*/
private static List<DataFlowListener<?>> getListeners(String interfaceClassName){
- Assert.isNull(interfaceClassName,"鑾峰彇闇�瑕佸彂甯冪殑浜嬩欢澶勭悊渚﹀惉鏃讹紝浼犻�掍簨浠朵负绌猴紝璇锋鏌�");
+ Assert.hasLength(interfaceClassName,"鑾峰彇闇�瑕佸彂甯冪殑浜嬩欢澶勭悊渚﹀惉鏃讹紝浼犻�掍簨浠朵负绌猴紝璇锋鏌�");
//鍏堜粠缂撳瓨涓幏鍙栵紝涓轰簡鎻愬崌鏁堢巼
if(cacheListenersMap.containsKey(interfaceClassName)){
@@ -80,7 +92,9 @@
}
List<DataFlowListener<?>> dataFlowListeners = new ArrayList<DataFlowListener<?>>();
- for(DataFlowListener<?> listener : getListeners()){
+
+ for(String listenerBeanName : getListeners()){
+ DataFlowListener<?> listener = ApplicationContextFactory.getBean(listenerBeanName,DataFlowListener.class);
Type[] types = listener.getClass().getGenericInterfaces();
for (Type type : types) {
if (type instanceof ParameterizedType) {
@@ -141,7 +155,7 @@
*/
private static void multicastEvent(final DataFlowEvent event, String asyn) {
- for (final DataFlowListener<?> listener : getListeners(event.getClass().getName())) {
+ for (final DataFlowListener<?> listener : getListeners(event.getClass().getName())) {
if(CommonConstant.PROCESS_ORDER_ASYNCHRONOUS.equals(asyn)){ //寮傛澶勭悊
@@ -206,5 +220,75 @@
multicastEvent(new DataPreValidateEvent("",null,requestData,headers));
}
+ /**
+ * 鍒濆鍖� DataFlow 瀵硅薄瀹屾垚
+ * @param dataFlow 鏁版嵁娴佸璞�
+ */
+ public static void initDataFlowComplete(IOrderDataFlowContext dataFlow){
+ multicastEvent(new DataFlowInitCompleteEvent("",dataFlow));
+ }
+
+ /**
+ * 瑙勫垯鏍¢獙瀹屾垚浜嬩欢
+ * @param dataFlow 鏁版嵁娴佸璞�
+ */
+ public static void ruleValidateComplete(IOrderDataFlowContext dataFlow){
+ multicastEvent(new RuleValidateCompleteEvent("",dataFlow));
+ }
+
+ /**
+ * 鍔犺浇閰嶇疆鏂囦欢瀹屾垚
+ * @param dataFlow 鏁版嵁娴佸璞�
+ */
+ public static void loadConfigDataComplete(IOrderDataFlowContext dataFlow){
+ multicastEvent(new LoadConfigDataCompleteEvent("",dataFlow));
+ }
+
+
+ /**
+ * 璋冪敤涓氬姟绯荤粺浜嬩欢
+ * @param dataFlow 鏁版嵁娴�
+ */
+ public static void invokeBusinessSystem(IOrderDataFlowContext dataFlow){
+ multicastEvent(new InvokeBusinessSystemEvent("",dataFlow));
+ }
+
+
+ /**
+ * 璋冪敤涓氬姟绯荤粺鎴愬姛鍚庝簨浠�
+ * @param dataFlow
+ * @param business 鎴愬姛鐨勪簨浠朵笟鍔℃暟鎹皝瑁呭璞�
+ */
+ public static void invokeBusinessBSuccess(IOrderDataFlowContext dataFlow, Business business, JSONObject businessResponseData){
+ multicastEvent(new InvokeBusinessBSuccessEvent("",dataFlow,business,businessResponseData));
+ }
+
+ /**
+ * 璋冪敤涓氬姟绯荤粺鎴愬姛鍚庝簨浠�
+ * @param dataFlow
+ * @param business 鎴愬姛鐨勪簨浠朵笟鍔℃暟鎹皝瑁呭璞�
+ */
+ public static void invokeBusinessBSuccess(IOrderDataFlowContext dataFlow, Business business){
+ multicastEvent(new InvokeBusinessBSuccessEvent("",dataFlow,business));
+ }
+
+ /**
+ * 璋冪敤涓氬姟绯荤粺鎴愬姛鍚庝簨浠�
+ * @param dataFlow
+ * @param business 鎴愬姛鐨勪簨浠朵笟鍔℃暟鎹皝瑁呭璞�
+ */
+ public static void invokeBusinessISuccess(IOrderDataFlowContext dataFlow, Business business){
+ multicastEvent(new InvokeBusinessISuccessEvent("",dataFlow,business));
+ }
+
+
+ /**
+ * 鏁版嵁杩斿洖浜嬩欢
+ * @param dataFlow 鏁版嵁娴�
+ */
+ public static void dataResponse(IOrderDataFlowContext dataFlow,String responseData,Map<String,String> headers){
+ multicastEvent(new DataResponseEvent("",dataFlow,responseData,headers));
+ }
+
/***********************************************鍙戝竷渚﹀惉 缁撴潫***************************************************************/
}
--
Gitblit v1.8.0