From cd33651deff9fff7e7d9651b766210771c075190 Mon Sep 17 00:00:00 2001
From: wfy <260536420@qq.com>
Date: 星期二, 14 九月 2021 17:26:16 +0800
Subject: [PATCH] Merge branch 'master' into wangfy-dev

---
 java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java |   54 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java b/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java
index 990e21a..729d2ca 100644
--- a/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java
+++ b/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java
@@ -1,15 +1,11 @@
 package com.java110.core.event.cmd;
 
-import com.java110.core.annotation.Java110Cmd;
-import com.java110.core.context.DataFlowContext;
+import com.alibaba.fastjson.JSONObject;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.center.DataFlowListenerOrderComparator;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.core.event.service.api.ServiceDataFlowListener;
-import com.java110.entity.center.AppService;
+import com.java110.dto.CmdListenerDto;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.exception.BusinessException;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.exception.ListenerExecuteException;
@@ -18,8 +14,10 @@
 import com.java110.utils.util.Assert;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpMethod;
+import sun.misc.ProxyGenerator;
 
+import java.io.File;
+import java.io.FileOutputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -42,7 +40,7 @@
     /**
      * 淇濆瓨渚﹀惉瀹炰緥淇℃伅锛屼竴鑸惎鍔ㄦ椂鍔犺浇
      */
-    private static final List<String> listeners = new ArrayList<String>();
+    private static final List<CmdListenerDto> listeners = new ArrayList<CmdListenerDto>();
 
     /**
      * 鏍规嵁 浜嬩欢绫诲瀷鏌ヨ渚﹀惉
@@ -54,7 +52,7 @@
      *
      * @param listener
      */
-    public static void addListener(String listener) {
+    public static void addListener(CmdListenerDto listener) {
         listeners.add(listener);
     }
 
@@ -63,7 +61,7 @@
      *
      * @return
      */
-    public static List<String> getListeners() {
+    public static List<CmdListenerDto> getListeners() {
         return listeners;
     }
 
@@ -85,10 +83,10 @@
         }
 
         List<ServiceCmdListener> cmdListeners = new ArrayList<ServiceCmdListener>();
-        for (String listenerBeanName : getListeners()) {
-            ServiceCmdListener listener = ApplicationContextFactory.getBean(listenerBeanName, ServiceCmdListener.class);
-            Java110Cmd java110Cmd = listener.getClass().getDeclaredAnnotation(Java110Cmd.class);
-            if(java110Cmd.serviceCode().equals(serviceCode)) {
+        for (CmdListenerDto listenerBean : getListeners()) {
+            //ServiceCmdListener listener = ApplicationContextFactory.getBean(listenerBean.getBeanName(), ServiceCmdListener.class);
+            ServiceCmdListener listener = ApplicationContextFactory.getBean(listenerBean.getBeanName(), ServiceCmdListener.class);
+            if (listenerBean.getServiceCode().equals(serviceCode)) {
                 cmdListeners.add(listener);
             }
         }
@@ -123,7 +121,7 @@
      * @param dataFlowContext
      */
     public static void multicastEvent(String serviceCode, ICmdDataFlowContext dataFlowContext) throws BusinessException {
-        multicastEvent(serviceCode, dataFlowContext,  null);
+        multicastEvent(serviceCode, dataFlowContext, null);
     }
 
     /**
@@ -198,10 +196,34 @@
     @SuppressWarnings({"unchecked", "rawtypes"})
     protected static void invokeListener(ServiceCmdListener listener, CmdEvent event) {
         try {
-            listener.cmd(event);
+            //        //杩欓噷澶勭悊涓氬姟閫昏緫鏁版嵁
+        ICmdDataFlowContext dataFlowContext = event.getCmdDataFlowContext();
+        //鑾峰彇璇锋眰鏁版嵁
+        JSONObject reqJson = dataFlowContext.getReqJson();
+
+        logger.debug("API鏈嶅姟 --- 璇锋眰鍙傛暟涓猴細{}", reqJson.toJSONString());
+
+            listener.validate(event, dataFlowContext, reqJson);
+
+            listener.doCmd(event, dataFlowContext, reqJson);
+
+        //logger.debug("API鏈嶅姟 --- 杩斿洖鎶ユ枃淇℃伅锛歿}", dataFlowContext.getResponseEntity());
+         //   listener.cmd(event);
         } catch (CmdException e) {
             LoggerEngine.error("鍙戝竷渚﹀惉澶辫触", e);
             throw e;
         }
     }
+
+    public static void testPoxy(Class clazz){
+        byte[] bytes = ProxyGenerator.generateProxyClass("$Proxy", new Class[]{clazz});
+        try(
+                FileOutputStream fos =new FileOutputStream(new File("D:/$Proxy.class"))
+        ){
+            fos.write(bytes);
+            fos.flush();
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.8.0