Преглед изворни кода

用户服务信息完善,用户信息基本信息,属性信息受理,查询客户信息

wuxw7 пре 9 година
родитељ
комит
cc1daa4d9b

+ 141 - 327
.idea/workspace.xml

@@ -5,9 +5,15 @@
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.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/IUserServiceSMO.java" afterPath="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/IUserServiceSMO.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$/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/user/Cust.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/Cust.java" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceMapper.xml" afterPath="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCust.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCust.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ProtocolUtil.java" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ProtocolUtil.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml" afterPath="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/IUserService.java" afterPath="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/IUserService.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/UserServiceFallback.java" afterPath="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/UserServiceFallback.java" />
     </list>
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -38,73 +44,72 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="UserServiceSMOImpl.java" pinned="false" current-in-tab="true">
+      <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">
         <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="198">
-              <caret line="167" column="38" lean-forward="false" selection-start-line="167" selection-start-column="38" selection-end-line="167" selection-end-column="38" />
+            <state relative-caret-position="232">
+              <caret line="280" column="94" lean-forward="true" selection-start-line="280" selection-start-column="12" selection-end-line="280" selection-end-column="94" />
               <folding>
               <folding>
                 <element signature="imports" expanded="true" />
                 <element signature="imports" expanded="true" />
-                <element signature="e#5888#5889#0" expanded="true" />
-                <element signature="e#5926#5927#0" expanded="true" />
-                <element signature="e#5997#5998#0" expanded="true" />
-                <element signature="e#6051#6052#0" expanded="true" />
+                <element signature="e#10466#10467#0" expanded="true" />
+                <element signature="e#10504#10505#0" expanded="true" />
+                <element signature="e#10575#10576#0" expanded="true" />
+                <element signature="e#10629#10630#0" expanded="true" />
               </folding>
               </folding>
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="UserServiceDaoImpl.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java">
+      <file leaf-file-name="ProtocolUtil.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ProtocolUtil.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="2550">
-              <caret line="165" column="31" lean-forward="false" selection-start-line="165" selection-start-column="31" selection-end-line="165" selection-end-column="31" />
+            <state relative-caret-position="253">
+              <caret line="332" column="29" lean-forward="false" selection-start-line="332" selection-start-column="18" selection-end-line="332" selection-end-column="29" />
               <folding />
               <folding />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="UserServiceDaoImplMapper.xml" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml">
+      <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">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="317">
-              <caret line="81" column="31" lean-forward="false" selection-start-line="81" selection-start-column="16" selection-end-line="81" selection-end-column="31" />
-              <folding />
+            <state relative-caret-position="419">
+              <caret line="58" column="56" lean-forward="true" selection-start-line="51" selection-start-column="4" selection-end-line="58" selection-end-column="56" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="CustAttr.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/CustAttr.java">
+      <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">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="238">
-              <caret line="14" column="28" lean-forward="false" selection-start-line="14" selection-start-column="19" selection-end-line="14" selection-end-column="28" />
+            <state relative-caret-position="153">
+              <caret line="20" column="69" lean-forward="false" selection-start-line="20" selection-start-column="69" selection-end-line="20" selection-end-column="69" />
               <folding />
               <folding />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="Cust.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/Cust.java">
+      <file leaf-file-name="IUserService.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/IUserService.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="476">
-              <caret line="34" column="35" lean-forward="false" selection-start-line="34" selection-start-column="26" selection-end-line="34" selection-end-column="35" />
-              <folding>
-                <element signature="e#2312#2313#0" expanded="true" />
-                <element signature="e#2344#2345#0" expanded="true" />
-                <element signature="e#2401#2402#0" expanded="true" />
-                <element signature="e#2443#2444#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="453">
+              <caret line="66" column="67" lean-forward="false" selection-start-line="66" selection-start-column="67" selection-end-line="66" selection-end-column="67" />
+              <folding />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="BoCustAttr.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java">
+      <file leaf-file-name="UserServiceFallback.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/UserServiceFallback.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="147">
-              <caret line="14" column="24" lean-forward="false" selection-start-line="14" selection-start-column="19" selection-end-line="14" selection-end-column="24" />
-              <folding />
+            <state relative-caret-position="187">
+              <caret line="11" column="15" lean-forward="true" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
@@ -112,8 +117,8 @@
       <file leaf-file-name="IUserServiceDao.java" pinned="false" current-in-tab="false">
       <file leaf-file-name="IUserServiceDao.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java">
         <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="96">
-              <caret line="89" column="0" lean-forward="false" selection-start-line="89" selection-start-column="0" selection-end-line="89" selection-end-column="0" />
+            <state relative-caret-position="385">
+              <caret line="114" column="31" lean-forward="false" selection-start-line="114" selection-start-column="16" selection-end-line="114" selection-end-column="31" />
               <folding>
               <folding>
                 <element signature="imports" expanded="true" />
                 <element signature="imports" expanded="true" />
               </folding>
               </folding>
@@ -121,6 +126,16 @@
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
+      <file leaf-file-name="UserServiceDaoImpl.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="185">
+              <caret line="213" column="16" lean-forward="false" selection-start-line="213" selection-start-column="16" selection-end-line="213" selection-end-column="16" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
     </leaf>
     </leaf>
   </component>
   </component>
   <component name="FileTemplateManagerImpl">
   <component name="FileTemplateManagerImpl">
@@ -142,6 +157,7 @@
       <find>PropertySourceLoader</find>
       <find>PropertySourceLoader</find>
       <find>;</find>
       <find>;</find>
       <find>com.linkage.common.bean.mapping.CodeMapping</find>
       <find>com.linkage.common.bean.mapping.CodeMapping</find>
