Selaa lähdekoodia

公用调度侦听 功能扩展,加入处理完后调用方法处理功能,主要解决调用接口对原有报文刷数据功能

wuxw7 8 vuotta sitten
vanhempi
commit
b28761b803

+ 330 - 149
.idea/workspace.xml

@@ -2,12 +2,24 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="a191bf23-5de1-438a-810e-95cec23d6b25" name="Default" comment="change fastjson dependenciy">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/rest/OrderServiceRest.java" afterPath="$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/rest/OrderServiceRest.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/method/CommonDispatchAfterMethod.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/init/SystemStartUpInit.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/listener/common/CommonDispatchListener.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/CustDispatchListener.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/DeleteCustDispatchListener.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/listener/merchant/MerchantDispatchListener.java" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java" afterPath="$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/rest/UserServiceRest.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/rest/UserServiceRest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/order/BusiOrder.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/order/BusiOrder.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/CustDispatchListener.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/CustDispatchListener.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/src/main/resources/config/event.properties" afterPath="$PROJECT_DIR$/config/src/main/resources/config/event.properties" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/AppEvent.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppEvent.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/AppEventPublishing.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppEventPublishing.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/AppListener.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppListener.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/common/AppCommonEvent.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/common/AppCommonEvent.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/cust/AppCustEvent.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/cust/AppCustEvent.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/cust/AppDeleteCustEvent.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/cust/AppDeleteCustEvent.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/merchant/AppMerchantEvent.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/merchant/AppMerchantEvent.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/order/Ordered.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/order/Ordered.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/event/src/main/java/com/java110/event/pay/AppPayEvent.java" afterPath="$PROJECT_DIR$/event/src/main/java/com/java110/event/app/pay/AppPayEvent.java" />
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -43,94 +55,66 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="OrderServiceSMOImpl.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java">
+      <file leaf-file-name="AppEvent.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppEvent.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="130">
-              <caret line="38" column="14" lean-forward="true" selection-start-line="38" selection-start-column="14" selection-end-line="38" selection-end-column="14" />
+            <state relative-caret-position="187">
+              <caret line="14" column="31" lean-forward="true" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="BaseServiceSMO.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java">
+      <file leaf-file-name="AppEventPublishing.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppEventPublishing.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="317">
-              <caret line="58" column="30" lean-forward="false" selection-start-line="58" selection-start-column="30" selection-end-line="58" selection-end-column="30" />
-              <folding>
-                <element signature="e#1781#1782#0" expanded="true" />
-                <element signature="e#1828#1829#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="UserServiceRest.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/rest/UserServiceRest.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="227">
-              <caret line="74" column="56" lean-forward="false" selection-start-line="74" selection-start-column="56" selection-end-line="74" selection-end-column="56" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="IUserServiceSMO.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/IUserServiceSMO.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="275">
-              <caret line="83" column="18" lean-forward="false" selection-start-line="83" selection-start-column="18" selection-end-line="83" selection-end-column="18" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="UserServiceSMOImpl.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="5984">
-              <caret line="376" column="23" lean-forward="true" selection-start-line="376" selection-start-column="23" selection-end-line="376" selection-end-column="23" />
+            <state relative-caret-position="185">
+              <caret line="241" column="32" lean-forward="false" selection-start-line="241" selection-start-column="32" selection-end-line="241" selection-end-column="32" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="OrderServiceRest.java" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/rest/OrderServiceRest.java">
+      <file leaf-file-name="CommonDispatchAfterMethod.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/method/CommonDispatchAfterMethod.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-4505">
-              <caret line="21" column="29" lean-forward="false" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="29" />
-              <folding />
+            <state relative-caret-position="221">
+              <caret line="13" column="38" lean-forward="false" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="38" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="IOrderServiceSMO.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/smo/IOrderServiceSMO.java">
+      <file leaf-file-name="CommonDispatchListener.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/listener/common/CommonDispatchListener.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="258">
-              <caret line="83" column="18" lean-forward="false" selection-start-line="83" selection-start-column="18" selection-end-line="83" selection-end-column="18" />
-              <folding />
+            <state relative-caret-position="306">
+              <caret line="102" column="16" lean-forward="false" selection-start-line="102" selection-start-column="16" selection-end-line="102" selection-end-column="16" />
+              <folding>
+                <element signature="e#6071#6072#0" expanded="true" />
+                <element signature="e#6119#6120#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file leaf-file-name="CustDispatchListener.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/CustDispatchListener.java">
+        <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/listener/cust/CustDispatchListener.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="357">
-              <caret line="97" column="57" lean-forward="false" selection-start-line="97" selection-start-column="57" selection-end-line="97" selection-end-column="57" />
+            <state relative-caret-position="323">
+              <caret line="74" column="20" lean-forward="true" selection-start-line="74" selection-start-column="20" selection-end-line="74" selection-end-column="20" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="AppContext.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/core/src/main/java/com/java110/core/context/AppContext.java">
+      <file leaf-file-name="event.properties" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/config/src/main/resources/config/event.properties">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="185">
-              <caret line="59" column="29" lean-forward="false" selection-start-line="59" selection-start-column="29" selection-end-line="59" selection-end-column="29" />
+            <state relative-caret-position="238">
+              <caret line="14" column="93" lean-forward="false" selection-start-line="14" selection-start-column="93" selection-end-line="14" selection-end-column="93" />
               <folding />
             </state>
           </provider>
