夏文涛 2 vuotta sitten
vanhempi
commit
bc7f681f1d
27 muutettua tiedostoa jossa 1160 lisäystä ja 308 poistoa
  1. 1 0
      .idea/encodings.xml
  2. 302 263
      .idea/workspace.xml
  3. 25 4
      src/main/java/com/repair/api/RepairRecordControllerAPI.java
  4. 0 1
      src/main/java/com/repair/controller/RepairPayRecordController.java
  5. 507 10
      src/main/java/com/repair/controller/RepairRecordController.java
  6. 8 4
      src/main/java/com/repair/mapper/RepairRecordMapper.java
  7. 2 2
      src/main/java/com/repair/model/enumModel/ePayPageStatu.java
  8. 37 0
      src/main/java/com/repair/model/enumModel/ePayStatu.java
  9. 1 1
      src/main/java/com/repair/model/pojo/RepairPayRecord.java
  10. 31 0
      src/main/java/com/repair/model/request/WxPayRequest.java
  11. 86 0
      src/main/java/com/repair/model/result/WechatUnifiedOrder.java
  12. 2 0
      src/main/java/com/repair/services/RepairPayRecordService.java
  13. 8 4
      src/main/java/com/repair/services/RepairRecordService.java
  14. 2 0
      src/main/java/com/repair/services/RepairUserService.java
  15. 10 1
      src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java
  16. 29 9
      src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java
  17. 8 0
      src/main/java/com/repair/services/impl/RepairUserServiceImpl.java
  18. 2 2
      src/main/resources/application-prod.yml
  19. 1 1
      src/main/resources/application.yml
  20. 1 1
      src/main/resources/mapper/repair/RepairPayRecordMapper.xml
  21. 83 1
      src/main/resources/mapper/repair/RepairRecordMapper.xml
  22. 2 2
      target/classes/application-prod.yml
  23. 1 1
      target/classes/application.yml
  24. 7 1
      target/classes/mapper/repair/RepairRecordMapper.xml
  25. 2 0
      target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  26. 2 0
      target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  27. BIN
      target/repair_system-0.0.1-SNAPSHOT.jar.original

+ 1 - 0
.idea/encodings.xml

@@ -9,6 +9,7 @@
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxConstants.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxUtil.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/AlterPriceRequest.java" charset="GBK" />
+    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/WxPayRequest.java" charset="GBK" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/result/Wx_user.java" charset="UTF-8" />
     <file url="PROJECT" charset="UTF-8" />
   </component>

+ 302 - 263
.idea/workspace.xml

@@ -2,8 +2,31 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="33456f28-da03-4d10-99dd-fd9bd193cf84" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayStatu.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/WxPayRequest.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/result/WechatUnifiedOrder.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayPageStatu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayPageStatu.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairPayRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairPayRecord.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application-prod.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-prod.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/application-prod.yml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/application-prod.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/repair/RepairRecordMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/repair_system-0.0.1-SNAPSHOT.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/target/repair_system-0.0.1-SNAPSHOT.jar.original" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -36,94 +59,85 @@
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="102">
-              <caret line="289" column="46" selection-start-line="289" selection-start-column="46" selection-end-line="289" selection-end-column="46" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/resources/application-dev.yml">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="548">
-              <caret line="64" column="28" selection-start-line="64" selection-start-column="10" selection-end-line="64" selection-end-column="28" />
+            <state relative-caret-position="440">
+              <caret line="146" selection-start-line="146" selection-end-line="146" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="33">
-              <caret line="202" selection-start-line="202" selection-end-line="202" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
+            <state relative-caret-position="621">
+              <caret line="32" column="42" selection-start-line="32" selection-start-column="20" selection-end-line="32" selection-end-column="42" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/handler/MyMetaObjectHandler.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/UUIDUtils.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="410">
-              <caret line="36" selection-start-line="36" selection-end-line="36" />
+            <state relative-caret-position="184">
+              <caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eIsSuper.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="294">
-              <caret line="54" column="30" selection-start-line="54" selection-start-column="14" selection-end-line="54" selection-end-column="30" />
+            <state relative-caret-position="184">
+              <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayStatu.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="20">
-              <caret line="168" column="119" selection-start-line="168" selection-start-column="119" selection-end-line="168" selection-end-column="119" />
+            <state relative-caret-position="276">
+              <caret line="12" column="18" lean-forward="true" selection-start-line="12" selection-start-column="18" selection-end-line="12" selection-end-column="18" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="282">
-              <caret line="33" column="223" selection-start-line="33" selection-start-column="223" selection-end-line="33" selection-end-column="223" />
+            <state relative-caret-position="23">
+              <caret line="78" column="25" selection-start-line="78" selection-start-column="25" selection-end-line="78" selection-end-column="25" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-128">
-              <caret line="139" column="57" selection-start-line="139" selection-start-column="41" selection-end-line="139" selection-end-column="57" />
+            <state relative-caret-position="447">
+              <caret line="79" column="63" selection-start-line="79" selection-start-column="11" selection-end-line="79" selection-end-column="63" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java">
+        <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-2767">
-              <caret line="259" column="55" selection-start-line="259" selection-start-column="24" selection-end-line="259" selection-end-column="55" />
+            <state relative-caret-position="391">
+              <caret line="17" column="4" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairPayRecord.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="268">
-              <caret line="38" column="33" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="33" />
+            <state relative-caret-position="287">
+              <caret line="62" column="19" selection-start-line="62" selection-start-column="19" selection-end-line="62" selection-end-column="19" />
             </state>
           </provider>
         </entry>
@@ -140,14 +154,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>querySystemMessagePage</find>
-      <find>new RepairSystemMessages()</find>
-      <find>rsmU.setIsRead(0);</find>
-      <find>new RepairSystemMessages();</find>
-      <find>+&quot;,&quot;</find>
-      <find>合法</find>
-      <find>updateAddressBookRequest</find>
-      <find>RepairCardNumberVo</find>
       <find>queryClassesSettingList</find>
       <find>build</find>
       <find>/queryProsperityRepairPayRecords</find>
@@ -170,6 +176,14 @@
       <find>keyWord</find>
       <find>autoDispatchUser</find>
       <find>ipconfig</find>