+      <find>saveDataToCust</find>
     </findStrings>
     </findStrings>
     <replaceStrings>
     <replaceStrings>
       <replace>microcommunity.version</replace>
       <replace>microcommunity.version</replace>
@@ -161,15 +177,10 @@
   <component name="IdeDocumentHistory">
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
     <option name="CHANGED_PATHS">
       <list>
       <list>
-        <option value="$PROJECT_DIR$/UserService/target/classes/logback.xml" />
-        <option value="$PROJECT_DIR$/UserService/src/main/resources/banner_wuxw.txt" />
-        <option value="$PROJECT_DIR$/UserService/src/main/resources/banner.txt" />
-        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/AppSpringBootApplication.java" />
         <option value="$PROJECT_DIR$/service/src/main/java/com/java110/service/DataSourceConfiguration.java" />
         <option value="$PROJECT_DIR$/service/src/main/java/com/java110/service/DataSourceConfiguration.java" />
         <option value="$PROJECT_DIR$/config/src/main/resources/db/db.properties" />
         <option value="$PROJECT_DIR$/config/src/main/resources/db/db.properties" />
         <option value="$PROJECT_DIR$/service/src/main/java/com/java110/service/MyBatisMapperScannerConfig.java" />
         <option value="$PROJECT_DIR$/service/src/main/java/com/java110/service/MyBatisMapperScannerConfig.java" />
         <option value="$PROJECT_DIR$/config/db/order_list.db" />
         <option value="$PROJECT_DIR$/config/db/order_list.db" />
-        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/CustAttr.java" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/CustAttr.java" />
         <option value="$PROJECT_DIR$/config/db/cust.db" />
         <option value="$PROJECT_DIR$/config/db/cust.db" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/order/OrderList.java" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/order/OrderList.java" />
@@ -183,14 +194,12 @@
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/controller/BaseController.java" />
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/controller/BaseController.java" />
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/bmo/BaseBMO.java" />
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/bmo/BaseBMO.java" />
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java" />
         <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java" />
-        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/IUserServiceSMO.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/BaseServiceApp.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/BaseServiceApp.java" />
         <option value="$PROJECT_DIR$/UserService/pom.xml" />
         <option value="$PROJECT_DIR$/UserService/pom.xml" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/AppSpringBootApplication.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/AppSpringBootApplication.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/smo/IUserServiceSMO.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/smo/IUserServiceSMO.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/dao/ICommonServiceDao.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/dao/ICommonServiceDao.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/dao/impl/CommonServiceDaoImpl.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/dao/impl/CommonServiceDaoImpl.java" />
-        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/rest/UserServiceRest.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/dao/IPrimaryKeyServiceDao.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/dao/IPrimaryKeyServiceDao.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/smo/IPrimaryKeyServiceSMO.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/smo/IPrimaryKeyServiceSMO.java" />
         <option value="$PROJECT_DIR$/BaseService/pom.xml" />
         <option value="$PROJECT_DIR$/BaseService/pom.xml" />
@@ -207,11 +216,18 @@
         <option value="$PROJECT_DIR$/service/pom.xml" />
         <option value="$PROJECT_DIR$/service/pom.xml" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/rest/PrimaryKeyServiceRest.java" />
         <option value="$PROJECT_DIR$/BaseService/src/main/java/com/java110/base/rest/PrimaryKeyServiceRest.java" />
         <option value="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceMapper.xml" />
         <option value="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceMapper.xml" />
-        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/Cust.java" />
         <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/Cust.java" />
+        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCust.java" />
+        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java" />
+        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ProtocolUtil.java" />
+        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java" />
         <option value="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml" />
         <option value="$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml" />
         <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java" />
         <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java" />
+        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/IUserServiceSMO.java" />
         <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java" />
         <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java" />
+        <option value="$PROJECT_DIR$/UserService/src/main/java/com/java110/user/rest/UserServiceRest.java" />
+        <option value="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/IUserService.java" />
+        <option value="$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/UserServiceFallback.java" />
       </list>
       </list>
     </option>
     </option>
   </component>
   </component>
@@ -265,216 +281,6 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             </PATH_ELEMENT>
           </PATH>
           </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="config" />
-              <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="config" />
-              <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>
-          <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="config" />
-              <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="resources" />
-              <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="config" />
-              <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="resources" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="mapper" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="user" />
-              <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="config" />
-              <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="resources" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="mapper" />
-              <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="config" />
-              <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>
-          <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="bean" />
-              <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="bean" />
-              <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>
-          <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="bean" />
-              <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="entity" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
         </subPane>
         </subPane>
       </pane>
       </pane>
       <pane id="PackagesPane" />
       <pane id="PackagesPane" />
@@ -873,7 +679,7 @@
       <workItem from="1491740642463" duration="7013000" />
       <workItem from="1491740642463" duration="7013000" />
       <workItem from="1491786141578" duration="4448000" />
       <workItem from="1491786141578" duration="4448000" />
       <workItem from="1491829047177" duration="14075000" />
       <workItem from="1491829047177" duration="14075000" />
-      <workItem from="1491872314728" duration="7893000" />
+      <workItem from="1491872314728" duration="14030000" />
     </task>
     </task>
     <task id="LOCAL-00001" summary="change fastjson dependenciy">
     <task id="LOCAL-00001" summary="change fastjson dependenciy">
       <created>1491576589634</created>
       <created>1491576589634</created>
@@ -886,7 +692,7 @@
     <servers />
     <servers />
   </component>
   </component>
   <component name="TimeTrackingManager">
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="125972000" />
+    <option name="totallyTimeSpent" value="132109000" />
   </component>
   </component>
   <component name="ToolWindowManager">
   <component name="ToolWindowManager">
     <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
     <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