@@ -225,10 +209,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/merchant/IMerchantMemberService.java" />
-        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/merchant/Merchant.java" />
-        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/merchant/BoMerchant.java" />
-        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/rest/MerchantServiceRest.java" />
         <option value="$PROJECT_DIR$/Readme.md" />
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/event/AppEventPublishing.java" />
         <option value="$PROJECT_DIR$/OrderService/pom.xml" />
@@ -268,14 +248,18 @@
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/context/AppContext.java" />
         <option value="$PROJECT_DIR$/event/src/main/java/com/java110/event/AppEventPublishing.java" />
         <option value="$PROJECT_DIR$/event/src/main/java/com/java110/init/SystemStartUpInit.java" />
-        <option value="$PROJECT_DIR$/config/src/main/resources/config/event.properties" />
-        <option value="$PROJECT_DIR$/event/src/main/java/com/java110/listener/common/CommonDispatchListener.java" />
         <option value="$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/CustDispatchListener.java" />
         <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/rest/UserServiceRest.java" />
         <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java" />
         <option value="$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/order/BusiOrder.java" />
         <option value="$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/rest/OrderServiceRest.java" />
+        <option value="$PROJECT_DIR$/event/src/main/java/com/java110/listener/common/CommonDispatchListener.java" />
+        <option value="$PROJECT_DIR$/event/src/main/java/com/java110/event/method/CommonServiceAfterMethod.java" />
+        <option value="$PROJECT_DIR$/event/src/main/java/com/java110/event/listener/cust/CustDispatchListener.java" />
+        <option value="$PROJECT_DIR$/event/src/main/java/com/java110/event/method/CommonDispatchAfterMethod.java" />
+        <option value="$PROJECT_DIR$/config/src/main/resources/config/event.properties" />
+        <option value="$PROJECT_DIR$/event/src/main/java/com/java110/event/listener/common/CommonDispatchListener.java" />
       </list>
     </option>
   </component>
@@ -405,7 +389,25 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
-              <option name="myItemId" value="feign" />
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
@@ -419,13 +421,25 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
-              <option name="myItemId" value="feign" />
+              <option name="myItemId" value="event" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
               <option name="myItemId" value="src" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="main" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
           </PATH>
           <PATH>
             <PATH_ELEMENT>
@@ -437,7 +451,7 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
-              <option name="myItemId" value="feign" />
+              <option name="myItemId" value="event" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
@@ -453,7 +467,121 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
-              <option name="myItemId" value="feign" />
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="listener" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="main" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="listener" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="cust" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="main" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="listener" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="common" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MicroCommunity" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="main" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="event" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="app" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
@@ -971,6 +1099,7 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
+    <editor active="true" />
     <layout>
       <window_info id="PlantUML" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.51966715" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -982,7 +1111,7 @@
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.36938435" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3852459" sideWeight="0.4969651" order="10" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21406959" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30408472" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962178" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
@@ -1004,6 +1133,39 @@
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32786885" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
     </layout>
