From d837b8310e5aba94ac1e833cbd1f88fc93230f4f Mon Sep 17 00:00:00 2001
From: kangxiaoshan <475914010@qq.com>
Date: Thu, 23 May 2019 14:31:40 +0800
Subject: [PATCH] 大后台

---
 .idea/workspace.xml                                        | 437 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------
 src/main/java/common/controller/ContractController.java    |  28 +++++++++++++++++++++-------
 src/main/java/common/model/Contract.java                   |   2 +-
 src/main/java/common/model/ContractChange.java             |   9 +++++++++
 src/main/java/common/model/FlowChange.java                 | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/common/repository/FlowChangeRepository.java  |  13 +++++++++++++
 src/main/java/common/service/ContractService.java          |   4 +++-
 src/main/java/common/service/impl/ContractServiceImpl.java | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------
 8 files changed, 626 insertions(+), 210 deletions(-)
 create mode 100644 src/main/java/common/model/FlowChange.java
 create mode 100644 src/main/java/common/repository/FlowChangeRepository.java

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 83964db..be990a0 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,8 +7,14 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="a014dff6-23ae-4886-96e2-e6af5bd7ea48" name="Default Changelist" comment="">
+      <change afterPath="$PROJECT_DIR$/src/main/java/common/model/FlowChange.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/common/repository/FlowChangeRepository.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/common/model/Contract.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/common/model/Contract.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/common/model/ContractChange.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/common/model/ContractChange.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/target/" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -20,131 +26,189 @@
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/controller/ContractController.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="9645">
-              <caret line="753" column="61" selection-start-line="753" selection-start-column="61" selection-end-line="753" selection-end-column="61" />
+            <state relative-caret-position="333">
+              <caret line="252" column="44" selection-start-line="252" selection-start-column="44" selection-end-line="252" selection-end-column="44" />
+              <folding>
+                <element signature="docComment;class#ContractController#0" />
+                <element signature="e#1175#1186#0" />
+                <element signature="class#1420:2200" />
+                <element signature="initializer##0;class#1420:2200" />
+                <element signature="e#2260#2319#0" />
+                <element signature="method#findAll#0;class#ContractController#0" />
+                <element signature="e#2662#2775#0" />
+                <element signature="method#export#0;class#ContractController#0" />
+                <element signature="e#3370#3933#1" />
+                <element signature="e#3415#3923#1" />
+                <element signature="e#4025#4084#0" />
+                <element signature="e#4107#4151#0" />
+                <element signature="e#4800#4917#0" />
+                <element signature="method#exportPay#0;class#ContractController#0" />
+                <element signature="e#5608#5978#1" />
+                <element signature="e#5655#5968#1" />
+                <element signature="e#6070#6129#0" />
+                <element signature="e#6152#6196#0" />
+                <element signature="e#6944#7006#0" />
+                <element signature="method#findOne#0;class#ContractController#0" />
+                <element signature="e#7185#7252#0" />
+                <element signature="method#checkAccount#0;class#ContractController#0" />
+                <element signature="e#7484#7548#0" />
+                <element signature="method#checkTime#0;class#ContractController#0" />
+                <element signature="e#7860#7924#0" />
+                <element signature="e#8074#8138#0" />
+                <element signature="method#findCode#0;class#ContractController#0" />
+                <element signature="e#8389#8459#0" />
+                <element signature="method#findPricelevel#0;class#ContractController#0" />
+                <element signature="e#8657#8726#0" />
+                <element signature="method#findIncrement#0;class#ContractController#0" />
+                <element signature="e#8886#8951#0" />
+                <element signature="method#rebat#0;class#ContractController#0" />
+                <element signature="e#9445#9507#0" />
+                <element signature="method#create#0;class#ContractController#0" />
+                <element signature="e#10005#10085#0" />
+                <element signature="method#update#0;class#ContractController#0" />
+                <element signature="method#updatePay#0;class#ContractController#0" />
+                <element signature="method#findPayAll#0;class#ContractController#0" />
+                <element signature="method#baseCreate#0;class#ContractController#0" />
+                <element signature="method#contractCodeAll#0;class#ContractController#0" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRelationRepository.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="176">
-              <caret line="15" column="15" selection-start-line="15" selection-start-column="15" selection-end-line="15" selection-end-column="15" />
+            <state relative-caret-position="157">
+              <caret line="49" column="13" selection-start-line="49" selection-start-column="13" selection-end-line="49" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="352">
-              <caret line="64" column="31" selection-start-line="64" selection-start-column="31" selection-end-line="64" selection-end-column="31" />
+            <state relative-caret-position="224">
+              <caret line="14" column="62" selection-start-line="14" selection-start-column="62" selection-end-line="14" selection-end-column="62" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/pom.xml">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="45">
-              <caret line="97" column="13" selection-start-line="97" selection-start-column="13" selection-end-line="97" selection-end-column="17" />
+            <state relative-caret-position="301">
+              <caret line="1144" column="65" selection-start-line="1144" selection-start-column="65" selection-end-line="1144" selection-end-column="65" />
+              <folding>
+                <element signature="docComment;class#ContractServiceImpl#0" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/model/Contract.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/FlowChangeRepository.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="3392">
-              <caret line="357" selection-start-line="357" selection-start-column="2" selection-end-line="363" selection-end-column="7" />
+            <state relative-caret-position="112">
+              <caret line="11" column="14" selection-start-line="11" selection-start-column="14" selection-end-line="11" selection-end-column="14" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/model/FlowChange.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="535">
-              <caret line="65" column="19" selection-start-line="65" selection-start-column="19" selection-end-line="65" selection-end-column="19" />
+            <state relative-caret-position="48">
+              <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
               <folding>
                 <element signature="imports" expanded="true" />