@@ -900,7 +706,7 @@
       <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.33" sideWeight="0.5" order="7" 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.33" sideWeight="0.5" order="7" 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.34262297" sideWeight="0.5" order="2" 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.34262297" 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="7" 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="7" 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.62684125" sideWeight="0.5" order="7" 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.6262295" sideWeight="0.5" order="7" 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="2" 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="2" side_tool="false" content_ui="tabs" />
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2987897" 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.2987897" 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.25" sideWeight="0.5" order="1" 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.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
@@ -967,13 +773,6 @@
     <watches-manager />
     <watches-manager />
   </component>
   </component>
   <component name="editorHistoryManager">
   <component name="editorHistoryManager">
-    <entry file="jar://$M2_REPO$/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4-sources.jar!/org/apache/commons/lang3/math/NumberUtils.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="508">
-          <caret line="127" column="23" lean-forward="false" selection-start-line="127" selection-start-column="23" selection-end-line="127" selection-end-column="23" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/BaseService/src/main/resources/banner.txt">
     <entry file="file://$PROJECT_DIR$/BaseService/src/main/resources/banner.txt">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="272">
         <state relative-caret-position="272">
@@ -1011,13 +810,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <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="275">
-          <caret line="30" column="31" lean-forward="false" selection-start-line="30" selection-start-column="18" selection-end-line="30" selection-end-column="31" />
-        </state>
-      </provider>
-    </entry>
     <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/lang/Exception.java">
     <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/lang/Exception.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-510">
         <state relative-caret-position="-510">
@@ -1046,14 +838,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </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="292">
-          <caret line="324" column="69" lean-forward="false" selection-start-line="324" selection-start-column="7" selection-end-line="324" selection-end-column="69" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/eureka/src/main/java/com/java110/eureka/ConfigServerEurekaApplication.java">
     <entry file="file://$PROJECT_DIR$/eureka/src/main/java/com/java110/eureka/ConfigServerEurekaApplication.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="153">
         <state relative-caret-position="153">
@@ -1219,20 +1003,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/UserServiceFallback.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="255">
-          <caret line="15" column="18" lean-forward="false" selection-start-line="15" selection-start-column="18" selection-end-line="15" selection-end-column="18" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/IUserService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="170">
-          <caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="73" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/base/PrimaryKeyServiceFallback.java">
     <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/base/PrimaryKeyServiceFallback.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="255">
         <state relative-caret-position="255">
@@ -1290,24 +1060,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCust.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="272">
-          <caret line="49" column="24" lean-forward="false" selection-start-line="49" selection-start-column="19" selection-end-line="49" selection-end-column="24" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="96">
-          <caret line="89" column="0" lean-forward="false" selection-start-line="89" selection-start-column="0" selection-end-line="89" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/CustAttr.java">
     <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/CustAttr.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="238">
         <state relative-caret-position="238">
@@ -1318,7 +1070,7 @@
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/Cust.java">
     <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/Cust.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="476">
+        <state relative-caret-position="272">
           <caret line="34" column="35" lean-forward="false" selection-start-line="34" selection-start-column="26" selection-end-line="34" selection-end-column="35" />
           <caret line="34" column="35" lean-forward="false" selection-start-line="34" selection-start-column="26" selection-end-line="34" selection-end-column="35" />
           <folding>
           <folding>
             <element signature="e#2312#2313#0" expanded="true" />
             <element signature="e#2312#2313#0" expanded="true" />
@@ -1329,40 +1081,102 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
+    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCust.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="232">
+          <caret line="159" column="23" lean-forward="false" selection-start-line="159" selection-start-column="16" selection-end-line="159" selection-end-column="23" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java">
     <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/user/BoCustAttr.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="147">
-          <caret line="14" column="24" lean-forward="false" selection-start-line="14" selection-start-column="19" selection-end-line="14" selection-end-column="24" />
+        <state relative-caret-position="504">
+          <caret line="67" column="41" lean-forward="false" selection-start-line="67" selection-start-column="41" selection-end-line="67" selection-end-column="41" />
           <folding />
           <folding />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml">
     <entry file="file://$PROJECT_DIR$/config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="317">
-          <caret line="81" column="31" lean-forward="false" selection-start-line="81" selection-start-column="16" selection-end-line="81" selection-end-column="31" />
+        <state relative-caret-position="314">
+          <caret line="75" column="36" lean-forward="false" selection-start-line="75" selection-start-column="16" selection-end-line="75" selection-end-column="36" />
+          <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="253">
+          <caret line="332" column="29" lean-forward="false" selection-start-line="332" selection-start-column="18" selection-end-line="332" selection-end-column="29" />
           <folding />
           <folding />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java">
     <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2550">
-          <caret line="165" column="31" lean-forward="false" selection-start-line="165" selection-start-column="31" selection-end-line="165" selection-end-column="31" />
+        <state relative-caret-position="185">
+          <caret line="213" column="16" lean-forward="false" selection-start-line="213" selection-start-column="16" selection-end-line="213" selection-end-column="16" />
           <folding />
           <folding />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
+    <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="419">
+          <caret line="58" column="56" lean-forward="true" selection-start-line="51" selection-start-column="4" selection-end-line="58" selection-end-column="56" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java">
     <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="198">