+    <layout-to-restore>
+      <window_info id="PlantUML" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.51966715" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5030349" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37632778" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Inspection Results" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962178" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962063" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37213114" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.26455906" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3294509" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.36938435" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3852459" sideWeight="0.4969651" order="10" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.30408472" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32786885" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
+      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
+    </layout-to-restore>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="processedProjectFiles" value="true" />
@@ -1052,41 +1214,6 @@
     <option name="FILTER_TARGETS" value="false" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/listener/cust/DeleteCustDispatchListener.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="512">
-          <caret line="52" column="8" lean-forward="false" selection-start-line="52" selection-start-column="8" selection-end-line="52" selection-end-column="20" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/listener/merchant/MerchantDispatchListener.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="119">
-          <caret line="12" column="55" lean-forward="true" selection-start-line="12" selection-start-column="55" selection-end-line="12" selection-end-column="55" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/util/EventObject.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="37">
-          <caret line="38" column="13" lean-forward="false" selection-start-line="38" selection-start-column="13" selection-end-line="38" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/AppEvent.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="340">
-          <caret line="26" column="43" lean-forward="false" selection-start-line="26" selection-start-column="43" selection-end-line="26" selection-end-column="43" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/util/EventListener.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="136">
-          <caret line="31" column="17" lean-forward="false" selection-start-line="31" selection-start-column="17" selection-end-line="31" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
     <entry file="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.28/fastjson-1.2.28-sources.jar!/com/alibaba/fastjson/JSONObject.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="359">
@@ -1113,6 +1240,9 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="243">
           <caret line="71" column="55" lean-forward="true" selection-start-line="71" selection-start-column="55" selection-end-line="71" selection-end-column="55" />
+          <folding>
+            <element signature="imports" expanded="false" />
+          </folding>
         </state>
       </provider>
     </entry>
@@ -1120,6 +1250,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="255">
           <caret line="287" column="70" lean-forward="false" selection-start-line="287" selection-start-column="70" selection-end-line="287" selection-end-column="70" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1134,6 +1265,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="320">
           <caret line="125" column="0" lean-forward="false" selection-start-line="125" selection-start-column="0" selection-end-line="125" selection-end-column="0" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1148,6 +1280,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="136">
           <caret line="11" column="53" lean-forward="false" selection-start-line="11" selection-start-column="38" selection-end-line="11" selection-end-column="53" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1155,6 +1288,9 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="153">
           <caret line="11" column="37" lean-forward="false" selection-start-line="11" selection-start-column="37" selection-end-line="11" selection-end-column="37" />
+          <folding>
+            <element signature="imports" expanded="false" />
+          </folding>
         </state>
       </provider>
     </entry>
@@ -1162,6 +1298,9 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="1394">
           <caret line="126" column="0" lean-forward="true" selection-start-line="126" selection-start-column="0" selection-end-line="126" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="false" />
+          </folding>
         </state>
       </provider>
     </entry>
@@ -1176,6 +1315,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="326">
           <caret line="335" column="45" lean-forward="true" selection-start-line="320" selection-start-column="7" selection-end-line="335" selection-end-column="45" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1220,6 +1360,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="265">
           <caret line="125" column="24" lean-forward="false" selection-start-line="125" selection-start-column="24" selection-end-line="125" selection-end-column="24" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1227,6 +1368,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="420">
           <caret line="288" column="64" lean-forward="false" selection-start-line="288" selection-start-column="46" selection-end-line="288" selection-end-column="64" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1241,6 +1383,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="393">
           <caret line="154" column="28" lean-forward="false" selection-start-line="154" selection-start-column="28" selection-end-line="154" selection-end-column="28" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1259,7 +1402,7 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/AppListener.java">
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppListener.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="34">
           <caret line="10" column="17" lean-forward="false" selection-start-line="10" selection-start-column="17" selection-end-line="10" selection-end-column="17" />