+                <element signature="e#604#605#0" expanded="true" />
+                <element signature="e#629#630#0" expanded="true" />
+                <element signature="e#732#733#0" expanded="true" />
+                <element signature="e#771#772#0" expanded="true" />
+                <element signature="e#1865#1866#0" expanded="true" />
+                <element signature="e#1900#1901#0" expanded="true" />
+                <element signature="e#1956#1957#0" expanded="true" />
+                <element signature="e#2004#2005#0" expanded="true" />
+                <element signature="e#2036#2037#0" expanded="true" />
+                <element signature="e#2064#2065#0" expanded="true" />
+                <element signature="e#2106#2107#0" expanded="true" />
+                <element signature="e#2140#2141#0" expanded="true" />
+                <element signature="e#2174#2175#0" expanded="true" />
+                <element signature="e#2204#2205#0" expanded="true" />
+                <element signature="e#2250#2251#0" expanded="true" />
+                <element signature="e#2288#2289#0" expanded="true" />
+                <element signature="e#2351#2352#0" expanded="true" />
+                <element signature="e#2379#2380#0" expanded="true" />
+                <element signature="e#2421#2422#0" expanded="true" />
+                <element signature="e#2455#2456#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/controller/ContractController.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/model/ContractChange.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="336">
-              <caret line="63" column="43" lean-forward="true" selection-start-line="63" selection-start-column="43" selection-end-line="63" selection-end-column="43" />
+            <state relative-caret-position="381">
+              <caret line="33" column="3" selection-start-line="33" selection-start-column="3" selection-end-line="34" selection-end-column="55" />
               <folding>
-                <element signature="docComment;class#ContractController#0" />
-                <element signature="method#export#0;class#ContractController#0" />
-                <element signature="method#exportPay#0;class#ContractController#0" />
-                <element signature="method#findOne#0;class#ContractController#0" />
-                <element signature="method#checkTime#0;class#ContractController#0" />
-                <element signature="method#findIncrement#0;class#ContractController#0" />
-                <element signature="method#rebat#0;class#ContractController#0" />
-                <element signature="e#9380#9381#0" expanded="true" />
-                <element signature="e#9437#9438#0" expanded="true" />
-                <element signature="method#pay#0;class#ContractController#0" />
-                <element signature="method#change#0;class#ContractController#0" />
-                <element signature="method#findPay#0;class#ContractController#0" />
-                <element signature="method#findChange#0;class#ContractController#0" />
-                <element signature="method#updatePay#0;class#ContractController#0" />
-                <element signature="method#findPayAll#0;class#ContractController#0" />
-                <element signature="method#build#0;class#ContractController#0" />
-                <element signature="method#baseCreate#0;class#ContractController#0" />
+                <element signature="imports" expanded="true" />
+                <element signature="e#3389#3390#0" expanded="true" />
+                <element signature="e#3417#3418#0" expanded="true" />
+                <element signature="e#3459#3460#0" expanded="true" />
+                <element signature="e#3493#3494#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/task/ContractSendEmailThread.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/common/model/ContractMoney.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="528">
-              <caret line="55" column="59" selection-start-line="55" selection-start-column="59" selection-end-line="55" selection-end-column="59" />
-              <folding>
-                <element signature="e#1316#1317#0" expanded="true" />
-                <element signature="e#1356#1357#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="128">
+              <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java">
+        <entry file="file://$PROJECT_DIR$/src/main/resources/spring/applicationContext.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="160">
-              <caret line="16" column="20" selection-start-line="16" selection-start-column="20" selection-end-line="16" selection-end-column="77" />
+            <state relative-caret-position="400">
+              <caret line="121" column="57" selection-start-line="121" selection-start-column="51" selection-end-line="121" selection-end-column="57" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.3.4.RELEASE/spring-core-4.3.4.RELEASE.jar!/org/springframework/cglib/proxy/MethodProxy.class">
+        <entry file="file://$PROJECT_DIR$/src/main/java/util/NewUserLogThread.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1424">
-              <caret line="104" selection-start-line="104" selection-end-line="104" />
+            <state relative-caret-position="1264">
+              <caret line="88" column="40" selection-start-line="88" selection-start-column="35" selection-end-line="88" selection-end-column="40" />
             </state>
           </provider>
         </entry>
       </file>
     </leaf>
   </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Class" />
+      </list>
+    </option>
+  </component>
   <component name="FindInProjectRecents">
     <findStrings>
       <find>AuthorizationInterceptor</find>
       <find>loginUser</find>
       <find>accountmng</find>
-      <find>find/pay</find>
       <find>ContractMoneyRepository</find>
-      <find>contractMoneyRepository.s</find>
       <find>flow.setContractCode</find>
       <find>find/pricelevel</find>
       <find>增值</find>
@@ -168,6 +232,9 @@
       <find>已回款</find>
       <find>findByDsAndRoile</find>
       <find>测试环境</find>