-          <caret line="167" column="38" lean-forward="false" selection-start-line="167" selection-start-column="38" selection-end-line="167" selection-end-column="38" />
+        <state relative-caret-position="232">
+          <caret line="280" column="94" lean-forward="true" selection-start-line="280" selection-start-column="12" selection-end-line="280" selection-end-column="94" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#10466#10467#0" expanded="true" />
+            <element signature="e#10504#10505#0" expanded="true" />
+            <element signature="e#10575#10576#0" expanded="true" />
+            <element signature="e#10629#10630#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="385">
+          <caret line="114" column="31" lean-forward="false" selection-start-line="114" selection-start-column="16" selection-end-line="114" selection-end-column="31" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <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="153">
+          <caret line="20" column="69" lean-forward="false" selection-start-line="20" selection-start-column="69" selection-end-line="20" selection-end-column="69" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/IUserService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="453">
+          <caret line="66" column="67" lean-forward="false" selection-start-line="66" selection-start-column="67" selection-end-line="66" selection-end-column="67" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/feign/src/main/java/com/java110/feign/user/UserServiceFallback.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="187">
+          <caret line="11" column="15" lean-forward="true" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
           <folding>
           <folding>
             <element signature="imports" expanded="true" />
             <element signature="imports" expanded="true" />
-            <element signature="e#5888#5889#0" expanded="true" />
-            <element signature="e#5926#5927#0" expanded="true" />
-            <element signature="e#5997#5998#0" expanded="true" />
-            <element signature="e#6051#6052#0" expanded="true" />
           </folding>
           </folding>
         </state>
         </state>
       </provider>
       </provider>

+ 16 - 0
UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java