@@ -1267,14 +1410,14 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/common/AppCommonEvent.java">
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/common/AppCommonEvent.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="376">
           <caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
           <folding>
             <element signature="imports" expanded="false" />
-            <element signature="e#569#570#0" expanded="false" />
-            <element signature="e#611#612#0" expanded="false" />
+            <element signature="e#577#578#0" expanded="false" />
+            <element signature="e#619#620#0" expanded="false" />
           </folding>
         </state>
       </provider>
@@ -1302,29 +1445,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/config/src/main/resources/config/event.properties">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="221">
-          <caret line="13" column="81" lean-forward="true" selection-start-line="13" selection-start-column="81" selection-end-line="13" selection-end-column="81" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/listener/common/CommonDispatchListener.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-462">
-          <caret line="33" column="60" lean-forward="true" selection-start-line="33" selection-start-column="60" selection-end-line="33" selection-end-column="60" />
-          <folding>
-            <element signature="imports" expanded="true" />
-            <element signature="e#882#897#0" expanded="true" />
-            <element signature="e#1204#1205#0" expanded="true" />
-            <element signature="e#1254#1255#0" expanded="true" />
-            <element signature="e#2724#2725#0" expanded="true" />
-            <element signature="e#2784#2785#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ProtocolUtil.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="185">
@@ -1357,7 +1477,7 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/cust/AppCustEvent.java">
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/cust/AppCustEvent.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="428">
           <caret line="29" column="51" lean-forward="false" selection-start-line="29" selection-start-column="51" selection-end-line="29" selection-end-column="51" />
@@ -1365,14 +1485,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/AppEventPublishing.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1337">
-          <caret line="288" column="91" lean-forward="false" selection-start-line="288" selection-start-column="91" selection-end-line="288" selection-end-column="91" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/core/src/main/java/com/java110/core/context/AppContext.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="185">
@@ -1394,8 +1506,8 @@
         <state relative-caret-position="317">
           <caret line="58" column="30" lean-forward="false" selection-start-line="58" selection-start-column="30" selection-end-line="58" selection-end-column="30" />
           <folding>
-            <element signature="e#1781#1782#0" expanded="true" />
-            <element signature="e#1828#1829#0" expanded="true" />
+            <element signature="e#1781#1782#0" expanded="false" />
+            <element signature="e#1828#1829#0" expanded="false" />
           </folding>
         </state>
       </provider>
@@ -1442,12 +1554,81 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/rest/OrderServiceRest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-4505">
-          <caret line="21" column="29" lean-forward="false" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="29" />
+        <state relative-caret-position="204">
+          <caret line="394" column="27" lean-forward="false" selection-start-line="394" selection-start-column="27" selection-end-line="394" selection-end-column="27" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/rest/MerchantServiceRest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="238">
+          <caret line="181" column="31" lean-forward="false" selection-start-line="181" selection-start-column="31" selection-end-line="181" selection-end-column="31" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/listener/common/CommonDispatchListener.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="561">
+          <caret line="33" column="60" lean-forward="true" selection-start-line="33" selection-start-column="60" selection-end-line="33" selection-end-column="60" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/listener/cust/CustDispatchListener.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="323">
+          <caret line="74" column="20" lean-forward="true" selection-start-line="74" selection-start-column="20" selection-end-line="74" selection-end-column="20" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppEvent.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="187">
+          <caret line="14" column="31" lean-forward="true" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/app/AppEventPublishing.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="185">
+          <caret line="241" column="32" lean-forward="false" selection-start-line="241" selection-start-column="32" selection-end-line="241" selection-end-column="32" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/method/CommonDispatchAfterMethod.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="221">
+          <caret line="13" column="38" lean-forward="false" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="38" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config/src/main/resources/config/event.properties">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="238">
+          <caret line="14" column="93" lean-forward="false" selection-start-line="14" selection-start-column="93" selection-end-line="14" selection-end-column="93" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/event/src/main/java/com/java110/event/listener/common/CommonDispatchListener.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="306">
+          <caret line="102" column="16" lean-forward="false" selection-start-line="102" selection-start-column="16" selection-end-line="102" selection-end-column="16" />
+          <folding>
+            <element signature="e#6071#6072#0" expanded="true" />
+            <element signature="e#6119#6120#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
   <component name="masterDetails">
     <states>