+      <find>find/pay</find>
+      <find>contractMoneyRepository.s</find>
+      <find>contractMoneyRepository.save</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -184,21 +251,24 @@
         <option value="$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/userio/service/impl/AccountIOServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/adi/service/impl/ADIAccountServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" />
         <option value="$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/tkio/repository/PackageTypeRepository.java" />
         <option value="$PROJECT_DIR$/src/main/java/dic/ContractStatusEnum.java" />
         <option value="$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java" />
-        <option value="$PROJECT_DIR$/src/main/java/common/model/Contract.java" />
-        <option value="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" />
         <option value="$PROJECT_DIR$/src/main/java/util/Constant.java" />
         <option value="$PROJECT_DIR$/src/main/resources/mail.properties" />
         <option value="$PROJECT_DIR$/src/main/java/common/repository/ContractRelationRepository.java" />
-        <option value="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java" />
         <option value="$PROJECT_DIR$/pom.xml" />
         <option value="$PROJECT_DIR$/src/main/java/util/MailUtils.java" />
         <option value="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" />
+        <option value="$PROJECT_DIR$/src/main/java/common/model/Contract.java" />
+        <option value="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" />
+        <option value="$PROJECT_DIR$/src/main/java/common/model/ContractChange.java" />
+        <option value="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" />
+        <option value="$PROJECT_DIR$/src/main/java/common/model/FlowChange.java" />
+        <option value="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" />
+        <option value="$PROJECT_DIR$/src/main/java/common/repository/FlowChangeRepository.java" />
       </list>
     </option>
   </component>
@@ -244,6 +314,7 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="PackagesPane" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -267,22 +338,30 @@
               <item name="manager" type="462c0819:PsiDirectoryNode" />
               <item name="src" type="462c0819:PsiDirectoryNode" />
               <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="webapp" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="manage" type="b2602c69:ProjectViewProjectNode" />
               <item name="manager" type="462c0819:PsiDirectoryNode" />
               <item name="src" type="462c0819:PsiDirectoryNode" />
               <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="webapp" type="462c0819:PsiDirectoryNode" />
-              <item name="WEB-INF" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="common" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="manage" type="b2602c69:ProjectViewProjectNode" />
+              <item name="manager" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="common" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
             </path>
           </expand>
           <select />
         </subPane>
       </pane>
       <pane id="Scope" />
-      <pane id="PackagesPane" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -453,17 +532,18 @@
       <workItem from="1556246315995" duration="115000" />
       <workItem from="1556504898324" duration="85000" />
       <workItem from="1556505038023" duration="24140000" />
+      <workItem from="1558578871392" duration="4010000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="55912000" />
+    <option name="totallyTimeSpent" value="69856000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1623867" />
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.21978852" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="UI Designer" order="2" />
       <window_info id="Favorites" order="3" side_tool="true" />
@@ -472,7 +552,7 @@
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
       <window_info anchor="bottom" id="Run" order="2" weight="0.32899022" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.70358306" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.5439739" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
@@ -499,58 +579,11 @@
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
   </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager>
-      <breakpoints>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java</url>
-          <line>316</line>
-          <properties />
-          <option name="timeStamp" value="1" />
-        </line-breakpoint>
-      </breakpoints>
-    </breakpoint-manager>
-  </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
     <option name="FILTER_TARGETS" value="false" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/main/java/track/service/impl/TrackAccountServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="189">
-          <caret line="56" column="51" selection-start-line="56" selection-start-column="28" selection-end-line="56" selection-end-column="51" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/adi/dic/PackageEnum.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="5" column="4" selection-start-line="5" selection-start-column="4" selection-end-line="5" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/IncrementFlow.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/tkio/repository/IncrementFlowRepository.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="11" column="66" selection-start-line="11" selection-start-column="66" selection-end-line="11" selection-end-column="66" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountFlowRestrictServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3196">
-          <caret line="230" selection-start-line="230" selection-end-line="230" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/SaleManServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="128">
@@ -631,13 +664,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="500">
-          <caret line="57" column="27" lean-forward="true" selection-start-line="57" selection-start-column="27" selection-end-line="57" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/AuthRepository.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="112">
@@ -715,11 +741,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/spring/applicationContext.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-192" />
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/resources/persistence.properties">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
@@ -822,74 +843,180 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/util/Constant.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="256">
+          <caret line="19" column="71" selection-start-line="19" selection-start-column="71" selection-end-line="19" selection-end-column="71" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/util/MailUtils.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="178">
+          <caret line="105" column="18" selection-start-line="105" selection-start-column="14" selection-end-line="105" selection-end-column="18" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pom.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="189">
+          <caret line="97" column="13" selection-start-line="97" selection-start-column="13" selection-end-line="97" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/model/Contract.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="176">
+          <caret line="16" column="29" selection-start-line="16" selection-start-column="19" selection-end-line="16" selection-end-column="29" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="224">
+          <caret line="14" column="62" selection-start-line="14" selection-start-column="62" selection-end-line="14" selection-end-column="62" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/util/NewUserLogThread.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1264">
+          <caret line="88" column="40" selection-start-line="88" selection-start-column="35" selection-end-line="88" selection-end-column="40" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="157">
+          <caret line="49" column="13" selection-start-line="49" selection-start-column="13" selection-end-line="49" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/common/controller/ContractController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="63" column="43" lean-forward="true" selection-start-line="63" selection-start-column="43" selection-end-line="63" selection-end-column="43" />
+        <state relative-caret-position="333">
+          <caret line="252" column="44" selection-start-line="252" selection-start-column="44" selection-end-line="252" selection-end-column="44" />
           <folding>
             <element signature="docComment;class#ContractController#0" />