@@ -55,6 +55,22 @@ public interface IUserServiceDao {
      */
      */
     public int saveDataToCustAttr(CustAttr custAttr) throws RuntimeException;
     public int saveDataToCustAttr(CustAttr custAttr) throws RuntimeException;
 
 
+    /**
+     * 删除用户基本信息(实例数据)
+     * @param cust
+     * @return
+     * @throws RuntimeException
+     */
+    public int deleteDataToCust(Cust cust) throws RuntimeException;
+
+    /**
+     *  删除用户属性(实例数据)
+     * @param custAttr
+     * @return
+     * @throws RuntimeException
+     */
+    public int deleteDataToCustAttr(CustAttr custAttr) throws RuntimeException;
+
     /**
     /**
      * 同事保存用户基本信息和属性
      * 同事保存用户基本信息和属性
      * @param custInfo
      * @param custInfo

+ 42 - 0
UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java

@@ -126,6 +126,48 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
         return saveFlag;
         return saveFlag;
     }
     }
 
 
+    /**
+     * 删除用户基本信息(实例数据)
+     * @param cust
+     * @return
+     * @throws RuntimeException
+     */
+    public int deleteDataToCust(Cust cust) throws RuntimeException{
+        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCust】保存数据入参 : " + cust);
+        //为了保险起见,再测检测reqList 是否有值
+        if(cust == null){
+            LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCust】保存数据出错 : " + cust);
+            throw new IllegalArgumentException("请求参数错误,cust : " + cust);
+        }
+        int saveFlag = 0;
+
+        saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.deleteDataToCust",cust);
+        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCust】保存数据出参 :saveFlag " + saveFlag);
+
+        return saveFlag;
+    }
+
+    /**
+     *  删除用户属性(实例数据)
+     * @param custAttr
+     * @return
+     * @throws RuntimeException
+     */
+    public int deleteDataToCustAttr(CustAttr custAttr) throws RuntimeException{
+        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCustAttr】保存数据入参 : " + custAttr);
+        //为了保险起见,再测检测reqList 是否有值
+        if(custAttr == null){
+            LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCustAttr】保存数据出错 : " + custAttr);
+            throw new IllegalArgumentException("请求参数错误,custAttr : " + custAttr);
+        }
+        int saveFlag = 0;
+
+        saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.deleteDataToCustAttr",custAttr);
+        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCustAttr】保存数据出参 :saveFlag " + saveFlag);
+
+        return saveFlag;
+    }
+
     /**
     /**
      * 同时保存客户基本信息和客户属性
      * 同时保存客户基本信息和客户属性
      * 入参为:
      * 入参为:

+ 27 - 22
UserService/src/main/java/com/java110/user/rest/UserServiceRest.java

@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.common.log.LoggerEngine;
 import com.java110.common.log.LoggerEngine;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.core.base.controller.BaseController;
 import com.java110.core.base.controller.BaseController;
+import com.java110.entity.user.Cust;
+import com.java110.feign.user.IUserService;
 import com.java110.user.smo.IUserServiceSMO;
 import com.java110.user.smo.IUserServiceSMO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
  * Created by wuxw on 2017/4/5.
  * Created by wuxw on 2017/4/5.
  */
  */
 @RestController
 @RestController
-public class UserServiceRest extends BaseController {
+public class UserServiceRest extends BaseController implements IUserService {
 
 
     @Autowired
     @Autowired
     IUserServiceSMO iUserServiceSMO;
     IUserServiceSMO iUserServiceSMO;
@@ -24,12 +26,30 @@ public class UserServiceRest extends BaseController {
     /**
     /**
      * 通过User对象中数据查询用户信息
      * 通过User对象中数据查询用户信息
      * 如,用户ID,名称
      * 如,用户ID,名称
-     * @param userJson
+     * @param data
      * @return
      * @return
      */
      */
     @RequestMapping("/userService/queryUserInfo")
     @RequestMapping("/userService/queryUserInfo")
-    public String queryUserInfo(@RequestParam("userJson") String userJson){
-        return null;
+    public String queryUserInfo(@RequestParam("data") String data){
+        LoggerEngine.debug("queryUserInfo入参:" + data);
+
+
+        String resultUserInfo = null;
+
+        JSONObject reqUserJSON = null;
+        try {
+            reqUserJSON = this.simpleValidateJSON(data);
+            Cust oldCust = new Cust();
+            oldCust.setCustId(reqUserJSON.getString("custId"));
+            resultUserInfo = iUserServiceSMO.queryCust(oldCust);
+
+        } catch (Exception e) {
+            LoggerEngine.error("服务处理出现异常:", e);
+            resultUserInfo = ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"服务处理出现异常"+e,null);
+        } finally {
+            LoggerEngine.debug("用户服务操作客户出参:" + resultUserInfo);
+            return resultUserInfo;
+        }
     }
     }
 
 
 
 
@@ -55,26 +75,11 @@ public class UserServiceRest extends BaseController {
             reqUserJSON = this.simpleValidateJSON(data);
             reqUserJSON = this.simpleValidateJSON(data);
             //1.0规则校验,报文是否合法
             //1.0规则校验,报文是否合法
 
 
-            // 客户信息处理
-            if(reqUserJSON.containsKey("boCust")){
-                JSONArray boCusts = reqUserJSON.getJSONArray("boCust");
-                JSONObject boCustObj = new JSONObject();
-                boCustObj.put("boCust",boCusts);
-                iUserServiceSMO.soBoCust(boCustObj.toJSONString());
-            }
 
 
-            //客户属性信息处理
-            if(reqUserJSON.containsKey("boCustAttr")){
+            //2.0 受理客户信息
+            resultUserInfo = iUserServiceSMO.soUserService(reqUserJSON);
 
 
-                JSONArray boCustAttrs = reqUserJSON.getJSONArray("boCustAttr");
-                JSONObject boCustAttrObj = new JSONObject();
-                boCustAttrObj.put("boCustAttr",boCustAttrs);
-                iUserServiceSMO.soBoCustAttr(boCustAttrObj.toJSONString());
-            }
 
 
-            resultUserInfo = ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"受理成功",null);
-
-            //2.0
         } catch (Exception e) {
         } catch (Exception e) {
             LoggerEngine.error("服务处理出现异常:", e);
             LoggerEngine.error("服务处理出现异常:", e);
             resultUserInfo = ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"服务处理出现异常"+e,null);
             resultUserInfo = ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"服务处理出现异常"+e,null);
@@ -107,7 +112,7 @@ public class UserServiceRest extends BaseController {
             resultUserInfo = iUserServiceSMO.soBoCust(data);
             resultUserInfo = iUserServiceSMO.soBoCust(data);
         }catch (Exception e){
         }catch (Exception e){
             LoggerEngine.error("服务处理出现异常:", e);
             LoggerEngine.error("服务处理出现异常:", e);
-            resultUserInfo = ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"服务处理出现异常"+e,null);
+            resultUserInfo = ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"服务处理出现异常:"+e,null);
         } finally {
         } finally {
             LoggerEngine.debug("用户服务操作客户出参:" + resultUserInfo);
             LoggerEngine.debug("用户服务操作客户出参:" + resultUserInfo);
             return resultUserInfo;
             return resultUserInfo;

+ 15 - 2
UserService/src/main/java/com/java110/user/smo/IUserServiceSMO.java

@@ -1,5 +1,8 @@
 package com.java110.user.smo;
 package com.java110.user.smo;
 
 
+import com.alibaba.fastjson.JSONObject;
+import com.java110.entity.user.Cust;
+
 /**
 /**
  *
  *
  * 用户信息管理,服务
  * 用户信息管理,服务
@@ -12,14 +15,14 @@ public interface IUserServiceSMO {
      * @param userInfoJson
      * @param userInfoJson
      * @return
      * @return
      */
      */
-    public String saveUser(String userInfoJson);
+    public String saveUser(String userInfoJson) throws Exception;
 
 
     /**
     /**
      * 所有服务类(增删改查用户)
      * 所有服务类(增删改查用户)
      * @param userInfoJson
      * @param userInfoJson
      * @return
      * @return
      */
      */
-    public String soUserService(String userInfoJson);
+    public String soUserService(JSONObject userInfoJson) throws Exception;
 
 
     /**
     /**
      * 客户信息处理
      * 客户信息处理
@@ -44,4 +47,14 @@ public interface IUserServiceSMO {
      * @throws Exception
      * @throws Exception
      */
      */
     public String soBoCustAttr(String boCustAttrs) throws Exception;
     public String soBoCustAttr(String boCustAttrs) throws Exception;
+
+
+    /**
+     * 查询客户信息
+     * 包括 基本信息cust 和 属性信息 custAttr
+     * @param cust
+     * @return
+     * @throws Exception
+     */
+    public String queryCust(Cust cust) throws Exception;
 }
 }

+ 123 - 25
UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java

@@ -6,13 +6,16 @@ import com.java110.common.log.LoggerEngine;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.entity.user.BoCust;
 import com.java110.entity.user.BoCust;
 import com.java110.entity.user.BoCustAttr;
 import com.java110.entity.user.BoCustAttr;
+import com.java110.entity.user.Cust;
 import com.java110.feign.base.IPrimaryKeyService;
 import com.java110.feign.base.IPrimaryKeyService;
 import com.java110.user.dao.IUserServiceDao;
 import com.java110.user.dao.IUserServiceDao;
 import com.java110.user.smo.IUserServiceSMO;
 import com.java110.user.smo.IUserServiceSMO;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.base.smo.BaseServiceSMO;
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.lang.math.NumberUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -21,6 +24,7 @@ import java.util.List;
  * Created by wuxw on 2017/4/5.
  * Created by wuxw on 2017/4/5.
  */
  */
 @Service("userServiceSMOImpl")
 @Service("userServiceSMOImpl")