+      <find>BigDecimal</find>
+      <find>getRepairRecordsByUserId</find>
+      <find>queryMyRepairRecordList</find>
+      <find>COUNT(IF(</find>
+      <find>new BigDecimal</find>
+      <find>小于</find>
+      <find>isS</find>
+      <find>revokeRepairRecordById</find>
     </findStrings>
     <replaceStrings>
       <replace>RepairConsume</replace>
@@ -210,15 +224,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairTrackRecord.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairSystemMessagesMapper.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/CollaborateDetailVo.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairCollaborateRecordMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/TransferDetailVo.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairTransferRecordMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairCollaborateRecord.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairTransferRecord.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/request/repairRecordRequest.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/request/finishOrderRequest.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairRecord.java" />
@@ -234,9 +239,7 @@
         <option value="$PROJECT_DIR$/src/main/java/com/repair/config/ScheduledConfig.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairEvaluateServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSystemMessagesMapper.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/SystemMessagePageVo.java" />
@@ -248,19 +251,30 @@
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairSystemMessagesController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/application-prod.yml" />
         <option value="$PROJECT_DIR$/src/main/resources/application-dev.yml" />
-        <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxCodeVo.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/result/WechatUnifiedOrder.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/request/WxPayRequest.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java" />
+        <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" />
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" />
+        <option value="$PROJECT_DIR$/src/main/resources/application-prod.yml" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayPageStatu.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairPayRecord.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayStatu.java" />
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" />
       </list>
     </option>
   </component>
@@ -292,8 +306,8 @@
   <component name="MavenRunner">
     <option name="skipTests" value="true" />
   </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="-7" />
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="953" />
     <option name="width" value="974" />
     <option name="height" value="1039" />
   </component>
@@ -345,7 +359,26 @@
               <item name="main" type="462c0819:PsiDirectoryNode" />
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="repair" type="462c0819:PsiDirectoryNode" />
-              <item name="api" type="462c0819:PsiDirectoryNode" />
+              <item name="common" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="common" type="462c0819:PsiDirectoryNode" />
+              <item name="utils" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="config" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
@@ -363,7 +396,37 @@
               <item name="main" type="462c0819:PsiDirectoryNode" />
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="repair" type="462c0819:PsiDirectoryNode" />
-              <item name="mapper" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
+              <item name="enumModel" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
+              <item name="request" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
+              <item name="result" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
@@ -412,7 +475,7 @@
     <property name="RequestMappingsPanelWidth1" value="75" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../../校车预约移动端/carBooksDevelopV" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="project.structure.last.edited" value="Artifacts" />
@@ -431,10 +494,10 @@
       <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources\excelFile" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
-      <recent name="com.repair.model.vo" />
+      <recent name="com.repair.model.enumModel" />
       <recent name="com.repair.model.request" />
+      <recent name="com.repair.model.vo" />
       <recent name="com.repair.api" />
-      <recent name="com.repair.model.enumModel" />
       <recent name="com.repair.common.utils" />
     </key>
     <key name="MoveFile.RECENT_KEYS">
@@ -579,12 +642,12 @@
       <workItem from="1692275638971" duration="254000" />
       <workItem from="1692276778311" duration="8094000" />
       <workItem from="1692328425694" duration="3410000" />
-      <workItem from="1692338996790" duration="10173000" />
+      <workItem from="1692338996790" duration="18557000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="791243000" />
+    <option name="totallyTimeSpent" value="799627000" />
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -596,7 +659,7 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="-7" y="0" width="974" height="1039" extended-state="0" />
+    <frame x="-8" y="-8" width="1936" height="1048" extended-state="6" />
     <editor active="true" />
     <layout>
       <window_info id="Designer" order="0" />
@@ -608,11 +671,11 @@
       <window_info id="Ant Build" order="6" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
       <window_info id="Favorites" order="7" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
       <window_info id="Web" order="8" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
-      <window_info active="true" content_ui="combo" id="Project" order="9" sideWeight="0.5021882" visible="true" weight="0.2713348" />
+      <window_info active="true" content_ui="combo" id="Project" order="9" sideWeight="0.5021882" visible="true" weight="0.18496802" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32603937" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.3402626" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.83369803" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.76132596" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.8249453" />
       <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" weight="0.32932165" />
@@ -628,7 +691,7 @@
       <window_info anchor="bottom" id="Event Log" order="16" weight="0.32822758" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="1" weight="0.25" />
-      <window_info anchor="right" id="Maven" order="2" weight="0.8107221" />
+      <window_info anchor="right" id="Maven" order="2" weight="0.7297593" />
       <window_info anchor="right" id="Palette" order="3" />
       <window_info anchor="right" id="Capture Analysis" order="4" />
       <window_info anchor="right" id="Database" order="5" weight="0.32889125" />
@@ -730,13 +793,13 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1061</line>
+          <line>1134</line>
           <properties />
           <option name="timeStamp" value="263" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1767</line>
+          <line>1840</line>
           <properties />
           <option name="timeStamp" value="264" />
         </line-breakpoint>
@@ -760,13 +823,13 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1168</line>
+          <line>1241</line>
           <properties />
           <option name="timeStamp" value="274" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1378</line>
+          <line>1451</line>
           <properties />
           <option name="timeStamp" value="275" />
         </line-breakpoint>
@@ -790,13 +853,13 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>251</line>
+          <line>324</line>
           <properties />
           <option name="timeStamp" value="305" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>89</line>
+          <line>162</line>
           <properties />
           <option name="timeStamp" value="306" />
         </line-breakpoint>
@@ -808,363 +871,339 @@
     <option name="FILTER_TARGETS" value="false" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/org/springframework/aop/framework/CglibAopProxy.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="267">
-          <caret line="457" column="22" selection-start-line="457" selection-start-column="22" selection-end-line="457" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/ScheduledConfig.java" />
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/org/springframework/scheduling/support/ScheduledMethodRunnable.class">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="494">
-          <caret line="38" column="44" selection-start-line="38" selection-start-column="44" selection-end-line="38" selection-end-column="44" />
+        <state relative-caret-position="1564">
+          <caret line="76" column="25" selection-start-line="76" selection-start-column="25" selection-end-line="76" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/org/springframework/cglib/proxy/MethodProxy.class">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxCodeVo.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="55">
-          <caret line="103" column="45" selection-start-line="103" selection-start-column="45" selection-end-line="103" selection-end-column="45" />
+        <state relative-caret-position="299">
+          <caret line="15" column="16" selection-start-line="15" selection-start-column="16" selection-end-line="15" selection-end-column="16" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="219">
-          <caret line="54" column="78" selection-start-line="54" selection-start-column="78" selection-end-line="54" selection-end-column="78" />
+        <state relative-caret-position="345">
+          <caret line="15" column="25" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java" />
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="332">
-          <caret line="18" column="17" selection-start-line="18" selection-start-column="17" selection-end-line="18" selection-end-column="17" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state relative-caret-position="268">
+          <caret line="38" column="33" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="33" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairReceivingServiceImpl.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1048">
-          <caret line="28" column="13" selection-start-line="28" selection-start-column="13" selection-end-line="28" selection-end-column="13" />
+        <state relative-caret-position="282">
+          <caret line="33" column="223" selection-start-line="33" selection-start-column="223" selection-end-line="33" selection-end-column="223" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSystemMessagesMapper.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/handler/MyMetaObjectHandler.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="69">
-          <caret line="3" column="53" lean-forward="true" selection-start-line="3" selection-start-column="53" selection-end-line="3" selection-end-column="53" />
+        <state relative-caret-position="410">
+          <caret line="36" selection-start-line="36" selection-end-line="36" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/SystemMessagePageVo.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/result/Wx_user.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="529">
-          <caret line="26" column="11" selection-start-line="26" selection-start-column="11" selection-end-line="26" selection-end-column="11" />
+        <state relative-caret-position="46">
+          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairEvaluateServiceImpl.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/result/WechatUnifiedOrder.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="801">
-          <caret line="89" column="67" selection-start-line="89" selection-start-column="67" selection-end-line="89" selection-end-column="67" />
+        <state relative-caret-position="332">
+          <caret line="69" column="30" selection-start-line="69" selection-start-column="30" selection-end-line="69" selection-end-column="30" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairSystemMessagesService.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="575">
-          <caret line="34" column="70" selection-start-line="34" selection-start-column="70" selection-end-line="34" selection-end-column="70" />
+        <state relative-caret-position="263">
+          <caret line="320" column="9" lean-forward="true" selection-start-line="320" selection-start-column="9" selection-end-line="320" selection-end-column="9" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairSystemMessagesController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/AlterPriceRequest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1610">
-          <caret line="80" column="62" selection-start-line="80" selection-start-column="62" selection-end-line="80" selection-end-column="62" />
+        <state relative-caret-position="414">
+          <caret line="23" column="12" selection-start-line="23" selection-start-column="12" selection-end-line="23" selection-end-column="12" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairSystemMessagesControllerAPI.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="644">
-          <caret line="34" column="43" selection-start-line="34" selection-start-column="26" selection-end-line="34" selection-end-column="43" />
+        <state relative-caret-position="253">
+          <caret line="23" column="20" selection-start-line="23" selection-start-column="20" selection-end-line="23" selection-end-column="20" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairSystemMessagesServiceImpl.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/WxPayRequest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="621">
-          <caret line="47" column="41" selection-start-line="47" selection-start-column="15" selection-end-line="47" selection-end-column="41" />
+        <state relative-caret-position="598">
+          <caret line="26" column="11" selection-start-line="26" selection-start-column="11" selection-end-line="26" selection-end-column="11" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairLeaveMessageController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2484">
-          <caret line="129" column="15" selection-start-line="129" selection-start-column="15" selection-end-line="129" selection-end-column="15" />
+        <state relative-caret-position="647">
+          <caret line="62" column="48" selection-start-line="62" selection-start-column="48" selection-end-line="62" selection-end-column="48" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="644">
-          <caret line="43" column="39" selection-start-line="43" selection-start-column="39" selection-end-line="43" selection-end-column="39" />
+        <state relative-caret-position="594">
+          <caret line="208" column="39" selection-start-line="208" selection-start-column="22" selection-end-line="208" selection-end-column="39" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairUser.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1449">
-          <caret line="91" column="19" selection-start-line="91" selection-start-column="19" selection-end-line="91" selection-end-column="19" />
+        <state relative-caret-position="292">
+          <caret line="39" column="20" selection-start-line="39" selection-start-column="20" selection-end-line="39" selection-end-column="20" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairArticleTypeController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairRecord.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="292">
-          <caret line="130" column="114" selection-start-line="130" selection-start-column="114" selection-end-line="130" selection-end-column="114" />
+          <caret line="109" column="23" selection-start-line="109" selection-start-column="23" selection-end-line="109" selection-end-column="23" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairUser.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="295">
-          <caret line="51" column="19" selection-start-line="51" selection-start-column="19" selection-end-line="51" selection-end-column="19" />
-        </state>
-      </provider>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/WxAccessTokenMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairUserController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="502">
-          <caret line="221" column="41" selection-start-line="221" selection-start-column="24" selection-end-line="221" selection-end-column="41" />
+        <state relative-caret-position="23">
+          <caret line="139" column="57" selection-start-line="139" selection-start-column="41" selection-end-line="139" selection-end-column="57" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/ClassesSettingVo.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="391">
-          <caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairWorkTypeMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairClassesSettingsServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="272">
-          <caret line="67" column="52" selection-start-line="67" selection-start-column="34" selection-end-line="67" selection-end-column="52" />
-        </state>
-      </provider>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairTransferRecordMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairClassesSettingsMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="322">
-          <caret line="14" column="39" selection-start-line="14" selection-start-column="16" selection-end-line="14" selection-end-column="39" />
-        </state>
-      </provider>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairTrackRecordMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSystemSettingMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSystemMessagesMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSchoolMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/target/classes/mapper/repair/RepairAdminMapper.xml">
+      <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairPayRecordControllerAPI.java">
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="486">
-          <caret line="38" column="125" selection-start-line="38" selection-start-column="118" selection-end-line="38" selection-end-column="125" />
+        <state relative-caret-position="45">
+          <caret line="15" column="12" selection-start-line="15" selection-start-column="12" selection-end-line="15" selection-end-column="12" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxUtil.java">
+    <entry file="file://$PROJECT_DIR$/target/classes/application-prod.yml">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application-dev.yml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="183">
-          <caret line="51" column="37" selection-start-line="51" selection-start-column="37" selection-end-line="51" selection-end-column="37" />
+        <state relative-caret-position="1115">
+          <caret line="64" column="28" selection-start-line="64" selection-start-column="10" selection-end-line="64" selection-end-column="28" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://C:/Program Files/Java/jdk1.8.0_181/src.zip!/java/util/Comparator.java">
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application-prod.yml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="191">
-          <caret line="463" column="69" selection-start-line="463" selection-start-column="69" selection-end-line="463" selection-end-column="69" />
+        <state relative-caret-position="241">
+          <caret line="47" column="17" lean-forward="true" selection-start-line="47" selection-start-column="17" selection-end-line="47" selection-end-column="17" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1311">
-          <caret line="68" column="41" selection-start-line="68" selection-start-column="26" selection-end-line="68" selection-end-column="41" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state relative-caret-position="632">
+          <caret line="32" column="19" selection-start-line="32" selection-start-column="19" selection-end-line="32" selection-end-column="19" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/SmsConfig.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2944">
-          <caret line="172" column="45" selection-start-line="172" selection-start-column="12" selection-end-line="172" selection-end-column="82" />
+        <state relative-caret-position="295">
+          <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/wxLoginVo.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/MySecurity.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="805">
-          <caret line="37" column="31" selection-start-line="37" selection-start-column="25" selection-end-line="37" selection-end-column="31" />
+        <state relative-caret-position="92">
+          <caret line="5" column="10" selection-start-line="5" selection-start-column="10" selection-end-line="5" selection-end-column="10" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/MyBatisPlusConfig.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="736">
-          <caret line="39" column="30" selection-start-line="39" selection-start-column="30" selection-end-line="39" selection-end-column="30" />
+        <state relative-caret-position="184">
+          <caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/MybatisPlusApplication.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="503">
-          <caret line="148" selection-start-line="148" selection-end-line="148" />
+        <state relative-caret-position="161">
+          <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/com/repair/core/SwaggerConfiguration.java">
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="295">
-          <caret line="34" column="17" selection-start-line="34" selection-start-column="17" selection-end-line="34" selection-end-column="17" />
+        <state relative-caret-position="-703">
+          <caret line="7" column="18" selection-start-line="7" selection-start-column="18" selection-end-line="7" selection-end-column="18" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java">
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_181/src.zip!/java/math/BigDecimal.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1564">
-          <caret line="76" column="25" selection-start-line="76" selection-start-column="25" selection-end-line="76" selection-end-column="25" />
+        <state relative-caret-position="295">
+          <caret line="2622" column="15" selection-start-line="2622" selection-start-column="15" selection-end-line="2622" selection-end-column="15" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eRecordStatu.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="184">
-          <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" />
+        <state relative-caret-position="11866">
+          <caret line="569" column="38" lean-forward="true" selection-start-line="569" selection-start-column="38" selection-end-line="569" selection-end-column="38" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayPageStatu.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="614">
-          <caret line="294" column="139" selection-start-line="294" selection-start-column="139" selection-end-line="294" selection-end-column="139" />
+        <state relative-caret-position="161">
+          <caret line="7" column="4" selection-start-line="7" selection-start-column="4" selection-end-line="7" selection-end-column="4" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/application-prod.yml">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eIsSuccess.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="447">
-          <caret line="58" selection-start-line="58" selection-end-line="66" selection-end-column="43" />
+        <state relative-caret-position="46">
+          <caret line="2" column="12" selection-start-line="2" selection-start-column="12" selection-end-line="2" selection-end-column="12" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eIsTop.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="594">
-          <caret line="62" column="8" selection-start-line="62" selection-start-column="2" selection-end-line="62" selection-end-column="8" />
+        <state relative-caret-position="184">
+          <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eIsSuper.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="580">
-          <caret line="32" column="19" selection-start-line="32" selection-start-column="19" selection-end-line="32" selection-end-column="19" />
+        <state relative-caret-position="184">
+          <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxCodeVo.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/ePayStatu.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="299">
-          <caret line="15" column="16" selection-start-line="15" selection-start-column="16" selection-end-line="15" selection-end-column="16" />
+        <state relative-caret-position="276">
+          <caret line="12" column="18" lean-forward="true" selection-start-line="12" selection-start-column="18" selection-end-line="12" selection-end-column="18" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/StrUtils.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="345">
-          <caret line="15" column="25" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="25" />
+        <state relative-caret-position="295">
+          <caret line="31" column="25" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairPayRecord.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="268">
-          <caret line="38" column="33" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="33" />
+        <state relative-caret-position="287">
+          <caret line="62" column="19" selection-start-line="62" selection-start-column="19" selection-end-line="62" selection-end-column="19" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-2767">
-          <caret line="259" column="55" selection-start-line="259" selection-start-column="24" selection-end-line="259" selection-end-column="55" />
+        <state relative-caret-position="23">
+          <caret line="78" column="25" selection-start-line="78" selection-start-column="25" selection-end-line="78" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java">
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="294">
-          <caret line="54" column="30" selection-start-line="54" selection-start-column="14" selection-end-line="54" selection-end-column="30" />
+        <state relative-caret-position="391">
+          <caret line="17" column="4" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-128">
-          <caret line="139" column="57" selection-start-line="139" selection-start-column="41" selection-end-line="139" selection-end-column="57" />
+        <state relative-caret-position="621">
+          <caret line="32" column="42" selection-start-line="32" selection-start-column="20" selection-end-line="32" selection-end-column="42" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="282">
-          <caret line="33" column="223" selection-start-line="33" selection-start-column="223" selection-end-line="33" selection-end-column="223" />
+        <state relative-caret-position="447">
+          <caret line="79" column="63" selection-start-line="79" selection-start-column="11" selection-end-line="79" selection-end-column="63" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eRecordStatu.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="20">
-          <caret line="168" column="119" selection-start-line="168" selection-start-column="119" selection-end-line="168" selection-end-column="119" />
+        <state relative-caret-position="253">
+          <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/handler/MyMetaObjectHandler.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/UUIDUtils.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="410">
-          <caret line="36" selection-start-line="36" selection-end-line="36" />
+        <state relative-caret-position="184">
+          <caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="33">
-          <caret line="202" selection-start-line="202" selection-end-line="202" />
+        <state relative-caret-position="440">
+          <caret line="146" selection-start-line="146" selection-end-line="146" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/application-dev.yml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="548">
-          <caret line="64" column="28" selection-start-line="64" selection-start-column="10" selection-end-line="64" selection-end-column="28" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="102">
-          <caret line="289" column="46" selection-start-line="289" selection-start-column="46" selection-end-line="289" selection-end-column="46" />
-        </state>
-      </provider>
-    </entry>
   </component>
   <component name="masterDetails">
     <states>

+ 25 - 4
src/main/java/com/repair/api/RepairRecordControllerAPI.java

@@ -18,6 +18,11 @@ import java.util.Date;
 @Api(tags = {"RepairRecordController"}, value = "报修记录")
 public interface RepairRecordControllerAPI {
 
+
+    @PostMapping(value = "/pay")
+    @ApiOperation(value = "微信支付", notes = "微信支付", httpMethod = "POST")
+    CommonResult pay(@Validated @RequestBody WxPayRequest wpr, BindingResult bindingResult) throws Exception;
+
     @PostMapping(value = "/insertRepairRecord")
     @ApiOperation(value = "提交报修订单", notes = "提交报修订单", httpMethod = "POST")
     CommonResult InsertRepairRecord(@Validated @RequestBody repairRecordRequest rrr, BindingResult bindingResult) throws Exception;
@@ -180,18 +185,34 @@ public interface RepairRecordControllerAPI {
 
     @GetMapping(value = "/repairArea")
     @ApiOperation(value = "报修区域统计", notes = "报修区域统计", httpMethod = "GET")
-    CommonResult repairArea(@RequestParam int state) throws Exception;
+    CommonResult repairArea(@RequestParam int state,@RequestParam int currentPage, @RequestParam int pageCount) throws Exception;
+
+    @GetMapping(value = "/repairAreaExport")
+    @ApiOperation(value = "报修区域统计导出", notes = "报修区域统计导出", httpMethod = "GET")
+    void repairAreaExport(HttpServletResponse response,@RequestParam int state) throws Exception;
 
     @GetMapping(value = "/maintenanceGoods")
     @ApiOperation(value = "维修物品统计", notes = "维修物品统计", httpMethod = "GET")
-    CommonResult maintenanceGoods(@RequestParam int state) throws Exception;
+    CommonResult maintenanceGoods(@RequestParam int state,@RequestParam int currentPage, @RequestParam int pageCount) throws Exception;
+
+    @GetMapping(value = "/maintenanceGoodsExport")
+    @ApiOperation(value = "维修物品统计导出", notes = "维修物品统计导出", httpMethod = "GET")
+    void maintenanceGoodsExport(HttpServletResponse response,@RequestParam int state) throws Exception;
 
     @GetMapping(value = "/maintenanceWorker")
     @ApiOperation(value = "维修师傅效率统计", notes = "维修师傅效率统计", httpMethod = "GET")
-    CommonResult maintenanceWorker(@RequestParam int state) throws Exception;
+    CommonResult maintenanceWorker(@RequestParam int state,@RequestParam int currentPage, @RequestParam int pageCount) throws Exception;
+
+    @GetMapping(value = "/maintenanceWorkerExport")
+    @ApiOperation(value = "维修师傅效率统计导出", notes = "维修师傅效率统计导出", httpMethod = "GET")
+    void maintenanceWorkerExport(HttpServletResponse response,@RequestParam int state) throws Exception;
 
     @GetMapping(value = "/repairAnalysis")
     @ApiOperation(value = "报修分析统计", notes = "报修分析统计", httpMethod = "GET")
     CommonResult repairAnalysis(@RequestParam int state) throws Exception;
-	
+
+    @GetMapping(value = "/repairTrend")
+    @ApiOperation(value = "报修趋势统计", notes = "报修趋势统计", httpMethod = "GET")
+    CommonResult repairTrend(@RequestParam int state) throws Exception;
+
 }

+ 0 - 1
src/main/java/com/repair/controller/RepairPayRecordController.java

@@ -575,7 +575,6 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
 
         }
 
-
         //        导出
 
         Workbook workbook = new XSSFWorkbook();

+ 507 - 10
src/main/java/com/repair/controller/RepairRecordController.java

@@ -54,6 +54,8 @@ public class RepairRecordController implements RepairRecordControllerAPI {
     @Autowired
     private RepairRecordService repairRecordService;
     @Autowired
+    private RepairPayRecordService repairPayRecordService;
+    @Autowired
     private RepairReceivingService repairReceivingService;
     @Autowired
     private RepairConsumablesService repairConsumablesService;
@@ -86,6 +88,77 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
     @Override
     @Transactional(rollbackFor = {Exception.class})
+    public CommonResult pay(WxPayRequest wpr, BindingResult bindingResult) throws Exception {
+        if (bindingResult.hasErrors()) {
+            String st = paramUtils.getParamError(bindingResult);
+            return CommonResult.fail(st);
+        }
+
+        RepairRecord rr = repairRecordService.getRepairById(wpr.getRecordId());
+        if (rr == null) {
+            return CommonResult.fail("维修单已失效,支付失败");
+        }
+
+        if (!wpr.getTotalPrice().equals(rr.getPrice())) {
+            return CommonResult.fail("支付金额与订单金额不一致");
+        }
+
+        //查看该订单是否支付过
+        RepairPayRecord oldRpr = repairPayRecordService.getRepairPayByRecordId(wpr.getRecordId());
+        if (oldRpr != null && oldRpr.getIsSuccess().equals(ePayStatu.Paysuccess.getValue())) {
+            return CommonResult.fail("该订单已支付,请勿重复操作");
+        }
+
+        try {
+            //返回0表示等于0,返回1表示大于0,返回-1表示小于0
+            if (wpr.getTotalPrice().compareTo(BigDecimal.ZERO) < 0 || wpr.getTotalPrice().compareTo(BigDecimal.ZERO) == 0) {
+                if (oldRpr == null) {
+                    RepairPayRecord rpr = new RepairPayRecord();
+                    rpr.setRecordId(wpr.getRecordId());
+                    rpr.setUserId(rr.getUserId());
+                    rpr.setPayNo(getUUIDBits(15));
+                    rpr.setPayPrice(BigDecimal.ZERO);
+                    rpr.setIsSuccess(ePayStatu.Paysuccess.getValue());
+                    rpr.setRemark("支付金额为0,不用走微信支付");
+                    int insertRpr = repairPayRecordService.insertRepairPayRecord(rpr);
+                    if (insertRpr <= 0) {
+                        throw new Exception("支付失败!");
+                    }
+                } else {
+                    oldRpr.setRemark(oldRpr.getRemark() + "后续支付:支付金额为0,不用走微信支付");
+                    oldRpr.setPayPrice(BigDecimal.ZERO);
+                    oldRpr.setIsSuccess(ePayStatu.Paysuccess.getValue());
+                    int updateRpr = repairPayRecordService.updateRepairPayRecord(oldRpr);
+                    if (updateRpr <= 0) {
+                        throw new Exception("支付失败!");
+                    }
+                }
+
+                rr.setMaintenanceState(eRecordStatu.Maintenance.getValue());
+
+                int updateRecord = repairRecordService.updateRepairRecord(rr);
+                if (updateRecord <= 0) {
+                    throw new Exception("支付失败!");
+                }
+            }
+        } catch (Exception e) {
+            throw new Exception("支付失败!");
+        }
+
+        RepairUser ru = repairUserService.queryUserByOpenid(wpr.getOpenid());
+        if (ru == null) {
+            return CommonResult.fail("用户信息不合法,支付失败");
+        }
+
+        if (!ru.getId().equals(rr.getUserId())) {
+            return CommonResult.fail("无法为其他订单支付");
+        }
+
+        return null;
+    }
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
     public CommonResult InsertRepairRecord(repairRecordRequest rrr, BindingResult bindingResult) throws Exception {
         if (bindingResult.hasErrors()) {
             String st = paramUtils.getParamError(bindingResult);
@@ -2115,10 +2188,10 @@ public class RepairRecordController implements RepairRecordControllerAPI {
      * @throws Exception
      */
     @Override
-    public CommonResult repairArea(int state) throws Exception {
+    public CommonResult repairArea(int state,int currentPage, int pageCount) throws Exception {
         //    全部
         if (state == 0) {
-            List<RepairAreaVo> repairAreaTotal = repairRecordService.repairAreaTotal();
+            IPage<RepairAreaVo> repairAreaTotal = repairRecordService.repairAreaTotal(currentPage,pageCount);
             return CommonResult.ok(repairAreaTotal);
         }
 
@@ -2129,12 +2202,60 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             return CommonResult.fail("参数有误");
         }
 
-        List<RepairAreaVo> repairAreaTotal = repairRecordService.repairArea(startTime, endTime);
+        IPage<RepairAreaVo> repairAreaTotal = repairRecordService.repairArea(startTime, endTime,currentPage,pageCount);
 
         return CommonResult.ok(repairAreaTotal);
     }
 
     /**
+     * 报修区域导出
+     * @param state
+     * @throws Exception
+     */
+    @Override
+    public void repairAreaExport(HttpServletResponse response,int state) throws Exception {
+        String startTime = DateUtils.startTime(state);
+        String endTime = DateUtils.endTime();
+        List<RepairAreaVo> vos = repairRecordService.repairAreaExport(startTime, endTime);
+
+//        导出
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("报修区域统计");
+        Row headerRow = sheet.createRow(0);
+        headerRow.createCell(0).setCellValue("序号");
+        headerRow.createCell(1).setCellValue("学校名称");
+        headerRow.createCell(2).setCellValue("报修区域");
+        headerRow.createCell(3).setCellValue("工单总数");
+        headerRow.createCell(4).setCellValue("有偿");
+        headerRow.createCell(5).setCellValue("无偿");
+        headerRow.createCell(6).setCellValue("耗材总费用");
+
+
+        for (int i = 0; i < vos.size(); i++) {
+            RepairAreaVo vo = vos.get(i);
+            Row dataRow1 = sheet.createRow(i + 1);
+            dataRow1.createCell(0).setCellValue(vo.getId());
+            dataRow1.createCell(1).setCellValue(vo.getSchoolName());
+            String areaName = vo.getAreaName();
+            areaName = areaName.substring(5);
+            dataRow1.createCell(2).setCellValue(areaName);
+            dataRow1.createCell(3).setCellValue(vo.getOrdersTotal());
+            dataRow1.createCell(4).setCellValue(vo.getOrdersCompensation());
+            dataRow1.createCell(5).setCellValue( vo.getOrdersGratis());
+            BigDecimal totalPrice = vo.getTotalPrice();
+            if (ObjectUtils.isEmpty(totalPrice)) {
+                totalPrice=new BigDecimal(0);
+            }
+            dataRow1.createCell(6).setCellValue( totalPrice.toString());
+
+        }
+
+        // 将工作簿写入文件
+        ExcelUtils.excelDownload(workbook, "报修区域.xlsx", response);
+
+    }
+
+    /**
      * 维修物品
      *
      * @param state
@@ -2142,10 +2263,10 @@ public class RepairRecordController implements RepairRecordControllerAPI {
      * @throws Exception
      */
     @Override
-    public CommonResult maintenanceGoods(int state) throws Exception {
+    public CommonResult maintenanceGoods(int state,int currentPage, int pageCount) throws Exception {
         //    全部
         if (state == 0) {
-            List<MaintenanceGoodsVo> maintenanceGoodsVoList = repairRecordService.maintenanceGoodsTotal();
+            IPage<MaintenanceGoodsVo> maintenanceGoodsVoList = repairRecordService.maintenanceGoodsTotal(currentPage,pageCount);
             return CommonResult.ok(maintenanceGoodsVoList);
         }
 
@@ -2156,10 +2277,49 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             return CommonResult.fail("参数有误");
         }
 
-        List<MaintenanceGoodsVo> maintenanceGoodsVoList = repairRecordService.maintenanceGoods(startTime, endTime);
+        IPage<MaintenanceGoodsVo> maintenanceGoodsVoList = repairRecordService.maintenanceGoods(startTime, endTime,currentPage,pageCount);
         return CommonResult.ok(maintenanceGoodsVoList);
     }
 
+    @Override
+    public void maintenanceGoodsExport(HttpServletResponse response, int state) throws Exception {
+        String startTime = DateUtils.startTime(state);
+        String endTime = DateUtils.endTime();
+
+        List<MaintenanceGoodsVo> vos=repairRecordService.maintenanceGoodsExport(startTime, endTime);
+
+        //        导出
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("维修物品统计");
+        Row headerRow = sheet.createRow(0);
+        headerRow.createCell(0).setCellValue("序号");
+        headerRow.createCell(1).setCellValue("名称");
+        headerRow.createCell(2).setCellValue("工单总数");
+        headerRow.createCell(3).setCellValue("有偿");
+        headerRow.createCell(4).setCellValue("无偿");
+        headerRow.createCell(5).setCellValue("耗材总费用");
+
+        for (int i = 0; i < vos.size(); i++) {
+            MaintenanceGoodsVo vo = vos.get(i);
+            Row dataRow1 = sheet.createRow(i + 1);
+            dataRow1.createCell(0).setCellValue(vo.getId());
+            dataRow1.createCell(1).setCellValue(vo.getArticleName());
+            dataRow1.createCell(2).setCellValue(vo.getOrdersTotal());
+            dataRow1.createCell(3).setCellValue(vo.getOrdersCompensation());
+            dataRow1.createCell(4).setCellValue( vo.getOrdersGratis());
+
+            BigDecimal totalPrice = vo.getTotalPrice();
+            if (ObjectUtils.isEmpty(totalPrice)) {
+                totalPrice=new BigDecimal(0);
+            }
+            dataRow1.createCell(5).setCellValue( totalPrice.toString());
+
+        }
+        // 将工作簿写入文件
+        ExcelUtils.excelDownload(workbook, "维修物品.xlsx", response);
+
+    }
+
     /**
      * 维修师傅
      *
@@ -2168,7 +2328,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
      * @throws Exception
      */
     @Override
-    public CommonResult maintenanceWorker(int state) throws Exception {
+    public CommonResult maintenanceWorker(int state,int currentPage, int pageCount) throws Exception {
 
         String startTime = DateUtils.startTime(state);
         String endTime = DateUtils.endTime();
@@ -2176,7 +2336,13 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         LambdaQueryWrapper<RepairReceiving> wrapperReceiving = new LambdaQueryWrapper<>();
         wrapperReceiving.between(ObjectUtils.isNotEmpty(startTime), RepairReceiving::getReceivingTime, startTime, endTime);
         wrapperReceiving.isNotNull(RepairReceiving::getFinishTime);
-        List<RepairReceiving> repairReceivingList = repairReceivingService.list(wrapperReceiving);
+        wrapperReceiving.groupBy(RepairReceiving::getUserId);
+        IPage<RepairReceiving> repairReceivingListPage = repairReceivingService.page(new Page<RepairReceiving>(currentPage,pageCount),wrapperReceiving);
+
+        LambdaQueryWrapper<RepairReceiving> wrapperReceiving2 = new LambdaQueryWrapper<>();
+        wrapperReceiving2.between(ObjectUtils.isNotEmpty(startTime), RepairReceiving::getReceivingTime, startTime, endTime);
+        wrapperReceiving2.isNotNull(RepairReceiving::getFinishTime);
+        List<RepairReceiving> repairReceivingList = repairReceivingService.list(wrapperReceiving2);
 
         ArrayList<Integer> userList = new ArrayList<>();
 
@@ -2393,7 +2559,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                 List<Integer> integers = sendCountMap.get(id);
                 BigDecimal bigDecimal2 = new BigDecimal(integers.size());
                 BigDecimal send = bigDecimal1.divide(bigDecimal2,2,BigDecimal.ROUND_HALF_UP);
-                maintenanceWorkerVo.setMaintain(send);
+                maintenanceWorkerVo.setAnswer(send);
             }
 
 
@@ -2433,9 +2599,327 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
         });
 
+        IPage<MaintenanceWorkerVo> page = new Page();
+        BeanUtils.copyProperties(repairReceivingListPage,page);
+        page.setRecords(vos);
+
+        return CommonResult.ok(page);
+    }
+
+    /**
+     * 维修师傅导出
+     * @param response
+     * @param state
+     * @throws Exception
+     */
+    @Override
+    public void maintenanceWorkerExport(HttpServletResponse response, int state) throws Exception {
+        String startTime = DateUtils.startTime(state);
+        String endTime = DateUtils.endTime();
+
+        LambdaQueryWrapper<RepairReceiving> wrapperReceiving = new LambdaQueryWrapper<>();
+        wrapperReceiving.between(ObjectUtils.isNotEmpty(startTime), RepairReceiving::getReceivingTime, startTime, endTime);
+        wrapperReceiving.isNotNull(RepairReceiving::getFinishTime);
+        List<RepairReceiving> repairReceivingList = repairReceivingService.list(wrapperReceiving);
+
+        ArrayList<Integer> userList = new ArrayList<>();
+
+        ArrayList<Integer> recordList = new ArrayList<>();
+
+//        接单总次数
+        HashMap<Integer, List<Integer>> receivingCountMap = new HashMap<>();
+
+//        维修超时次数
+        Map<Integer, Integer> maintainTimeOutMap = new HashMap<>();
+
+//        维修总时长
+        Map<Integer, Long> maintainMap = new HashMap<>();
+
+
+        for (RepairReceiving repairReceiving : repairReceivingList) {
+            Date finishTime = repairReceiving.getFinishTime();
+
+            if (ObjectUtils.isEmpty(finishTime)) {
+                break;
+            }
+
+            Integer userId = repairReceiving.getUserId();
+            userList.add(userId);
+
+            Integer recordId = repairReceiving.getRecordId();
+            recordList.add(recordId);
+
+            if (receivingCountMap.containsKey(userId)) {
+//                  总次数
+                List<Integer> list = receivingCountMap.get(userId);
+                list.add(recordId);
+                receivingCountMap.put(userId, list);
+            } else {
+                ArrayList<Integer> list = new ArrayList<>();
+                list.add(recordId);
+                receivingCountMap.put(userId, list);
+            }
+
+
+//            接单时间
+            long receivingTime = repairReceiving.getReceivingTime().getTime();
+//            考核时间(分)
+            Integer maintenanceAssessTime = repairReceiving.getMaintenanceAssessTime() * 1000 * 60;
+
+            long time = receivingTime + maintenanceAssessTime;
+
+//            完成时间
+            long finishTimeTime = finishTime.getTime();
+
+//              实际完成时间大于接单时间加考核时间为超时
+            if (finishTimeTime > time) {
+                if (maintainTimeOutMap.containsKey(userId)) {
+//                  次数
+                    Integer count = maintainTimeOutMap.get(userId);
+                    count = count + 1;
+                    maintainTimeOutMap.put(userId, count);
+                } else {
+                    maintainTimeOutMap.put(userId, 1);
+                }
+            }
+
+//            维修时长=完成时间-接单时间(分)
+            long maintainTime = finishTimeTime - receivingTime;
+            maintainTime = maintainTime / 1000 / 60;
+
+            if (maintainMap.containsKey(userId)) {
+//                  维修时长
+                Long maintainTotalTime = maintainMap.get(userId);
+                maintainTotalTime = maintainTotalTime + maintainTime;
+                maintainMap.put(userId, maintainTotalTime);
+            } else {
+                maintainMap.put(userId, maintainTime);
+            }
+
+        }
+
+
+        //        接单总次数
+        HashMap<Integer, List<Integer>> sendCountMap = new HashMap<>();
+
+//        接单超时次数
+        Map<Integer, Integer> sendTimeOutMap = new HashMap<>();
+
+//        接单总时长
+        Map<Integer, Long> sendMap = new HashMap<>();
+
+
+        LambdaQueryWrapper<RepairDispatchRecord> rdrsWrapper=new LambdaQueryWrapper<>();
+        rdrsWrapper.in(RepairDispatchRecord::getRecordId,recordList)
+                .isNotNull(RepairDispatchRecord::getReceivingTime);
+
+
+        List<RepairDispatchRecord> repairDispatchRecords = repairDispatchRecordService.list(rdrsWrapper);
+        for (RepairDispatchRecord repairDispatchRecord : repairDispatchRecords) {
+//                派单时间
+            long sendTime = repairDispatchRecord.getAssignedTime().getTime();
+//                接单考核时间
+            Integer acceptanceAssessTime = repairDispatchRecord.getAcceptanceAssessTime() * 1000 * 60;
+
+            long time=sendTime+acceptanceAssessTime;
+
+//                接单时间
+            long receivingTime = repairDispatchRecord.getReceivingTime().getTime();
+//            接单人
+            Integer usersId = repairDispatchRecord.getUsersId();
+            Integer recordId = repairDispatchRecord.getRecordId();
+
+            if (sendCountMap.containsKey(usersId)) {
+                List<Integer> integers = sendCountMap.get(usersId);
+                integers.add(recordId);
+                sendCountMap.put(usersId,integers);
+            }else {
+                ArrayList<Integer> integers = new ArrayList<>();
+                sendCountMap.put(usersId,integers);
+            }
+
+
+//              实际完成时间大于接单时间加考核时间为超时
+            if (receivingTime > time) {
+                if (sendTimeOutMap.containsKey(usersId)) {
+//                  次数
+                    Integer count = sendTimeOutMap.get(usersId);
+                    count = count + 1;
+                    sendTimeOutMap.put(usersId, count);
+                } else {
+                    sendTimeOutMap.put(usersId, 1);
+                }
+            }
+
+//            接单时长=接单时间-派单时间(分)
+            Long orderReceivingTime=receivingTime-sendTime;
+            orderReceivingTime=orderReceivingTime/1000/60;
+
+            if (sendMap.containsKey(usersId)) {
+//                  接单总时长
+                Long sendTotalTime = sendMap.get(usersId);
+                sendTotalTime = sendTotalTime + orderReceivingTime;
+                sendMap.put(usersId, sendTotalTime);
+            } else {
+                sendMap.put(usersId, orderReceivingTime);
+            }
+
+
+        }
+
+
+        LambdaQueryWrapper<RepairUser> userWrapper=new LambdaQueryWrapper<>();
+        userWrapper.in(RepairUser::getId,userList);
+
+        List<RepairUser> users = repairUserService.list(userWrapper);
+
+
+        Wrapper<RepairSchool> schoolWrapper=new LambdaQueryWrapper<>();
+        List<RepairSchool> schoolList = repairSchoolService.list(schoolWrapper);
+
+        ArrayList<MaintenanceWorkerVo> vos = new ArrayList<>();
+
+        users.forEach(repairUser -> {
+            MaintenanceWorkerVo maintenanceWorkerVo = new MaintenanceWorkerVo();
+//            名字
+            maintenanceWorkerVo.setName(repairUser.getUserName());
+
+//            学校
+            Integer schoolId = repairUser.getSchoolId();
+            for (RepairSchool repairSchool : schoolList) {
+                Integer id = repairSchool.getId();
+                if (id.equals(schoolId)) {
+                    maintenanceWorkerVo.setSchoolName(repairSchool.getName());
+                }
+            }
+
+            Integer id = repairUser.getId();
+//            工单集合
+            List<Integer> recordsList = receivingCountMap.get(id);
+            int size = recordsList.size();
+            BigDecimal b = new BigDecimal(size);
+
+//            工单总数
+            maintenanceWorkerVo.setWorkOrderTotal(size);
+
+//            超时率
+            if (maintainTimeOutMap.containsKey(id)) {
+                Integer integer = maintainTimeOutMap.get(id);
+                BigDecimal a = new BigDecimal(integer);
+                BigDecimal c= b;
+//                接单
+                if (sendTimeOutMap.containsKey(id)) {
+                    Integer integer1 = sendTimeOutMap.get(id);
+                    BigDecimal bigDecimal = new BigDecimal(integer1);
+                    a=a.add(bigDecimal);
+                    List<Integer> integers = sendCountMap.get(id);
+                    c=c.add(new BigDecimal(integers.size()));
+                }
+
+                BigDecimal bigDecimal = a.divide(c,2,BigDecimal.ROUND_HALF_UP);
+                BigDecimal multiply = bigDecimal.multiply(new BigDecimal(100));
+                maintenanceWorkerVo.setTimeOut(multiply+"%");
+            }
+
+//            平均维修时间
+            Long aLong = maintainMap.get(id);
+            BigDecimal bigDecimal = new BigDecimal(aLong);
+            BigDecimal maintain = bigDecimal.divide(b,2,BigDecimal.ROUND_HALF_UP);
+            maintenanceWorkerVo.setMaintain(maintain);
+
+            //        平均响应时长
+            if (sendMap.containsKey(id)) {
+                Long aLong1 = sendMap.get(id);
+                BigDecimal bigDecimal1 = new BigDecimal(aLong1);
+                List<Integer> integers = sendCountMap.get(id);
+                BigDecimal bigDecimal2 = new BigDecimal(integers.size());
+                BigDecimal send = bigDecimal1.divide(bigDecimal2,2,BigDecimal.ROUND_HALF_UP);
+                maintenanceWorkerVo.setAnswer(send);
+            }
+
+
+
+//            总费用
+            LambdaQueryWrapper<RepairRecord> recordWrapper=new LambdaQueryWrapper<>();
+            recordWrapper.in(RepairRecord::getId,recordsList);
+
+            List<RepairRecord> list = repairRecordService.list(recordWrapper);
+            BigDecimal totalPrice=new BigDecimal(0);
+            for (RepairRecord repairRecord : list) {
+                BigDecimal price = repairRecord.getPrice();
+                if (ObjectUtils.isNotEmpty(price)) {
+                    totalPrice=totalPrice.add(price);
+                }
+            }
+            maintenanceWorkerVo.setTotalPrice(totalPrice);
+
+//            好评率
+            LambdaQueryWrapper<RepairEvaluate> evaluateWrapper=new LambdaQueryWrapper<>();
+            evaluateWrapper.in(RepairEvaluate::getRecordId,recordsList);
+//      根据工单id来查询对应的评价
+            List<RepairEvaluate> repairEvaluates = repairEvaluateService.list(evaluateWrapper);
+            BigDecimal evaluatesDecimal = new BigDecimal(repairEvaluates.size());
+            BigDecimal satisfaction=new BigDecimal(0);
+            for (RepairEvaluate repairEvaluate : repairEvaluates) {
+                Integer star = repairEvaluate.getStar();
+                if (star>3) {
+                    satisfaction=satisfaction.add(new BigDecimal(1));
+                }
+            }
+            BigDecimal degreePraise = satisfaction.divide(evaluatesDecimal,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+            maintenanceWorkerVo.setDegreePraise(degreePraise+"%");
+
+
+            vos.add(maintenanceWorkerVo);
+        });
+
+
+        //        导出
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("维修师傅效率统计");
+        Row headerRow = sheet.createRow(0);
+        headerRow.createCell(0).setCellValue("序号");
+        headerRow.createCell(1).setCellValue("校区");
+        headerRow.createCell(2).setCellValue("姓名");
+        headerRow.createCell(3).setCellValue("工单总数");
+        headerRow.createCell(4).setCellValue("好评率");
+        headerRow.createCell(5).setCellValue("超时率");
+        headerRow.createCell(6).setCellValue("平均响应时长(分)");
+        headerRow.createCell(7).setCellValue("平均维修时长(分)");
+        headerRow.createCell(8).setCellValue("耗材总费用(元)");
+
+        for (int i = 0; i < vos.size(); i++) {
+            MaintenanceWorkerVo vo = vos.get(i);
+            Row dataRow1 = sheet.createRow(i + 1);
+            dataRow1.createCell(0).setCellValue(i+1);
+            dataRow1.createCell(1).setCellValue(vo.getSchoolName());
+            dataRow1.createCell(2).setCellValue(vo.getName());
+            dataRow1.createCell(3).setCellValue(vo.getWorkOrderTotal());
+            dataRow1.createCell(4).setCellValue( vo.getDegreePraise());
+            dataRow1.createCell(5).setCellValue( vo.getTimeOut());
+            BigDecimal answer = vo.getAnswer();
+            if (ObjectUtils.isEmpty(answer)) {
+                answer=new BigDecimal(0);
+            }
+            dataRow1.createCell(6).setCellValue(answer.toString());
+            BigDecimal maintain = vo.getMaintain();
+            if (ObjectUtils.isEmpty(maintain)) {
+                maintain=new BigDecimal(0);
+            }
+
+            dataRow1.createCell(7).setCellValue(maintain.toString());
+
+            BigDecimal totalPrice = vo.getTotalPrice();
+            if (ObjectUtils.isEmpty(totalPrice)) {
+                totalPrice=new BigDecimal(0);
+            }
+            dataRow1.createCell(8).setCellValue( totalPrice.toString());
+
+        }
+        // 将工作簿写入文件
+        ExcelUtils.excelDownload(workbook, "维修师傅.xlsx", response);
 
 
-        return CommonResult.ok(vos);
     }
 
     /**
@@ -2450,7 +2934,20 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         String startTime = DateUtils.startTime(state);
         String endTime = DateUtils.endTime();
 
+        
+
+
+        return null;
+    }
 
+    /**
+     * 报修趋势
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CommonResult repairTrend(int state) throws Exception {
         return null;
     }
 

+ 8 - 4
src/main/java/com/repair/mapper/RepairRecordMapper.java

@@ -69,11 +69,15 @@ public interface RepairRecordMapper extends BaseMapper<RepairRecord> {
 
     List<RepairCampusVo> repairCampus(String startTime, String endTime);
 
-    List<RepairAreaVo> repairAreaTotal();
+    IPage<RepairAreaVo> repairAreaTotal(IPage<RepairAreaVo> page);
 
-    List<RepairAreaVo> repairArea(String startTime, String endTime);
+    IPage<RepairAreaVo> repairArea(IPage<RepairAreaVo> page,String startTime, String endTime);
 
-    List<MaintenanceGoodsVo> maintenanceGoodsTotal();
+    IPage<MaintenanceGoodsVo> maintenanceGoodsTotal(IPage<MaintenanceGoodsVo> page);
 
-    List<MaintenanceGoodsVo> maintenanceGoods(String startTime, String endTime);
+    IPage<MaintenanceGoodsVo> maintenanceGoods(IPage<MaintenanceGoodsVo> page,String startTime, String endTime);
+
+    List<RepairAreaVo> repairAreaExport(String startTime, String endTime);
+
+    List<MaintenanceGoodsVo>  maintenanceGoodsExport(String startTime, String endTime);
 }

+ 2 - 2
src/main/java/com/repair/model/enumModel/ePayPageStatu.java

@@ -3,9 +3,9 @@ package com.repair.model.enumModel;
 public enum ePayPageStatu {
     //    已支付
     HavePaid(0),
-//部分退款
+    //部分退款
     Rebates(1),
-//    已退款
+    //    已退款
     Refunded(2);
 
     private int value;

+ 37 - 0
src/main/java/com/repair/model/enumModel/ePayStatu.java

@@ -0,0 +1,37 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/7 星期五 15:14
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum ePayStatu {
+    //未支付/等待支付:1;支付成功:2;支付失败:3
+    Unpaid(1),//未支付/等待支付
+    Paysuccess(2),//支付成功
+    Paymentfailed(3);//支付失败
+
+
+    private int value;
+
+    ePayStatu(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static ePayStatu valueOf(int value) {
+        switch (value) {
+            case 1:
+                return ePayStatu.Unpaid;
+            case 2:
+                return ePayStatu.Paysuccess;
+            case 3:
+                return ePayStatu.Paymentfailed;
+            default:
+                return null;
+        }
+    }
+}

+ 1 - 1
src/main/java/com/repair/model/pojo/RepairPayRecord.java

@@ -54,7 +54,7 @@ public class RepairPayRecord implements Serializable {
     @NotNull(message = "交易金额不能为空")
     private BigDecimal payPrice;
 
-    @ApiModelProperty(value = "是否支付成功 支付中:0;支付成功:1;支付失败:2")
+    @ApiModelProperty(value = "是否支付成功 未支付/等待支付:1;支付成功:2;支付失败:3")
     @NotNull(message = "支付状态不能为空")
     private Integer isSuccess;
 

+ 31 - 0
src/main/java/com/repair/model/request/WxPayRequest.java

@@ -0,0 +1,31 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * 支付参数
+ */
+@Data
+public class WxPayRequest {
+    /**
+     * 维修单ID
+     */
+    @NotNull(message = "维修单ID不能为空")
+    private Integer recordId;
+
+    /**
+     * openid
+     */
+    @NotBlank(message = "openid不能为空")
+    private String openid;
+
+    /**
+     * 支付金额
+     */
+    @NotNull(message = "支付金额不能为空")
+    private BigDecimal totalPrice;
+}

+ 86 - 0
src/main/java/com/repair/model/result/WechatUnifiedOrder.java

@@ -0,0 +1,86 @@
+package com.repair.model.result;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/21 星期一 9:02
+ * @Description: com.repair.model.result
+ * @Version: 1.0
+ */
+@Data
+@XmlRootElement(name = "xml")
+public class WechatUnifiedOrder {
+
+    /**
+     * 微信支付分配的公众账号ID(企业号corpid即为此appId)
+     */
+    private String appid;
+
+    /**
+     * 微信支付分配的商户号
+     */
+    private String mch_id;
+
+    /**
+     * 随机字符串,长度要求在32位以内。推荐随机数生成算法
+     */
+    private String nonce_str;
+
+    /**
+     * 通过签名算法计算得出的签名值,详见签名生成算法
+     */
+    private String sign;
+
+    /**
+     * 商品简单描述,该字段请按照规范传递,具体请见参数规定
+     */
+    private String body;
+
+    /**
+     * 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。详见商户订单号
+     */
+    private String out_trade_no;
+
+    /**
+     * 退款单号
+     */
+    private String out_refund_no;
+
+    /**
+     * 订单总金额,单位为分,详见支付金额
+     */
+    private int total_fee;
+
+    /**
+     * 退款金额
+     */
+    private Integer refund_fee;
+
+    /**
+     * APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
+     */
+    private String spbill_create_ip;
+
+    /**
+     * 异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数。
+     */
+    private String notify_url;
+
+    /**
+     * 取值如下:JSAPI,NATIVE,APP等,说明详见参数规定
+     */
+    private String trade_type;
+
+    /**
+     * trade_type=JSAPI时(即公众号支付),此参数必传,此参数为微信用户在商户对应appid下的唯一标识
+     */
+    private String openid;
+
+    /**
+     * 数据包
+     */
+    private String attach;
+}

+ 2 - 0
src/main/java/com/repair/services/RepairPayRecordService.java

@@ -30,6 +30,8 @@ public interface RepairPayRecordService extends IService<RepairPayRecord> {
 
     RepairPayRecord getRepairPaySuccessByRecordId(int recordId);
 
+    RepairPayRecord getRepairPayByRecordId(int recordId);
+
     RepairPayRecord queryPaymentData(String recordNo);
 
     List<QueryExportVo> queryExport(String keyWord, String startTime, String endTime);

+ 8 - 4
src/main/java/com/repair/services/RepairRecordService.java

@@ -84,12 +84,16 @@ public interface RepairRecordService extends IService<RepairRecord> {
 
     List<RepairCampusVo> repairCampus(String startTime, String endTime);
 
-    List<RepairAreaVo> repairAreaTotal();
+    IPage<RepairAreaVo> repairAreaTotal(int currentPage, int pageCount);
 
-    List<RepairAreaVo> repairArea(String startTime, String endTime);
+    IPage<RepairAreaVo> repairArea(String startTime, String endTime,int currentPage, int pageCount);
 
-    List<MaintenanceGoodsVo> maintenanceGoodsTotal();
+    IPage<MaintenanceGoodsVo> maintenanceGoodsTotal(int currentPage, int pageCount);
 
 
-    List<MaintenanceGoodsVo> maintenanceGoods(String startTime, String endTime);
+    IPage<MaintenanceGoodsVo> maintenanceGoods(String startTime, String endTime,int currentPage, int pageCount);
+
+    List<RepairAreaVo> repairAreaExport(String startTime, String endTime);
+
+    List<MaintenanceGoodsVo> maintenanceGoodsExport(String startTime, String endTime);
 }

+ 2 - 0
src/main/java/com/repair/services/RepairUserService.java

@@ -59,5 +59,7 @@ public interface RepairUserService extends IService<RepairUser> {
     PageUtils<PositiveReviewVo> queryPositiveReviewPage(int currentPage, int pageCount, Integer schoolId);
 
     List<AutoDispatchUserVo> dropDown(Integer buildId, Integer articleId, Integer schoolId);
+
+    RepairUser queryUserByOpenid(String openId);
 }
 

+ 10 - 1
src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java

@@ -3,6 +3,7 @@ package com.repair.services.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.repair.model.enumModel.ePayStatu;
 import com.repair.model.pojo.RepairPayRecord;
 import com.repair.mapper.RepairPayRecordMapper;
 import com.repair.model.result.PageUtils;
@@ -70,7 +71,15 @@ public class RepairPayRecordServiceImpl extends ServiceImpl<RepairPayRecordMappe
     public RepairPayRecord getRepairPaySuccessByRecordId(int recordId) {
         QueryWrapper<RepairPayRecord> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("record_id", recordId);
-        queryWrapper.eq("is_success",1);
+        queryWrapper.eq("is_success", ePayStatu.Paysuccess.getValue());
+        RepairPayRecord result = repairPayRecordMapper.selectOne(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public RepairPayRecord getRepairPayByRecordId(int recordId) {
+        QueryWrapper<RepairPayRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("record_id", recordId);
         RepairPayRecord result = repairPayRecordMapper.selectOne(queryWrapper);
         return result;
     }

+ 29 - 9
src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java

@@ -76,7 +76,7 @@ public class RepairRecordServiceImpl extends ServiceImpl<RepairRecordMapper, Rep
     public PageUtils<MyRepairRecordVo> queryMyRepairRecordList(int currentPage, int pageCount, Integer state, Integer userId) {
         String stateStr = null;
         if (state == 1) {
-            stateStr = "<= 7";
+            stateStr = "< 7";
         } else if (state == 2) {
             stateStr = "= 4";
         } else {
@@ -279,26 +279,46 @@ public class RepairRecordServiceImpl extends ServiceImpl<RepairRecordMapper, Rep
     }
 
     @Override
-    public List<RepairAreaVo> repairAreaTotal() {
-        List<RepairAreaVo> vos = repairRecordMapper.repairAreaTotal();
+    public IPage<RepairAreaVo> repairAreaTotal(int currentPage, int pageCount) {
+        Page<RepairAreaVo> page = new Page<>();
+        page.setCurrent(currentPage);
+        page.setSize(pageCount);
+        IPage<RepairAreaVo> vos = repairRecordMapper.repairAreaTotal(page);
+        return vos;
+    }
+
+    @Override
+    public IPage<RepairAreaVo> repairArea(String startTime, String endTime,int currentPage, int pageCount) {
+        Page<RepairAreaVo> page = new Page<>();
+        page.setCurrent(currentPage);
+        page.setSize(pageCount);
+        IPage<RepairAreaVo> vos = repairRecordMapper.repairArea(page,startTime, endTime );
+        return vos;
+    }
+
+    @Override
+    public IPage<MaintenanceGoodsVo> maintenanceGoodsTotal(int currentPage, int pageCount) {
+        Page<MaintenanceGoodsVo> page=new Page<>(currentPage, pageCount);
+        IPage<MaintenanceGoodsVo> vos = repairRecordMapper.maintenanceGoodsTotal(page);
         return vos;
     }
 
     @Override
-    public List<RepairAreaVo> repairArea(String startTime, String endTime) {
-        List<RepairAreaVo> vos = repairRecordMapper.repairArea(startTime, endTime);
+    public IPage<MaintenanceGoodsVo> maintenanceGoods(String startTime, String endTime,int currentPage, int pageCount) {
+        Page<MaintenanceGoodsVo> page=new Page<>(currentPage,pageCount);
+        IPage<MaintenanceGoodsVo> vos = repairRecordMapper.maintenanceGoods(page,startTime,endTime);
         return vos;
     }
 
     @Override
-    public List<MaintenanceGoodsVo> maintenanceGoodsTotal() {
-        List<MaintenanceGoodsVo> vos = repairRecordMapper.maintenanceGoodsTotal();
+    public List<RepairAreaVo> repairAreaExport(String startTime, String endTime) {
+        List<RepairAreaVo> vos=repairRecordMapper.repairAreaExport(startTime,endTime);
         return vos;
     }
 
     @Override
-    public List<MaintenanceGoodsVo> maintenanceGoods(String startTime, String endTime) {
-        List<MaintenanceGoodsVo> vos = repairRecordMapper.maintenanceGoods(startTime,endTime);
+    public List<MaintenanceGoodsVo> maintenanceGoodsExport(String startTime, String endTime) {
+        List<MaintenanceGoodsVo> vos =repairRecordMapper.maintenanceGoodsExport(startTime,endTime);
         return vos;
     }
 }

+ 8 - 0
src/main/java/com/repair/services/impl/RepairUserServiceImpl.java

@@ -205,4 +205,12 @@ public class RepairUserServiceImpl extends ServiceImpl<RepairUserMapper, RepairU
         return vos;
     }
 
+    @Override
+    public RepairUser queryUserByOpenid(String openId) {
+        QueryWrapper<RepairUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("openid", openId);
+        RepairUser rus = repairUserMapper.selectOne(queryWrapper);
+        return rus;
+    }
+
 }

+ 2 - 2
src/main/resources/application-prod.yml

@@ -37,9 +37,9 @@ spring:
   # \u914D\u7F6E\u65E5\u5FD7
 mybatis-plus:
   mapper-locations: classpath:/mapper/repair/*.xml
-  configuration:
+#  configuration:
 #    #开启sql打印
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 #    #关闭sql打印
 #    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
   global-config:

+ 1 - 1
src/main/resources/application.yml

@@ -5,7 +5,7 @@ server:
 
 spring:
   profiles:
-      active: dev
+      active: prod
   main:
     allow-circular-references: true
   datasource:

+ 1 - 1
src/main/resources/mapper/repair/RepairPayRecordMapper.xml

@@ -15,7 +15,7 @@
         inner join repair_record rr on rr.deleted = 0 and rr.record_no = #{recordNo} and rr.id = rpr.record_id
         where rpr.deleted = 0
     </select>
-<select id="queryExport" resultType="com.repair.model.vo.QueryExportVo">
+    <select id="queryExport" resultType="com.repair.model.vo.QueryExportVo">
         SELECT row_number() over ( ORDER BY dc.pay_time ) AS id, dc.*
         FROM
         (SELECT

+ 83 - 1
src/main/resources/mapper/repair/RepairRecordMapper.xml

@@ -13,7 +13,7 @@
         SELECT COUNT(IF(maintenance_state &lt; 7,1, NULL)) Incomplete,COUNT(IF(maintenance_state=4,1, NULL))
         Confirmed,COUNT(IF(maintenance_state &gt;=7 ,1, NULL)) Finished FROM `repair_record`
         <where>
-            and maintenance_state &lt;= 7 and deleted = 0
+            and deleted = 0
             <if test="userId != null and userId != ''">
                 and user_id = #{userId}
             </if>
@@ -51,7 +51,13 @@
         repair_record rr
         left join repair_article_type rat on rat.id = rr.article_id
         left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
+        <if test="userId != null and userId != ''">
+            and rdr.users_id = #{userId}
+        </if>
         left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
+        <if test="userId != null and userId != ''">
+            and rdv.user_id = #{userId}
+        </if>
         <where>
             and rr.deleted = 0
             <if test="stateStr != null and stateStr != ''">
@@ -860,4 +866,80 @@
         </where>
         GROUP BY rr.article_id) wx
     </select>
+    <select id="repairAreaExport" resultType="com.repair.model.vo.RepairAreaVo">
+        SELECT row_number() over ( ORDER BY ra.area_name ) AS id, ra.*
+        FROM (SELECT count(rr.area_id) AS orders_total,
+        rs.`name` AS school_name,
+        rr.area_id AS area_name,
+        (SELECT COUNT(area_id)
+        FROM `repair_record`
+        <where>
+            AND price > 0
+            AND rr.area_id = area_id
+            AND deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) AS orders_compensation,
+        (SELECT COUNT(area_id)
+        FROM `repair_record`
+        <where>
+            AND (price IS NULL OR price = 0)
+            AND rr.area_id = area_id
+            AND deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) AS orders_gratis,
+        SUM(rr.price) AS total_price
+        FROM `repair_record` rr
+        LEFT JOIN repair_school rs ON rs.deleted = 0
+        AND rr.school_id = rs.id
+        <where>
+            AND rr.deleted=0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        GROUP BY rr.area_id) ra
+    </select>
+
+    <select id="maintenanceGoodsExport" resultType="com.repair.model.vo.MaintenanceGoodsVo">
+        SELECT row_number() over ( ORDER BY wx.article_name ) AS id, wx.*
+        FROM (SELECT rat.`name` AS article_name,
+        count(rr.article_id) AS orders_total,
+        (SELECT COUNT(article_id)
+        FROM `repair_record`
+        <where>
+            and price > 0 AND rr.article_id = article_id AND deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) AS orders_compensation,
+        (SELECT COUNT(article_id)
+        FROM `repair_record`
+        <where>
+            and (price IS NULL OR price = 0)
+            AND rr.article_id = article_id
+            AND deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) AS orders_gratis,
+        SUM(rr.price) AS total_price
+        FROM `repair_record` rr
+        LEFT JOIN repair_article_type rat ON rat.deleted = 0
+        AND rr.article_id = rat.id
+        <where>
+            and rr.deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        GROUP BY rr.article_id) wx
+    </select>
 </mapper>

+ 2 - 2
target/classes/application-prod.yml

@@ -37,9 +37,9 @@ spring:
   # \u914D\u7F6E\u65E5\u5FD7
 mybatis-plus:
   mapper-locations: classpath:/mapper/repair/*.xml
-  configuration:
+#  configuration:
 #    #开启sql打印
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 #    #关闭sql打印
 #    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
   global-config:

+ 1 - 1
target/classes/application.yml

@@ -5,7 +5,7 @@ server:
 
 spring:
   profiles:
-      active: dev
+      active: prod
   main:
     allow-circular-references: true
   datasource:

+ 7 - 1
target/classes/mapper/repair/RepairRecordMapper.xml

@@ -13,7 +13,7 @@
         SELECT COUNT(IF(maintenance_state &lt; 7,1, NULL)) Incomplete,COUNT(IF(maintenance_state=4,1, NULL))
         Confirmed,COUNT(IF(maintenance_state &gt;=7 ,1, NULL)) Finished FROM `repair_record`
         <where>
-            and maintenance_state &lt;= 7 and deleted = 0
+            and deleted = 0
             <if test="userId != null and userId != ''">
                 and user_id = #{userId}
             </if>
@@ -51,7 +51,13 @@
         repair_record rr
         left join repair_article_type rat on rat.id = rr.article_id
         left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
+        <if test="userId != null and userId != ''">
+            and rdr.users_id = #{userId}
+        </if>
         left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
+        <if test="userId != null and userId != ''">
+            and rdv.user_id = #{userId}
+        </if>
         <where>
             and rr.deleted = 0
             <if test="stateStr != null and stateStr != ''">

+ 2 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -132,6 +132,7 @@ com\repair\model\vo\ShiftSettingDataVo.class
 com\repair\model\enumModel\eFileType.class
 com\repair\model\vo\UserScheduleVo.class
 com\repair\model\request\collaborateApplyRequest.class
+com\repair\model\request\WxPayRequest.class
 com\repair\model\pojo\RepairNoticeSetting.class
 com\repair\config\SmsConfig.class
 com\repair\services\RepairPayRecordService.class
@@ -292,6 +293,7 @@ com\repair\model\request\DelayedRequest.class
 com\repair\model\request\freezeRepairAdminRequest.class
 com\repair\model\request\updateAddressBookRequest.class
 com\repair\core\JwtlnterceptorConfig.class
+com\repair\model\result\WechatUnifiedOrder.class
 com\repair\services\impl\RepairAdminServiceImpl.class
 com\repair\model\vo\RepairUserVo.class
 com\repair\model\vo\SystemMenuVo.class

+ 2 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -95,6 +95,7 @@ D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repa
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\services\RepairConsumeService.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\vo\PositiveReviewVo.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\vo\AlterPriceShowVo.java
+D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\request\WxPayRequest.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\vo\AddressBookVo.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\vo\DetailsVo.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\vo\pendingOrderVo.java
@@ -309,6 +310,7 @@ D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repa
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\mapper\WxAccessTokenMapper.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\api\RepairAdminControllerAPI.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\request\queryAccountPageRequest.java
+D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\result\WechatUnifiedOrder.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\services\RepairPayRecordService.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\mapper\RepairPayRecordMapper.java
 D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\java\com\repair\model\vo\RepairArticleTreeVo.java

BIN
target/repair_system-0.0.1-SNAPSHOT.jar.original