+ 1 - 2
OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java

@@ -10,7 +10,7 @@ import com.java110.common.util.ProtocolUtil;
 import com.java110.config.properties.EventProperties;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.context.AppContext;
-import com.java110.event.AppEventPublishing;
+import com.java110.event.app.AppEventPublishing;
 import com.java110.entity.order.BusiOrder;
 import com.java110.entity.order.BusiOrderAttr;
 import com.java110.entity.order.OrderList;
@@ -19,7 +19,6 @@ import com.java110.feign.base.IPrimaryKeyService;
 import com.java110.order.dao.IOrderServiceDao;
 import com.java110.order.mq.DeleteOrderInfoProducer;
 import com.java110.order.smo.IOrderServiceSMO;
-import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 3 - 2
config/src/main/resources/config/event.properties

@@ -9,6 +9,7 @@ java110.event.properties.orderDispatchEvent=\
   C2::com.java110.event.cust.AppCustEvent,\
   C1D::com.java110.event.cust.AppDeleteCustEvent
 
-## service A::B@@C@@D
+## service A::B##M@@C@@D M is after method(the method is in the CommonDispatchAfterMethod class) name ,
+### if method is 0 , no method need to do
 java110.event.properties.listener.service=\
-  Test1::http://user-service/test/sayHello?param={param}@@http://user-service/test/sayHello?param={param}@@http://user-service/test/sayHello?param={param}
+  Test1::http://user-service/test/sayHello?param={param}##0@@http://user-service/test/sayHello?param={param}@@http://user-service/test/sayHello?param={param}

+ 1 - 1
event/src/main/java/com/java110/event/AppEvent.java

@@ -1,4 +1,4 @@
-package com.java110.event;
+package com.java110.event.app;
 
 import com.alibaba.fastjson.JSONArray;
 import com.java110.core.context.AppContext;

+ 1 - 1
event/src/main/java/com/java110/event/AppEventPublishing.java

@@ -1,4 +1,4 @@
-package com.java110.event;
+package com.java110.event.app;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;

+ 1 - 1
event/src/main/java/com/java110/event/AppListener.java

@@ -1,4 +1,4 @@
-package com.java110.event;
+package com.java110.event.app;
 
 import com.alibaba.fastjson.JSONObject;
 

+ 2 - 2
event/src/main/java/com/java110/event/common/AppCommonEvent.java

@@ -1,8 +1,8 @@
-package com.java110.event.common;
+package com.java110.event.app.common;
 
 import com.alibaba.fastjson.JSONArray;
 import com.java110.core.context.AppContext;