+@Transactional
 public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSMO {
 public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSMO {
 
 
     @Autowired
     @Autowired
@@ -44,7 +48,7 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
      * @param userInfoJson 入参为用户信息json传
      * @param userInfoJson 入参为用户信息json传
      * @return
      * @return
      */
      */
-    public String saveUser(String userInfoJson) {
+    public String saveUser(String userInfoJson) throws Exception{
 
 
         JSONObject reqUserJSON = null;
         JSONObject reqUserJSON = null;
         try {
         try {
@@ -67,7 +71,7 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
             //返回异常信息
             //返回异常信息
             return e.getMessage();
             return e.getMessage();
         }
         }
-        return soUserService(reqUserJSON.toJSONString());
+        return soUserService(reqUserJSON);
     }
     }
 
 
 
 
@@ -77,29 +81,48 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
      * @param userInfoJson
      * @param userInfoJson
      * @return
      * @return
      */
      */
-    public String soUserService(String userInfoJson) {
+    public String soUserService(JSONObject userInfoJson) throws Exception{
         LoggerEngine.debug("用户服务操作客户入参:" + userInfoJson);
         LoggerEngine.debug("用户服务操作客户入参:" + userInfoJson);
-        String resultUserInfo = null;
-        JSONObject reqUserJSON = null;
-        try {
-            reqUserJSON = this.simpleValidateJSON(userInfoJson);
-            //1.0规则校验,报文是否合法
+        JSONObject paramJson = new JSONObject();
+
+        JSONObject resultInfo = null;
+
+        if (userInfoJson == null){
+            throw new IllegalArgumentException("soUserService 入参 为空"+userInfoJson);
+        }
+         // 客户信息处理
+            if(userInfoJson.containsKey("boCust")){
+                JSONArray boCusts = userInfoJson.getJSONArray("boCust");
+                JSONObject boCustObj = new JSONObject();
+                boCustObj.put("boCust",boCusts);
+                String returnSaveBoCust = this.soBoCust(boCustObj.toJSONString());
 
 
-            if(reqUserJSON.containsKey("boCust")){
+                if(!ProtocolUtil.validateReturnJson(returnSaveBoCust,paramJson)){
 
 
+                    throw new RuntimeException("保存 bo_cust 失败:"+boCustObj+(paramJson != null
+                            && paramJson.containsKey("RESULT_MSG")?paramJson.getString("RESULT_MSG"):"未知异常"));
+                }
+
+                resultInfo = paramJson.getJSONObject("RESULT_INFO");
             }
             }
 
 
-            if(reqUserJSON.containsKey("boCustAttr")){
+            //客户属性信息处理
+            if(userInfoJson.containsKey("boCustAttr")){
+
+                JSONArray boCustAttrs = userInfoJson.getJSONArray("boCustAttr");
+                JSONObject boCustAttrObj = new JSONObject();
+                boCustAttrObj.put("boCustAttr",boCustAttrs);
+                String returnSaveBoCustAttr = soBoCustAttr(boCustAttrObj.toJSONString());
 
 
+                if(!ProtocolUtil.validateReturnJson(returnSaveBoCustAttr,paramJson)){
+
+                    throw new RuntimeException("保存 bo_cust 失败:"+boCustAttrObj+(paramJson != null
+                            && paramJson.containsKey("RESULT_MSG")?paramJson.getString("RESULT_MSG"):"未知异常"));
+                }
             }
             }
 
 
-            //2.0
-        } catch (Exception e) {
-            LoggerEngine.error("服务处理出现异常:", e);
-        } finally {
-            LoggerEngine.debug("用户服务操作客户出参:" + resultUserInfo);
-            return resultUserInfo;
-        }
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"成功",resultInfo);
+
     }
     }
 
 
     /**
     /**
@@ -107,14 +130,21 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
      *     boCust:[{},{}]
      *     boCust:[{},{}]
      * }
      * }
      * 客户信心处理
      * 客户信心处理
+     *
+     *
      * @param boCusts
      * @param boCusts
-     * @return
+     * @return 成功 会带上处理客户的客户ID
+     * {'RESULT_CODE':'0000','RESULT_MSG':'成功','RESULT_INFO':{'custId':'7000123,718881991}}
      * @throws Exception
      * @throws Exception
      */
      */
     public String soBoCust(String boCusts) throws Exception{
     public String soBoCust(String boCusts) throws Exception{
         // 将 jsonArray 转为list<BoCust> 对象
         // 将 jsonArray 转为list<BoCust> 对象
         JSONObject jsonObject = JSONObject.parseObject(boCusts);
         JSONObject jsonObject = JSONObject.parseObject(boCusts);
 
 
+        JSONObject resultInfo = new JSONObject();
+
+        String custIds = "";
+
         List<BoCust> boCustList = JSONObject.parseArray(jsonObject.getJSONArray("boCust").toJSONString(), BoCust.class);
         List<BoCust> boCustList = JSONObject.parseArray(jsonObject.getJSONArray("boCust").toJSONString(), BoCust.class);
 
 
         //保存数据
         //保存数据
@@ -141,12 +171,39 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
             //保存数据至 bo_cust 表中
             //保存数据至 bo_cust 表中
             int saveBoCustFlag = iUserServiceDao.saveDataToBoCust(boCust);
             int saveBoCustFlag = iUserServiceDao.saveDataToBoCust(boCust);
 
 
-            if(saveBoCustFlag > 0){
-                //建档 处理
+            if(saveBoCustFlag < 1){ // 如果没有保存成功,抛出异常,有事物 回退事物
+                throw new RuntimeException("保存过程[bo_cust]数据失败,印象记录数为"+saveBoCustFlag+",boCust : "+boCust);
+            }
+            //建档 处理 实例数据
+            int saveCustFlag = 0;
+            if("ADD".equals(boCust.getState())){
+                saveCustFlag  = iUserServiceDao.saveDataToCust(boCust.convert());
+            }else if("DEL".equals(boCust.getState())){
+                saveCustFlag = iUserServiceDao.deleteDataToCust(boCust.convert());
+            }else if("KIP".equals(boCust.getState())){
+                //按理这里到不了,KIP表示实例数据不变,所以这里默认写成1 认为是成功
+                saveCustFlag = 1;
+            }else{
+                //这里单独抛出异常,不走下面统一异常抛出,是为了说明更具体点
+                throw new RuntimeException("入参错误boCust 的 state 目前只支持 [ADD,DEL,KIP] , boCust : " +boCust);
+            }
+
+
+            if(saveCustFlag < 1){
+                throw new RuntimeException("保存实例[cust]数据失败,影响记录数为"+saveCustFlag+", cust : "+boCust.convert());
             }
             }
 
 
+            custIds +=","+custId;
+        }
+
+        //去除第一个逗号
+        if (custIds.length()>0){
+            custIds = custIds.substring(1);
         }
         }
-        return "";
+
+        resultInfo.put("custId",custIds);
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"成功",resultInfo);
     }
     }
 
 
     /**
     /**
@@ -177,13 +234,54 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
         for(BoCustAttr boCustAttr : boCustAttrList) {
         for(BoCustAttr boCustAttr : boCustAttrList) {
 
 
             //保存数据至 bo_cust_attr 表中
             //保存数据至 bo_cust_attr 表中
-            int saveBoCustFlag = iUserServiceDao.saveDataToBoCustAttr(boCustAttr);
+            int saveBoCustAttrFlag = iUserServiceDao.saveDataToBoCustAttr(boCustAttr);
 
 
-            if (saveBoCustFlag > 0) {
-                //建档 处理
+            if(saveBoCustAttrFlag < 1){ // 如果没有保存成功,抛出异常,有事物 回退事物
+                throw new RuntimeException("保存过程[bo_cust_attr]数据失败,印象记录数为"+saveBoCustAttrFlag+",boCustAttr : "+boCustAttr);
+            }
+
+            //建档 处理 实例数据
+            int saveCustAttrFlag = 0;
+            if("ADD".equals(boCustAttr.getState())){
+                saveCustAttrFlag  = iUserServiceDao.saveDataToCustAttr(boCustAttr.convert());
+            }else if("DEL".equals(boCustAttr.getState())){
+                saveCustAttrFlag = iUserServiceDao.deleteDataToCustAttr(boCustAttr.convert());
+            }else if("KIP".equals(boCustAttr.getState())){
+                //按理这里到不了,KIP表示实例数据不变,所以这里默认写成1 认为是成功
+                saveCustAttrFlag = 1;
+            }else{
+                //这里单独抛出异常,不走下面统一异常抛出,是为了说明更具体点
+                throw new RuntimeException("入参错误boCustAttr 的 state 目前只支持 [ADD,DEL,KIP] , boCust : " +boCustAttr);
+            }
+
+            if(saveCustAttrFlag < 1){
+                throw new RuntimeException("保存实例[cust_attr]数据失败,影响记录数为"+saveCustAttrFlag+", cust : "+boCustAttr.convert());
             }
             }
         }
         }
-            return "";
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"成功",null);
+    }
+
+
+    /**
+     * 查询客户信息
+     * 包括 基本信息cust 和 属性信息 custAttr
+     * @param cust
+     * @return
+     * @throws Exception
+     */
+    public String queryCust(Cust cust) throws Exception{
+        LoggerEngine.debug("客户信息查询入参:" + cust);
+        if(cust == null || StringUtils.isBlank(cust.getCustId()) ){
+            throw new IllegalArgumentException("客户信息查询入参为空,custId 为空 "+cust);
+        }
+        Cust newCust = iUserServiceDao.queryDataToCust(cust);
+
+        if(newCust == null){
+            return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"未找到用户信息",null);
+        }
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"成功",JSONObject.parseObject(JSONObject.toJSONString(newCust)));
     }
     }
 
 
     public IPrimaryKeyService getiPrimaryKeyService() {
     public IPrimaryKeyService getiPrimaryKeyService() {

+ 22 - 0
bean/src/main/java/com/java110/entity/user/BoCust.java

@@ -152,4 +152,26 @@ public class BoCust {
     public void setState(String state) {
     public void setState(String state) {
         this.state = state;
         this.state = state;
     }
     }
+
+    /**
+     * 转为实例数据
+     * @return
+     */
+    public Cust convert(){
+
+        Cust cust = new Cust();
+        cust.setCustId(this.getCustId());
+        cust.setName(this.getName());
+        cust.setCellphone(this.getCellphone());
+        cust.setCustAdress(this.getCustAdress());
+        cust.setCustType(this.getCustType());
+        cust.setEmail(this.getEmail());
+        cust.setLanId(this.getLanId());
+        cust.setOpenId(this.getOpenId());
+        cust.setRealName(this.getRealName());
+        cust.setSex(this.getSex());
+        cust.setPassword(this.getPassword());
+
+        return cust;
+    }
 }
 }

+ 13 - 0
bean/src/main/java/com/java110/entity/user/BoCustAttr.java

@@ -55,4 +55,17 @@ public class BoCustAttr {
     public void setAttrCd(String attrCd) {
     public void setAttrCd(String attrCd) {
         this.attrCd = attrCd;
         this.attrCd = attrCd;
     }
     }
+
+    /**
+     * 将过程数据转为实例数据
+     * @return
+     */
+    public CustAttr convert(){
+        CustAttr custAttr = new CustAttr();
+
+        custAttr.setCustId(this.getCustId());
+        custAttr.setAttrCd(this.getAttrCd());
+        custAttr.setValue(this.getValue());
+        return custAttr;
+    }
 }
 }