+            <element signature="e#1175#1186#0" />
+            <element signature="class#1420:2200" />
+            <element signature="initializer##0;class#1420:2200" />
+            <element signature="e#2260#2319#0" />
+            <element signature="method#findAll#0;class#ContractController#0" />
+            <element signature="e#2662#2775#0" />
             <element signature="method#export#0;class#ContractController#0" />
+            <element signature="e#3370#3933#1" />
+            <element signature="e#3415#3923#1" />
+            <element signature="e#4025#4084#0" />
+            <element signature="e#4107#4151#0" />
+            <element signature="e#4800#4917#0" />
             <element signature="method#exportPay#0;class#ContractController#0" />
+            <element signature="e#5608#5978#1" />
+            <element signature="e#5655#5968#1" />
+            <element signature="e#6070#6129#0" />
+            <element signature="e#6152#6196#0" />
+            <element signature="e#6944#7006#0" />
             <element signature="method#findOne#0;class#ContractController#0" />
+            <element signature="e#7185#7252#0" />
+            <element signature="method#checkAccount#0;class#ContractController#0" />
+            <element signature="e#7484#7548#0" />
             <element signature="method#checkTime#0;class#ContractController#0" />
+            <element signature="e#7860#7924#0" />
+            <element signature="e#8074#8138#0" />
+            <element signature="method#findCode#0;class#ContractController#0" />
+            <element signature="e#8389#8459#0" />
+            <element signature="method#findPricelevel#0;class#ContractController#0" />
+            <element signature="e#8657#8726#0" />
             <element signature="method#findIncrement#0;class#ContractController#0" />
+            <element signature="e#8886#8951#0" />
             <element signature="method#rebat#0;class#ContractController#0" />
-            <element signature="e#9380#9381#0" expanded="true" />
-            <element signature="e#9437#9438#0" expanded="true" />
-            <element signature="method#pay#0;class#ContractController#0" />
-            <element signature="method#change#0;class#ContractController#0" />
-            <element signature="method#findPay#0;class#ContractController#0" />
-            <element signature="method#findChange#0;class#ContractController#0" />
+            <element signature="e#9445#9507#0" />
+            <element signature="method#create#0;class#ContractController#0" />
+            <element signature="e#10005#10085#0" />
+            <element signature="method#update#0;class#ContractController#0" />
             <element signature="method#updatePay#0;class#ContractController#0" />
             <element signature="method#findPayAll#0;class#ContractController#0" />
-            <element signature="method#build#0;class#ContractController#0" />
             <element signature="method#baseCreate#0;class#ContractController#0" />
+            <element signature="method#contractCodeAll#0;class#ContractController#0" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="9645">
-          <caret line="753" column="61" selection-start-line="753" selection-start-column="61" selection-end-line="753" selection-end-column="61" />
+        <state relative-caret-position="301">
+          <caret line="1144" column="65" selection-start-line="1144" selection-start-column="65" selection-end-line="1144" selection-end-column="65" />
+          <folding>
+            <element signature="docComment;class#ContractServiceImpl#0" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/FlowChangeRepository.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="535">
-          <caret line="65" column="19" selection-start-line="65" selection-start-column="19" selection-end-line="65" selection-end-column="19" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state relative-caret-position="112">
+          <caret line="11" column="14" selection-start-line="11" selection-start-column="14" selection-end-line="11" selection-end-column="14" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/util/Constant.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/model/ContractChange.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="256">
-          <caret line="19" column="71" selection-start-line="19" selection-start-column="71" selection-end-line="19" selection-end-column="71" />
+        <state relative-caret-position="381">
+          <caret line="33" column="3" selection-start-line="33" selection-start-column="3" selection-end-line="34" selection-end-column="55" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#3389#3390#0" expanded="true" />
+            <element signature="e#3417#3418#0" expanded="true" />
+            <element signature="e#3459#3460#0" expanded="true" />
+            <element signature="e#3493#3494#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/common/model/Contract.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/model/ContractMoney.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3392">
-          <caret line="357" selection-start-line="357" selection-start-column="2" selection-end-line="363" selection-end-column="7" />
+        <state relative-caret-position="128">
+          <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pom.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/resources/spring/applicationContext.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="45">
-          <caret line="97" column="13" selection-start-line="97" selection-start-column="13" selection-end-line="97" selection-end-column="17" />
+        <state relative-caret-position="400">
+          <caret line="121" column="57" selection-start-line="121" selection-start-column="51" selection-end-line="121" selection-end-column="57" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/util/MailUtils.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/common/model/FlowChange.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="178">
-          <caret line="105" column="18" selection-start-line="105" selection-start-column="14" selection-end-line="105" selection-end-column="18" />
+        <state relative-caret-position="48">
+          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#604#605#0" expanded="true" />
+            <element signature="e#629#630#0" expanded="true" />
+            <element signature="e#732#733#0" expanded="true" />
+            <element signature="e#771#772#0" expanded="true" />
+            <element signature="e#1865#1866#0" expanded="true" />
+            <element signature="e#1900#1901#0" expanded="true" />
+            <element signature="e#1956#1957#0" expanded="true" />
+            <element signature="e#2004#2005#0" expanded="true" />
+            <element signature="e#2036#2037#0" expanded="true" />
+            <element signature="e#2064#2065#0" expanded="true" />
+            <element signature="e#2106#2107#0" expanded="true" />
+            <element signature="e#2140#2141#0" expanded="true" />
+            <element signature="e#2174#2175#0" expanded="true" />
+            <element signature="e#2204#2205#0" expanded="true" />
+            <element signature="e#2250#2251#0" expanded="true" />
+            <element signature="e#2288#2289#0" expanded="true" />
+            <element signature="e#2351#2352#0" expanded="true" />
+            <element signature="e#2379#2380#0" expanded="true" />
+            <element signature="e#2421#2422#0" expanded="true" />
+            <element signature="e#2455#2456#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
diff --git a/src/main/java/common/controller/ContractController.java b/src/main/java/common/controller/ContractController.java
index 90ef97d..6035f18 100644
--- a/src/main/java/common/controller/ContractController.java
+++ b/src/main/java/common/controller/ContractController.java
@@ -1,9 +1,6 @@
 package common.controller;
 