-import com.java110.event.AppEvent;
+import com.java110.event.app.AppEvent;
 
 /**
  * 通用处理事件,有些服务的处理方式是一模一样的

+ 2 - 2
event/src/main/java/com/java110/event/cust/AppCustEvent.java

@@ -1,8 +1,8 @@
-package com.java110.event.cust;
+package com.java110.event.app.cust;
 
 import com.alibaba.fastjson.JSONArray;
 import com.java110.core.context.AppContext;
-import com.java110.event.AppEvent;
+import com.java110.event.app.AppEvent;
 
 /**
  * 客户事件

+ 2 - 2
event/src/main/java/com/java110/event/cust/AppDeleteCustEvent.java

@@ -1,8 +1,8 @@
-package com.java110.event.cust;
+package com.java110.event.app.cust;
 
 import com.alibaba.fastjson.JSONArray;
 import com.java110.core.context.AppContext;
-import com.java110.event.AppEvent;
+import com.java110.event.app.AppEvent;
 
 /**
  * 作废订单事件

+ 2 - 2
event/src/main/java/com/java110/event/merchant/AppMerchantEvent.java

@@ -1,7 +1,7 @@
-package com.java110.event.merchant;
+package com.java110.event.app.merchant;
 
 import com.java110.core.context.AppContext;
-import com.java110.event.AppEvent;
+import com.java110.event.app.AppEvent;
 
 /**
  * 商户事件

+ 1 - 1
event/src/main/java/com/java110/event/order/Ordered.java

@@ -1,4 +1,4 @@
-package com.java110.event.order;
+package com.java110.event.app.order;
 
 /**
  * 顺序

+ 2 - 2
event/src/main/java/com/java110/event/pay/AppPayEvent.java

@@ -1,7 +1,7 @@
-package com.java110.event.pay;
+package com.java110.event.app.pay;
 
 import com.java110.core.context.AppContext;
-import com.java110.event.AppEvent;
+import com.java110.event.app.AppEvent;
 
 /**
  *

+ 2 - 2
event/src/main/java/com/java110/init/SystemStartUpInit.java

@@ -1,8 +1,8 @@
 package com.java110.init;
 
 import com.java110.core.factory.AppFactory;
-import com.java110.event.AppEventPublishing;
-import com.java110.event.AppListener;
+import com.java110.event.app.AppEventPublishing;
+import com.java110.event.app.AppListener;
 import com.java110.listener.common.CommonDispatchListener;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.boot.context.event.ApplicationReadyEvent;

+ 44 - 6
event/src/main/java/com/java110/listener/common/CommonDispatchListener.java

@@ -1,4 +1,4 @@
-package com.java110.listener.common;
+package com.java110.event.listener.common;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -7,12 +7,14 @@ import com.java110.common.util.ProtocolUtil;
 import com.java110.common.util.StringUtil;
 import com.java110.core.context.AppContext;
 import com.java110.entity.order.BusiOrder;
-import com.java110.event.AppListener;
-import com.java110.event.common.AppCommonEvent;
+import com.java110.event.app.AppListener;
+import com.java110.event.app.common.AppCommonEvent;
+import com.java110.event.method.CommonDispatchAfterMethod;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
+import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -48,6 +50,9 @@ public class CommonDispatchListener implements AppListener<AppCommonEvent> {
     @Autowired
     private RestTemplate restTemplate;
 
+    @Autowired
+    private CommonDispatchAfterMethod commonDispatchAfterMethod;
+
 
     /**
      * 数据受理
@@ -66,11 +71,19 @@ public class CommonDispatchListener implements AppListener<AppCommonEvent> {
 
         String service_url = services.get(bo_action_type);
 
-        if(StringUtil.isEmpty(service_url) || !service_url.contains("@@")){
-            throw new IllegalArgumentException("服务配置错误,["+bo_action_type+"]不存在 ,配置格式为 A::B@@C@@D");
+        if(StringUtil.isEmpty(service_url) || !service_url.contains("@@") || !service_url.contains("##")){
+            throw new IllegalArgumentException("服务配置错误,["+bo_action_type+"]不存在 ,配置格式为 A::B##M@@C@@D");
         }
 
-        String returnObj = restTemplate.postForObject(service_url.split("@@")[0],null,String.class,infoJson);
+        String[] service_urls = service_url.split("@@")[0].split("##");
+
+        if(service_urls == null || service_urls.length != 2){
+            throw new IllegalArgumentException("服务配置错误,["+bo_action_type+"]配置错误,配置格式为 A::B##M@@C@@D");
+        }
+        service_url = service_urls[0];
+        String after_method = service_urls[1];
+
+        String returnObj = restTemplate.postForObject(service_url,null,String.class,infoJson);
 
         JSONObject returnObjTmp = JSONObject.parseObject(returnObj);
 
@@ -81,6 +94,22 @@ public class CommonDispatchListener implements AppListener<AppCommonEvent> {
             throw new IllegalArgumentException(service_url+"受理失败,失败原因:" + (returnObjTmp.containsKey(ProtocolUtil.RESULT_MSG)
                     ?"未知原因":returnObjTmp.getString(ProtocolUtil.RESULT_MSG)) + "请求报文:"+returnObj);
         }
+
+        //根据配置查询是否需要 调用方法处理,比如将返回的商户ID 刷新原前报文中 的商户ID的值
+        if(!"0".equals(after_method) && !StringUtil.isEmpty(after_method)){
+
+            try {
+                Class clazz = commonDispatchAfterMethod.getClass();
+
+                Method method = clazz.getDeclaredMethod(after_method,new Class[]{AppContext.class,JSONArray.class,JSONObject.class});
+
+                method.invoke(commonDispatchAfterMethod,context,dataInfos,returnObjTmp.getJSONObject(ProtocolUtil.RESULT_INFO));
+
+            }catch (Exception e){
+                throw new IllegalArgumentException("服务配置错误,["+bo_action_type+"]配置错误,配置格式为 A::B##M@@C@@D,配置的method 在类"+commonDispatchAfterMethod.getClass()
+                        +"中没有找到方法" + after_method);
+            }
+        }
     }
 
     @Override
@@ -144,4 +173,13 @@ public class CommonDispatchListener implements AppListener<AppCommonEvent> {
     public void setRestTemplate(RestTemplate restTemplate) {
         this.restTemplate = restTemplate;
     }
+
+
+    public CommonDispatchAfterMethod getCommonDispatchAfterMethod() {
+        return commonDispatchAfterMethod;
+    }
+
+    public void setCommonDispatchAfterMethod(CommonDispatchAfterMethod commonDispatchAfterMethod) {
+        this.commonDispatchAfterMethod = commonDispatchAfterMethod;
+    }
 }

+ 4 - 4
event/src/main/java/com/java110/listener/cust/CustDispatchListener.java

@@ -1,4 +1,4 @@
-package com.java110.listener.cust;
+package com.java110.event.listener.cust;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -7,9 +7,9 @@ import com.java110.common.util.Assert;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.core.context.AppContext;
 import com.java110.entity.order.BusiOrder;
-import com.java110.event.cust.AppCustEvent;
-import com.java110.event.AppListener;
-import com.java110.event.order.Ordered;
+import com.java110.event.app.cust.AppCustEvent;
+import com.java110.event.app.AppListener;
+import com.java110.event.app.order.Ordered;
 import com.java110.feign.user.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;

+ 3 - 3
event/src/main/java/com/java110/listener/cust/DeleteCustDispatchListener.java

@@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.common.util.Assert;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.config.properties.OrderProperties;
-import com.java110.event.cust.AppDeleteCustEvent;
-import com.java110.event.AppListener;
-import com.java110.event.order.Ordered;
+import com.java110.event.app.cust.AppDeleteCustEvent;
+import com.java110.event.app.AppListener;
+import com.java110.event.app.order.Ordered;
 import com.java110.feign.user.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;

+ 3 - 3
event/src/main/java/com/java110/listener/merchant/MerchantDispatchListener.java

@@ -3,9 +3,9 @@ package com.java110.listener.merchant;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.context.AppContext;
-import com.java110.event.AppListener;
-import com.java110.event.merchant.AppMerchantEvent;
-import com.java110.event.order.Ordered;
+import com.java110.event.app.AppListener;
+import com.java110.event.app.merchant.AppMerchantEvent;
+import com.java110.event.app.order.Ordered;
 
 /**
  * Created by wuxw on 2017/4/14.

+ 28 - 0
event/src/main/java/com/java110/event/method/CommonDispatchAfterMethod.java

@@ -0,0 +1,28 @@
+package com.java110.event.method;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.AppContext;
+import org.springframework.stereotype.Component;
+
+/**
+ * 公共调度 服务完成后,需要调用方法 处理
+ *
+ * Created by wuxw on 2017/9/18.
+ */
+@Component
+public class CommonDispatchAfterMethod {
+
+
+    /**
+     * 反射调用
+     * @param context
+     * @param datas
+     * @param returnData
+     */
+    public void test(AppContext context, JSONArray datas, JSONObject returnData){
+
+
+    }
+
+}