+ 27 - 0
common/src/main/java/com/java110/common/util/ProtocolUtil.java

@@ -2,6 +2,7 @@ package com.java110.common.util;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.java110.common.log.LoggerEngine;
 import com.java110.entity.protocol.SvcCont;
 import com.java110.entity.protocol.SvcCont;
 import  com.java110.entity.protocol.TcpCont;
 import  com.java110.entity.protocol.TcpCont;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
@@ -332,4 +333,30 @@ public class ProtocolUtil {
         data.put("RESULT_INFO", resultInfo);
         data.put("RESULT_INFO", resultInfo);
         return data.toString();
         return data.toString();
     }
     }
+
+    /**
+     * 校验返回报文
+     * 如果为true 成功
+     * false 失败
+     * @param returnJsonParam
+     * @return
+     */
+    public static boolean validateReturnJson(String returnJsonParam,JSONObject paramJson){
+        try{
+             paramJson = JSONObject.parseObject(returnJsonParam);
+
+            if(paramJson == null || !paramJson.containsKey("RESULT_CODE")){
+                return false;
+            }
+
+            if(ProtocolUtil.RETURN_MSG_SUCCESS.equals(paramJson.getString("RESULT_CODE"))){
+                return true;
+            }
+
+        }catch (Exception e){
+            LoggerEngine.error("返回报文必须为json格式,当前格式错误 " + returnJsonParam);
+            return false;
+        }
+        return false;
+    }
 }
 }