-import common.model.Contract;
-import common.model.ContractChange;
-import common.model.ContractMoney;
-import common.model.User;
+import common.model.*;
 import common.service.ContractService;
 import common.task.ContractSendEmailThread;
 import dic.ContractStatusEnum;
@@ -200,7 +197,6 @@ public class ContractController {
         Contract contract1 = service.create(loginAccount, contract);
         NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), contract1.getContractCode(), "新建合同","",contract1.toString(), request, platform);
         userlog.start();
-//
 //        ContractSendEmailThread email = new ContractSendEmailThread(contract);
 //        email.start();
         return ResultModel.OK(contract1);
@@ -226,13 +222,23 @@ public class ContractController {
 
     @RequestMapping(value = "change", method = RequestMethod.POST)
     @ResponseBody
-    public ResultModel change(@CurrentAccount User loginAccount, @RequestBody ContractChange contract, HttpServletRequest request, @PathVariable String platform) {
-        Contract contract1 = service.change(loginAccount, contract);
+    public ResultModel change(@CurrentAccount User loginAccount,
+                              @RequestBody FlowChange flowChange,
+                              @RequestBody ContractChange contract, HttpServletRequest request, @PathVariable String platform) {
+        Contract contract1 = service.change(loginAccount, contract,flowChange);
         NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), contract1.getContractCode(), "修改套餐","",contract1.toString(), request, platform);
         userlog.start();
         return ResultModel.OK(contract1);
     }
 
+    /**
+     *
+     * @param loginAccount
+     * @param startDate
+     * @param endDate
+     * @param code
+     * @return
+     */
     @RequestMapping(value = "find/pay", method = RequestMethod.GET)
     @ResponseBody
     public ResultModel findPay(@CurrentAccount User loginAccount, @RequestParam String startDate,
@@ -295,6 +301,14 @@ public class ContractController {
     }
 
 
+    @RequestMapping(value = "codecheck", method = RequestMethod.GET)
+    @ResponseBody
+    public ResultModel codeCheck( @PathVariable String platform,String contractCode) {
+
+        return ResultModel.OK(service.contractCodeCheck(platform,contractCode));
+    }
+
+
 
 
 }
diff --git a/src/main/java/common/model/Contract.java b/src/main/java/common/model/Contract.java
index ca1ad98..2adb8d3 100644
--- a/src/main/java/common/model/Contract.java
+++ b/src/main/java/common/model/Contract.java
@@ -43,7 +43,7 @@ public class Contract {
     private String type;
     private Long priceName;
     private Boolean old;
-    private Long extraFlow;
+    private Long extraFlow; // 优惠流量
 
     private Long modifyAccount;
     private Long createAccount;// 创建人id
diff --git a/src/main/java/common/model/ContractChange.java b/src/main/java/common/model/ContractChange.java
index 42a2a1c..821ffe2 100644
--- a/src/main/java/common/model/ContractChange.java
+++ b/src/main/java/common/model/ContractChange.java
@@ -18,6 +18,7 @@ public class ContractChange {
     private String ds;
     private String type;
     private String content;
+    private String marke; //备注
     private Long level;
     private Long money;
     private Long user;
@@ -167,4 +168,12 @@ public class ContractChange {
     public void setLevelName(String levelName) {
         this.levelName = levelName;
     }
+
+    public String getMarke() {
+        return marke;
+    }
+
+    public void setMarke(String marke) {
+        this.marke = marke;
+    }
 }
diff --git a/src/main/java/common/model/FlowChange.java b/src/main/java/common/model/FlowChange.java
new file mode 100644
index 0000000..d30130f
--- /dev/null
+++ b/src/main/java/common/model/FlowChange.java
@@ -0,0 +1,140 @@
+package common.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.util.Date;
+
+
+@Entity
+public class FlowChange {
+
+    private Long id;
+    private Long discountTimeLong; // 优惠时长
+    private Long discountFlow; // 优惠时长
+    private Long modifyUser;
+    private String modifyUname;
+    private String addDate;
+    private Date addTime;
+    private int DelFlag;
+    private String marke; //备注
+
+    private String contractCode;
+    private String email;
+    private  String company;
+
+    public FlowChange() {
+    }
+
+    @Id
+    @GeneratedValue
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getDiscountTimeLong() {
+        return discountTimeLong;
+    }
+
+    public void setDiscountTimeLong(Long discountTimeLong) {
+        this.discountTimeLong = discountTimeLong;
+    }
+
+    public Long getDiscountFlow() {
+        return discountFlow;
+    }
+
+    public void setDiscountFlow(Long discountFlow) {
+        this.discountFlow = discountFlow;
+    }
+
+    public Long getModifyUser() {
+        return modifyUser;
+    }
+
+    public void setModifyUser(Long modifyUser) {
+        this.modifyUser = modifyUser;
+    }
+
+    public String getModifyUname() {
+        return modifyUname;
+    }
+
+    public void setModifyUname(String modifyUname) {
+        this.modifyUname = modifyUname;
+    }
+
+    public String getAddDate() {
+        return addDate;
+    }
+
+    public void setAddDate(String addDate) {
+        this.addDate = addDate;
+    }
+
+    public Date getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        this.addTime = addTime;
+    }
+
+    public int getDelFlag() {
+        return DelFlag;
+    }
+
+    public void setDelFlag(int delFlag) {
+        DelFlag = delFlag;
+    }
+
+    public String getContractCode() {
+        return contractCode;
+    }
+
+    public void setContractCode(String contractCode) {
+        this.contractCode = contractCode;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
+    public String getMarke() {
+        return marke;
+    }
+
+    public void setMarke(String marke) {
+        this.marke = marke;
+    }
+
+    @Override
+    public String toString() {
+        return "FlowChange{" +
+                "id=" + id +
+                ", discountTimeLong=" + discountTimeLong +
+                ", discountFlow=" + discountFlow +
+                ", modifyUser=" + modifyUser +
+                ", modifyUname='" + modifyUname + '\'' +
+                ", addDate='" + addDate + '\'' +
+                ", addTime=" + addTime +
+                ", DelFlag=" + DelFlag +
+                '}';
+    }
+}
diff --git a/src/main/java/common/repository/FlowChangeRepository.java b/src/main/java/common/repository/FlowChangeRepository.java
new file mode 100644
index 0000000..71fbedc
--- /dev/null
+++ b/src/main/java/common/repository/FlowChangeRepository.java
@@ -0,0 +1,13 @@
+package common.repository;
+
+import common.model.FlowChange;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface FlowChangeRepository extends JpaRepository<FlowChange, Long> {
+
+    @Query(value = "",nativeQuery = true)
+    List<FlowChange> findByDs(String startDate, String endDate, String code);
+}
diff --git a/src/main/java/common/service/ContractService.java b/src/main/java/common/service/ContractService.java
index b1cd8e3..6ba8b1c 100644
--- a/src/main/java/common/service/ContractService.java
+++ b/src/main/java/common/service/ContractService.java
@@ -37,7 +37,7 @@ public interface ContractService {
 
     ContractMoney pay(User loginUser, ContractMoney resource);
 
-    Contract change(User loginUser, ContractChange resource);
+    Contract change(User loginUser, ContractChange resource, FlowChange flowChange);
 
     List<ContractMoney> findPay(String startDate, String endDate, String code);
 
@@ -58,4 +58,6 @@ public interface ContractService {
 //    List<Contract> findAllContract(User loginAccount, String startDate, String endDate, String platform, String contractId);
 
     Contract contractStatusUpdate(String platform, String contractId, String status);
+
+    Map contractCodeCheck(String platform, String contractCode);
 }
\ No newline at end of file
diff --git a/src/main/java/common/service/impl/ContractServiceImpl.java b/src/main/java/common/service/impl/ContractServiceImpl.java
index fb4db3c..4c19529 100644
--- a/src/main/java/common/service/impl/ContractServiceImpl.java
+++ b/src/main/java/common/service/impl/ContractServiceImpl.java
@@ -10,6 +10,7 @@ import common.service.UserService;
 import dic.ContractStatusEnum;
 import dic.ContractTypeEnum;
 import dic.RoleEnum;
+import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -95,6 +96,10 @@ public class ContractServiceImpl implements ContractService {
     ContractRelationRepository contractRelationRepository;
 
 
+    @Autowired
+    FlowChangeRepository flowChangeRepository;
+
+
     @Override
     public Map<String, Object> checkAccount(String email, String platfrom) {
         Map<String, Object> map = new HashMap<>();
@@ -301,24 +306,9 @@ public class ContractServiceImpl implements ContractService {
 
         resource.setDs(DateUtil.getBeforeDays(0));
 
-//        if (resource.getType().equals("main")) {
-//            if (resource.getPlatform().equals("tkio")) {
-//                if (!(extraFlow.longValue() == 0)) {
-//                    if (resource.getPlatform().equals("tkio")) {
-//                        IncrementFlow flow = new IncrementFlow();
-//                        Account account = accountRepository.findByEmail(resource.getEmail());
-//                        flow.setAccount(account.getId());
-//                        flow.setFlow(extraFlow);
-//                        flow.setEndDate(resource.getEndDate());
-//                        flow.setStartDate(resource.getStartDate());
-//                        flow.setContractCode(resource.getContractCode());
-//                        incrementFlowRepository.save(flow);
-//                    }
-//                }
-//            }
-//        }
+        this.saveIncrementFlow(resource,extraFlow);
 
-        this.dealContractStatus(resource);
+        this.dealContractStatus(resource,loginUser,"save");
 
         if (resource.getRelationContract() == null) {
             resource.setRelationContract(-1L);
@@ -353,6 +343,26 @@ public class ContractServiceImpl implements ContractService {
     }
 
 
+    private void saveIncrementFlow( Contract resource, Long extraFlow){
+        if (resource.getType().equals("main")) {
+            if (resource.getPlatform().equals("tkio")) {
+                if (!(extraFlow.longValue() == 0)) {
+                    if (resource.getPlatform().equals("tkio")) {
+                        IncrementFlow flow = new IncrementFlow();
+                        Account account = accountRepository.findByEmail(resource.getEmail());
+                        flow.setAccount(account.getId());
+                        flow.setFlow(extraFlow);
+                        flow.setEndDate(resource.getEndDate());
+                        flow.setStartDate(resource.getStartDate());
+                        flow.setContractCode(resource.getContractCode());
+                        incrementFlowRepository.save(flow);
+                    }
+                }
+            }
+        }
+    }
+
+
     private void saveContractRelations(Contract resource,Long contractId){
         if (resource.getRelationContract() != null && resource.getRelationContract() > 0) {
             //保存关联合同信息
@@ -547,7 +557,7 @@ public class ContractServiceImpl implements ContractService {
 
 
 
-        this.dealContractStatus(resource);
+        this.dealContractStatus(resource,loginUser,"update");
 
 
         if (!resource.getStartDate().equals(contract.getStartDate())) {
@@ -660,7 +670,8 @@ public class ContractServiceImpl implements ContractService {
     }
 
 
-    private void dealContractStatus(Contract resource){
+    private void dealContractStatus(Contract resource,User loginUser,String type){
+
         if (resource.getRebateMoney() != null) {
             if (resource.getMoney() == null) {
                 resource.setMoney(0L);
@@ -673,11 +684,24 @@ public class ContractServiceImpl implements ContractService {
             }else if(resource.getRebateMoney().compareTo(new BigDecimal(resource.getMoney()+""))< 0){
                 // 部分回款
                 resource.setStatus(ContractStatusEnum.MONEY_BACK_PART.getKey());
+
+                //记录收款记录
+                ContractMoney money = new ContractMoney();
+                money.setType("pay");
+                saveContractMoney(money,loginUser,resource,type);
+
+
             }else{
                 // 已回款
                 resource.setStatus(ContractStatusEnum.MONEY_BACK_ALL.getKey());
+                ContractMoney money = new ContractMoney();
+                money.setType("pay");
+                saveContractMoney(money,loginUser,resource,type);
             }
 
+
+
+
         } else {
             //未回款
             resource.setStatus(ContractStatusEnum.MONEY_BACK_NONE.getKey());
@@ -689,6 +713,11 @@ public class ContractServiceImpl implements ContractService {
 
         if (resource.getInvoiceMoney() == null) {
             resource.setInvoiceMoney(new BigDecimal(0));
+        }else{
+            // 记录发票记录
+            ContractMoney money = new ContractMoney();
+            money.setType("invoice");
+            saveContractMoney(money,loginUser,resource,type);
         }
 
         if (resource.getDiscountTimeLong() == null) {
@@ -698,8 +727,66 @@ public class ContractServiceImpl implements ContractService {
         if (resource.getExtraFlow() == null) {
             resource.setExtraFlow(0L);
         }
+
+        if(resource.getDiscountTimeLong()> 0 || resource.getExtraFlow()> 0){
+            //记录优惠信息
+            saveFlowChange(resource,loginUser,type);
+        }
+    }
+
+
+    //保存开票收款记录
+    private void saveContractMoney(ContractMoney money,User loginUser,Contract contract,String type){
+
+        if(!"save".equals(type)){
+            return;
+        }
+
+        if (money.getType().equals("pay")) {
+            contract.setPayMoney(contract.getMoney());
+        } else {
+            contract.setInvoice(contract.getInvoiceMoney().longValue());
+        }
+
+        money.setCompany(contract.getMyBodyName());
+        money.setContractCode(contract.getContractCode());
+        money.setPlatform(contract.getPlatform());
+        money.setEmail(contract.getEmail());
+
+        money.setPlatform(contract.getPlatform());
+        money.setCreateAccount(loginUser.getId());
+        money.setCreateTime(new Date());
+        money.setUser(loginUser.getId());
+        money.setCreateName(loginUser.getName());
+        money.setDs(new DateTime().toString("yyyy-MM-dd"));
+        contractMoneyRepository.save(money);
     }
 
+    // 保存优惠流量 优惠时长 记录
+    private void saveFlowChange(Contract contract,User loginUser,String type){
+
+        if(!"save".equals(type)){
+            return;
+        }
+
+        FlowChange  change = new FlowChange();
+        change.setDiscountFlow(contract.getExtraFlow());
+        change.setDiscountTimeLong(contract.getDiscountTimeLong());
+        change.setAddDate(new DateTime().toString("yyyy-MM-dd"));
+        change.setAddTime(new Date());
+        change.setCompany(contract.getMyBodyName());
+        change.setContractCode(contract.getContractCode());
+        change.setDelFlag(0);
+        change.setEmail(contract.getEmail());
+        change.setModifyUname(loginUser.getName());
+        change.setModifyUser(loginUser.getId());
+        flowChangeRepository.save(change);
+
+    }
+
+
+
+
 
     /**
      *
@@ -964,34 +1051,44 @@ public class ContractServiceImpl implements ContractService {
     }
 
     @Override
-    public Contract change(User loginUser, ContractChange resource) {
+    public Contract change(User loginUser, ContractChange resource, FlowChange flowChange) {
         Map<Long, String> packageMap = getPackageMap();
         Map<Long, String> saleMap = getSaleMap();
         Contract contract = contractRepository.findByCode(resource.getContractCode());
         if (resource.getType().equals("price")) {
-            resource.setContent("套餐变更 :" + packageMap.get(contract.getPriceLevel()) + "-->" + packageMap.get(resource.getLevel())
-                    + " 金额变更 :" + contract.getMoney() + "-->" + (resource.getMoney() + contract.getMoney()));
+//            resource.setContent("套餐变更 :" + packageMap.get(contract.getPriceLevel()) + "-->" + packageMap.get(resource.getLevel())
+//                    + " 金额变更 :" + contract.getMoney() + "-->" + (resource.getMoney() + contract.getMoney()));
 
+            resource.setContent(packageMap.get(contract.getPriceLevel()+"改为"+packageMap.get(resource.getLevel())));
+            resource.setContent(contract.getMoney()+"元改为"+resource.getMoney()+"元");
             contract.setMoney(resource.getMoney() + contract.getMoney());
             contract.setPriceLevel(resource.getLevel());
+
             Double rebat = getRebat(contract.getProduct(), contract.getPriceLevel().intValue(), contract.getMoney());
             BigDecimal bg = new BigDecimal(rebat);
             double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
             contract.setRebate(f1);
 
-            //同步修改trackingio的数据
-            if (contract.getPlatform().equals("tkio")) {
-                accountService.update(contract);
-            } else if (contract.getPlatform().equals("io")) {
-                accountIOService.update(contract);
-            }
+//            //同步修改trackingio的数据
+//            if (contract.getPlatform().equals("tkio")) {
+//                accountService.update(contract);
+//            } else if (contract.getPlatform().equals("io")) {
+//                accountIOService.update(contract);
+//            }
+        }else if("give".equals(resource.getType())){
+            //变更优惠
+            this.saveFlowChange(contract,loginUser,"save");
+            contract.setExtraFlow(contract.getExtraFlow()+flowChange.getDiscountFlow());
+            contract.setDiscountTimeLong(contract.getDiscountTimeLong()+flowChange.getDiscountTimeLong());
+
         } else {
-            //同步修改trackingio的数据
-            if (contract.getPlatform().equals("tkio") && contract.getType().equals("main")) {
-                accountService.forbiden(contract);
-            } else if (contract.getPlatform().equals("io") && contract.getType().equals("main")) {
-                accountIOService.update(contract);
-            }
+//            //同步修改trackingio的数据
+//            if (contract.getPlatform().equals("tkio") && contract.getType().equals("main")) {
+//                accountService.forbiden(contract);
+//            } else if (contract.getPlatform().equals("io") && contract.getType().equals("main")) {
+//                accountIOService.update(contract);
+//            }
+            //状态变更
             contract.setStatus("cancel");
         }
         resource.setPlatform(contract.getPlatform());
@@ -1044,6 +1141,11 @@ public class ContractServiceImpl implements ContractService {
                 result.add(cm);
             }
         }
+
+        List<FlowChange> flowChanges = flowChangeRepository.findByDs(startDate, endDate, code);
+
+
+
         return result;
     }
 
@@ -1158,6 +1260,22 @@ public class ContractServiceImpl implements ContractService {
         return result;
     }
 
+
+    @Override
+    public Map contractCodeCheck(String platform, String contractCode) {
+
+        Contract contractExist = contractRepository.findByCodePlatform(contractCode, platform);
+
+        Map<String,String> data = new HashMap<>();
+
+        if(contractExist!=null){
+            data.put("exist","true");
+        }else{
+            data.put("exist","false");
+        }
+        return data;
+    }
+
     public Map<Long, String> getPackageMap() {
         List<PackageType> typeList = packageTypeRepository.findAll();
         Map<Long, String> typeMap = new HashMap<>();
@@ -1180,6 +1298,7 @@ public class ContractServiceImpl implements ContractService {
         return saleMap;
     }
 
+
     public static Map<String, String> convertBean(Object bean) throws IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
         Class type = bean.getClass();
         Map<String, String> returnMap = new HashMap<String, String>();
@@ -1208,16 +1327,8 @@ public class ContractServiceImpl implements ContractService {
     }
 
 
-//    public static void main(String[] args) {
-//
-//        ContractServiceImpl contractService = new ContractServiceImpl();
-//        try {
-//            Map data = contractService.dealContractChangeMap(new Contract(), new Contract());
-//            System.out.println(data);
-//
-//        } catch (IllegalAccessException e) {
-//            e.printStackTrace();
-//        }
-//
-//    }
+
+
+
+
 }
--
libgit2 0.27.1