+ 2 - 2
config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml

@@ -73,11 +73,11 @@
         ]]>
         ]]>
     </insert>
     </insert>
     <!-- 删除实例客户信息 cust -->
     <!-- 删除实例客户信息 cust -->
-    <insert id="deleteDataToCust" parameterType="com.java110.entity.user.CustAttr">
+    <update id="deleteDataToCustAttr" parameterType="com.java110.entity.user.CustAttr">
         <![CDATA[
         <![CDATA[
            delete * from cust_attr ct where ct.custId = #{custId} and ct.attrCd = #{attrCd}
            delete * from cust_attr ct where ct.custId = #{custId} and ct.attrCd = #{attrCd}
         ]]>
         ]]>
-    </insert>
+    </update>
     <!--根据客户ID 查询客户信息,其中包括 cust 和custAttr 数据-->
     <!--根据客户ID 查询客户信息,其中包括 cust 和custAttr 数据-->
     <select id="queryDataToCust" parameterType="com.java110.entity.user.Cust" resultMap="custMap">
     <select id="queryDataToCust" parameterType="com.java110.entity.user.Cust" resultMap="custMap">
         <![CDATA[
         <![CDATA[

+ 47 - 2
feign/src/main/java/com/java110/feign/user/IUserService.java

@@ -1,5 +1,8 @@
 package com.java110.feign.user;
 package com.java110.feign.user;
 
 
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.log.LoggerEngine;
+import com.java110.common.util.ProtocolUtil;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -16,9 +19,51 @@ public interface IUserService {
     /**
     /**
      * 通过User对象中数据查询用户信息
      * 通过User对象中数据查询用户信息
      * 如,用户ID,名称
      * 如,用户ID,名称
-     * @param userJson
+     * @param data
      * @return
      * @return
      */
      */
     @RequestMapping("/userService/queryUserInfo")
     @RequestMapping("/userService/queryUserInfo")
-    public String queryUserInfo(@RequestParam("userJson") String userJson);
+    public String queryUserInfo(@RequestParam("data") String data);
+
+
+    /**
+     * 用户服务信息受理
+     * 协议:
+     * {
+     *     'boCust':[{}],
+     *     'boCustAttr':[{}]
+     * }
+     * @param data
+     * @return
+     */
+    @RequestMapping("/userService/soUserService")
+    public String soUserService(@RequestParam("data") String data);
+
+
+    /**
+     * 客户信息处理
+     * 协议:
+     *{
+     *     boCust:[{},{}]
+     * }
+     * @param data
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping("/userService/soBoCust")
+    public String soBoCust(@RequestParam("data") String data ) ;
+
+    /**
+     * 客户信息属性处理
+     * 协议:
+     *{
+     *     boCustAttr:[{},{}]
+     * }
+     * @param data
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping("/userService/soBoCustAttr")
+    public String soBoCustAttr(@RequestParam("data") String data) ;
+
 }
 }

+ 19 - 3
feign/src/main/java/com/java110/feign/user/UserServiceFallback.java

@@ -1,5 +1,6 @@
 package com.java110.feign.user;
 package com.java110.feign.user;
 
 
+import com.java110.common.util.ProtocolUtil;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
 
 
 /**
 /**
@@ -9,11 +10,26 @@ import org.springframework.web.bind.annotation.RequestParam;
 public class UserServiceFallback implements IUserService{
 public class UserServiceFallback implements IUserService{
     /**
     /**
      * 查询用户信息失败
      * 查询用户信息失败
-     * @param userJson
+     * @param data
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public String queryUserInfo(@RequestParam("userJson") String userJson) {
-        return null;
+    public String queryUserInfo(@RequestParam("data") String data) {
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"调用服务超时",null);
+    }
+
+    @Override
+    public String soUserService(@RequestParam("data") String data) {
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"调用服务超时",null);
+    }
+
+    @Override
+    public String soBoCust(@RequestParam("data") String data) {
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"调用服务超时",null);
+    }
+
+    @Override
+    public String soBoCustAttr(@RequestParam("data") String data) {
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"调用服务超时",null);
     }
     }
 }
 }