Forráskód Böngészése

增加:批量改价,改价记录,房价管理分页接口

liu 2 éve
szülő
commit
0d66c9e979
100 módosított fájl, 2319 hozzáadás és 174 törlés
  1. 0 8
      .idea/.gitignore
  2. 0 11
      .idea/compiler.xml
  3. 0 6
      .idea/encodings.xml
  4. 0 20
      .idea/jarRepositories.xml
  5. 1 1
      .idea/misc.xml
  6. 0 124
      .idea/uiDesigner.xml
  7. 166 0
      .idea/workspace.xml
  8. 5 0
      src/main/java/com/template/api/HousePriceAPI.java
  9. 551 0
      src/main/java/com/template/common/utils/DateUtil.java
  10. 1414 0
      src/main/java/com/template/common/utils/Func.java
  11. 126 3
      src/main/java/com/template/controller/HousePriceController.java
  12. 5 0
      src/main/java/com/template/mapper/HousePriceMapper.java
  13. 17 0
      src/main/java/com/template/model/vo/HousePricePageVo.java
  14. 12 0
      src/main/java/com/template/model/vo/HousePriceVo.java
  15. 5 0
      src/main/java/com/template/services/HousePriceService.java
  16. 8 0
      src/main/java/com/template/services/impl/HousePriceServiceImpl.java
  17. 9 1
      src/main/resources/mapper/template/HousePriceMapper.xml
  18. BIN
      target/classes/com/repair/model/request/changePasswordRequest.class
  19. BIN
      target/classes/com/repair/model/request/freezeRepairAdminRequest.class
  20. BIN
      target/classes/com/repair/model/request/queryAccountPageRequest.class
  21. BIN
      target/classes/com/repair/model/request/updateRepairAdminRequest.class
  22. BIN
      target/classes/com/template/AutoCode.class
  23. BIN
      target/classes/com/template/MybatisPlusApplication.class
  24. BIN
      target/classes/com/template/aop/LoginCheckAspect.class
  25. BIN
      target/classes/com/template/api/ExcelControllerAPI.class
  26. BIN
      target/classes/com/template/api/HouseAPI.class
  27. BIN
      target/classes/com/template/api/HousePriceAPI.class
  28. BIN
      target/classes/com/template/api/LoginControllerAPI.class
  29. BIN
      target/classes/com/template/api/RepairAdminControllerAPI.class
  30. BIN
      target/classes/com/template/common/exception/EmsException.class
  31. BIN
      target/classes/com/template/common/exception/EmsExceptionHandler.class
  32. BIN
      target/classes/com/template/common/exception/MyCustomException.class
  33. BIN
      target/classes/com/template/common/result/ResponseStatusEnum.class
  34. BIN
      target/classes/com/template/common/utils/AES.class
  35. BIN
      target/classes/com/template/common/utils/AesUtils.class
  36. BIN
      target/classes/com/template/common/utils/CommonUtil.class
  37. BIN
      target/classes/com/template/common/utils/DateUtil.class
  38. BIN
      target/classes/com/template/common/utils/DoorLockAESUtil.class
  39. BIN
      target/classes/com/template/common/utils/DoorLockMD5Util.class
  40. BIN
      target/classes/com/template/common/utils/EncryptionUtil.class
  41. BIN
      target/classes/com/template/common/utils/FileUtil.class
  42. BIN
      target/classes/com/template/common/utils/Func.class
  43. BIN
      target/classes/com/template/common/utils/HttpClientHelper.class
  44. BIN
      target/classes/com/template/common/utils/JWTUtil.class
  45. BIN
      target/classes/com/template/common/utils/MD5.class
  46. BIN
      target/classes/com/template/common/utils/MyBase64.class
  47. BIN
      target/classes/com/template/common/utils/RSAUtils.class
  48. BIN
      target/classes/com/template/common/utils/SendSms.class
  49. BIN
      target/classes/com/template/common/utils/ValidateCode.class
  50. BIN
      target/classes/com/template/common/utils/WaterElectricDataEncAndDecUtil.class
  51. BIN
      target/classes/com/template/common/utils/WaterElectricSignUtil.class
  52. BIN
      target/classes/com/template/common/utils/paramUtils.class
  53. BIN
      target/classes/com/template/component/WaterElectricComponent.class
  54. BIN
      target/classes/com/template/component/WeiXiaoComponent$1.class
  55. BIN
      target/classes/com/template/component/WeiXiaoComponent.class
  56. BIN
      target/classes/com/template/config/DoorLockConfig.class
  57. BIN
      target/classes/com/template/config/MySecurity.class
  58. BIN
      target/classes/com/template/config/WaterElectricConfig.class
  59. BIN
      target/classes/com/template/config/WeixiaoConfig.class
  60. BIN
      target/classes/com/template/controller/ExcelController.class
  61. BIN
      target/classes/com/template/controller/HouseController.class
  62. BIN
      target/classes/com/template/controller/HousePriceController.class
  63. BIN
      target/classes/com/template/controller/LoginController.class
  64. BIN
      target/classes/com/template/controller/PasswordIssController.class
  65. BIN
      target/classes/com/template/controller/RepairAdminController.class
  66. BIN
      target/classes/com/template/controller/UploadServlet.class
  67. BIN
      target/classes/com/template/core/CORSConfiguration$1.class
  68. BIN
      target/classes/com/template/core/JwtAuthenticationInterceptor.class
  69. BIN
      target/classes/com/template/core/JwtlnterceptorConfig.class
  70. BIN
      target/classes/com/template/core/ReplaceStreamFilter.class
  71. BIN
      target/classes/com/template/core/RequestWrapper$1.class
  72. BIN
      target/classes/com/template/core/RequestWrapper.class
  73. BIN
      target/classes/com/template/handle/NonStaticResourceHttpRequestHandler.class
  74. BIN
      target/classes/com/template/handler/MyMetaObjectHandler.class
  75. BIN
      target/classes/com/template/mapper/HouseMapper.class
  76. BIN
      target/classes/com/template/mapper/HousePriceMapper.class
  77. BIN
      target/classes/com/template/model/dto/AlterDto.class
  78. BIN
      target/classes/com/template/model/dto/AlterPriceDto.class
  79. BIN
      target/classes/com/template/model/dto/BillHandleResultDTO.class
  80. BIN
      target/classes/com/template/model/dto/CardInfoDto.class
  81. BIN
      target/classes/com/template/model/dto/EventMessageDTO$EventMessageDTOBuilder.class
  82. BIN
      target/classes/com/template/model/dto/EventMessageDTO.class
  83. BIN
      target/classes/com/template/model/dto/FingerprintDataDto.class
  84. BIN
      target/classes/com/template/model/dto/HouseDto.class
  85. BIN
      target/classes/com/template/model/dto/HousePriceAlterDto.class
  86. BIN
      target/classes/com/template/model/dto/LockRoomDTO$LockRoomDTOBuilder.class
  87. BIN
      target/classes/com/template/model/dto/LockRoomDTO.class
  88. BIN
      target/classes/com/template/model/dto/PasswordDto.class
  89. BIN
      target/classes/com/template/model/enumModel/PasswordUrlEnum.class
  90. BIN
      target/classes/com/template/model/enumModel/eIsSuper.class
  91. BIN
      target/classes/com/template/model/enumModel/eStatu.class
  92. BIN
      target/classes/com/template/model/pojo/ClassSchedule.class
  93. BIN
      target/classes/com/template/model/pojo/House.class
  94. BIN
      target/classes/com/template/model/pojo/HouseNumber.class
  95. BIN
      target/classes/com/template/model/pojo/HousePrice.class
  96. BIN
      target/classes/com/template/model/pojo/HouseState.class
  97. BIN
      target/classes/com/template/model/pojo/PermissionSetting.class
  98. BIN
      target/classes/com/template/model/pojo/RepairAdmin.class
  99. BIN
      target/classes/com/template/model/request/loginRequest.class
  100. 0 0
      target/classes/com/template/model/result/BaseResult.class

+ 0 - 8
.idea/.gitignore

@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml

+ 0 - 11
.idea/compiler.xml

@@ -3,17 +3,6 @@
   <component name="CompilerConfiguration">
     <annotationProcessing>
       <profile default="true" name="Default" enabled="true" />
-      <profile name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-        <module name="mybatis_plus" />
-      </profile>
     </annotationProcessing>
   </component>
-  <component name="JavacSettings">
-    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
-      <module name="mybatis_plus" options="-parameters" />
-    </option>
-  </component>
 </project>

+ 0 - 6
.idea/encodings.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding">
-    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
-  </component>
-</project>

+ 0 - 20
.idea/jarRepositories.xml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jboss.community" />
-      <option name="name" value="JBoss Community repository" />
-      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
-    </remote-repository>
-  </component>
-</project>

+ 1 - 1
.idea/misc.xml

@@ -8,5 +8,5 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
 </project>

+ 0 - 124
.idea/uiDesigner.xml

@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Palette2">
-    <group name="Swing">
-      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
-      </item>
-      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
-        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
-        <initial-values>
-          <property name="text" value="Button" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="RadioButton" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="CheckBox" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="Label" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
-          <preferred-size width="-1" height="20" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
-      </item>
-    </group>
-  </component>
-</project>

+ 166 - 0
.idea/workspace.xml

@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="SELECTIVE" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="42a0d34b-c484-4704-92dd-be5ac61d2f66" name="Changes" comment="">
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/template/common/utils/DateUtil.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/template/common/utils/Func.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/template/model/vo/HousePricePageVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/template/model/vo/HousePriceVo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/jarRepositories.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/uiDesigner.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/api/HousePriceAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/api/HousePriceAPI.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/controller/HousePriceController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/controller/HousePriceController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/mapper/HousePriceMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/mapper/HousePriceMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/services/HousePriceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/services/HousePriceService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/services/impl/HousePriceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/services/impl/HousePriceServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/template/HousePriceMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/template/HousePriceMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/template/controller/HousePriceController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/template/controller/HousePriceController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/template/mapper/HousePriceMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/template/mapper/HousePriceMapper.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/template/services/impl/HousePriceServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/template/services/impl/HousePriceServiceImpl.class" 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/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar.original" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/surefire-reports/TEST-com.template.MybatisPlusApplicationTests.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/surefire-reports/TEST-com.template.WrapperTest.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/surefire-reports/com.template.MybatisPlusApplicationTests.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/surefire-reports/com.template.WrapperTest.txt" beforeDir="false" />
+    </list>
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Class" />
+      </list>
+    </option>
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="MavenImportPreferences">
+    <option name="generalSettings">
+      <MavenGeneralSettings>
+        <option name="mavenHome" value="D:/soft/maven/apache-maven-3.8.6" />
+        <option name="userSettingsFile" value="D:\soft\maven\apache-maven-3.8.6\conf\settings.xml" />
+      </MavenGeneralSettings>
+    </option>
+  </component>
+  <component name="MavenRunner">
+    <option name="skipTests" value="true" />
+  </component>
+  <component name="ProjectId" id="2YHd6TDRlyqYh3OC9nI7fVxdhno" />
+  <component name="ProjectViewState">
+    <option name="showExcludedFiles" value="false" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "project.structure.last.edited": "Project",
+    "project.structure.proportion": "0.15",
+    "project.structure.side.proportion": "0.0",
+    "settings.editor.selected.configurable": "MavenSettings",
+    "spring.configuration.checksum": "f6966ce39847c3d9a18b4a1dfc3fec06"
+  }
+}]]></component>
+  <component name="RecentsManager">
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="com.template.common.utils" />
+    </key>
+  </component>
+  <component name="RunDashboard">
+    <option name="configurationTypes">
+      <set>
+        <option value="SpringBootApplicationConfigurationType" />
+      </set>
+    </option>
+  </component>
+  <component name="RunManager">
+    <configuration name="MybatisPlusApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
+      <module name="iHotel_student_houtai" />
+      <option name="SPRING_BOOT_MAIN_CLASS" value="com.template.MybatisPlusApplication" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.template.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+  <component name="SshConsoleOptionsProvider">
+    <option name="myEncoding" value="UTF-8" />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="42a0d34b-c484-4704-92dd-be5ac61d2f66" name="Changes" comment="" />
+      <created>1700186263832</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1700186263832</updated>
+      <workItem from="1700186265128" duration="1452000" />
+      <workItem from="1700187845025" duration="12974000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/HousePriceController.java</url>
+          <line>244</line>
+          <option name="timeStamp" value="3" />
+        </line-breakpoint>
+      </breakpoints>
+    </breakpoint-manager>
+    <watches-manager>
+      <configuration name="SpringBootApplicationConfigurationType">
+        <watch expression="housePrices" />
+      </configuration>
+    </watches-manager>
+  </component>
+</project>

+ 5 - 0
src/main/java/com/template/api/HousePriceAPI.java

@@ -25,4 +25,9 @@ public interface HousePriceAPI {
     @ApiOperation(value = "批量改价记录", notes = "批量改价记录", httpMethod = "GET")
     CommonResult alterPriceRecord(int adminId,String type,String houseName,String operatingTime,String priceTime,String operatingName,int page,int size);
 
+
+    @GetMapping("/housePricePage")
+    @ApiOperation(value = "房价管理展示", notes = "房价管理展示", httpMethod = "GET")
+        CommonResult housePricePage(String date,String houseName,String houseType,int page,int size);
+
 }

+ 551 - 0
src/main/java/com/template/common/utils/DateUtil.java

@@ -0,0 +1,551 @@
+package com.template.common.utils;
+
+
+
+
+import java.io.File;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.regex.Pattern;
+
+/**
+ * @author xieli
+ * @date 2023/8/1 17:34
+ * @description 时间工具类 date
+ */
+public class DateUtil
+{
+    public DateUtil() {
+
+    }
+
+    public static String Time_Formatter_Day = "yyyy-MM-dd";
+    public static String Time_Formatter_yyyyMMdd = "yyyyMMdd";
+    public static String Time_Formatter_Second = "yyyy-MM-dd HH:mm:ss";
+
+    // 获取昨天时间
+    public static String getYesturday(Date date, String format) {
+        Calendar nowTime2 = Calendar.getInstance();
+        nowTime2.setTime(date);
+        nowTime2.add(Calendar.DATE, -1);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
+        return simpleDateFormat.format(nowTime2.getTime());
+    }
+
+    public static String getCurrentYear() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+        Date date = new Date();
+        return sdf.format(date);
+    }
+
+    /**
+     * 判断 firstDate 是否在 secondDate 之前或相等.
+     * @param firstDate .
+     * @param secondDate .
+     * @return firstDate 在 secondDate 之前或相等时返回 true,否则返回 false.
+     */
+    public static boolean isBeforeOrEqual(Date firstDate, Date secondDate) {
+        if (secondDate == null) {
+            return true;
+        }
+        if (firstDate.compareTo(secondDate) <= 0) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * 数据库使用mysql的datetime类型时读取出来数据后出现“.0”
+     * 此工具类进行类型转化
+     * @param time
+     * @return
+     */
+    public static String convertDateTimeMysql(String time)
+    {
+        if (Func.checkNull(time))
+            return time;
+        try {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Date date = format.parse(time);
+            String resultTime= format.format(date);
+            return resultTime;
+        } catch (ParseException e) {
+//            throw new RuntimeException(e);
+            return time.replace(".0","");
+        }
+
+    }
+
+    /**
+     * 比较日期
+     * @param firstDate 第一个
+     * @param secondDate 第二个
+     * @return boolean
+     */
+    public static boolean isAfterOrEqual(Date firstDate, Date secondDate) {
+        if (secondDate == null) {
+            return true;
+        }
+        if (firstDate.compareTo(secondDate) >= 0) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * 验证日期格式是否正确.
+     * @param datestr .
+     * @return .
+     */
+    public static boolean isISO8601Date(String datestr) {
+        return Pattern
+                .compile(
+                        "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$")
+                .matcher(datestr).matches();
+    }
+
+    /**
+     * 获取两个指定日期相差的天数.
+     * @param firstDate .
+     * @param secondDate .
+     * @return .
+     */
+    public static int getBetweenDay(Date firstDate, Date secondDate) {
+        // 时间格式相同,获取两时间差的秒数
+        long betweendDateBySeconds = firstDate.getTime() - secondDate.getTime();
+        // 得到天数(保持正负号)
+        return (int) (betweendDateBySeconds / (1000 * 3600 * 24));
+    }
+
+    /**
+     * 获取系统当前时间.
+     * @return .
+     */
+    public static Date getCurrentDate() {
+        return new Date();
+    }
+
+    /**
+     * 年份
+     * @param datIn 日期
+     * @return int
+     */
+    public static int getYear(Date datIn) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(datIn);
+
+        return calendar.get(Calendar.YEAR);
+    }
+
+    /**
+     * 月份
+     * @param datIn 日期
+     * @return int
+     */
+    public static int getMonth(Date datIn) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(datIn);
+
+        return calendar.get(Calendar.MONTH) + 1;
+    }
+
+    /**
+     * 日
+     * @param datIn 日期
+     * @return int
+     */
+    public static int getDay(Date datIn) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(datIn);
+
+        return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+
+    /**
+     * 小时
+     * @param datIn 日期
+     * @return int
+     */
+    public static int getHour(Date datIn) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(datIn);
+
+        return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+
+    /**
+     * 分钟
+     * @param datIn 日期
+     * @return int
+     */
+    public static int getMinute(Date datIn) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(datIn);
+
+        return calendar.get(Calendar.MINUTE);
+    }
+
+    /**
+     * 秒数
+     * @param datIn 日期
+     * @return int
+     */
+    public static int getSecond(Date datIn) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(datIn);
+
+        return calendar.get(Calendar.SECOND);
+    }
+
+    /**
+     * 格式化日期
+     * @param patern 格式字符
+     * @return String
+     */
+    public static String getFormatDate(String patern) {
+        return new SimpleDateFormat(patern).format(new Date());
+    }
+
+    /**
+     * 格式化日期
+     * @param datIn 日期
+     * @return String
+     */
+    public static String getFormatPaternDate(Date datIn) {
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(datIn);
+    }
+
+    /**
+     * 将指定字符串,通过指定格式转换为日期对象.
+     * @param dateStr 字符串
+     * @return Date
+     */
+    public static Date parseDate(String dateStr, String formatter) {
+
+        try {
+            if (Func.checkNullOrEmpty(dateStr)) {
+                return null;
+            }
+            return new SimpleDateFormat(formatter).parse(dateStr);
+        } catch (ParseException e) {
+            return null;
+        }
+    }
+
+    /**
+     * 将指定字符串,通过指定格式转换为日期对象.
+     * @param dateStr 字符串
+     * @return Date
+     */
+    public static Date parseDateOnly(String dateStr) {
+        if (Func.checkNullOrEmpty(dateStr)) {
+            return null;
+        }
+
+        try {
+            return new SimpleDateFormat("yyyy-MM-dd").parse(dateStr);
+        } catch (ParseException e) {
+            try {
+                return new SimpleDateFormat("yyyy/MM/dd").parse(dateStr);
+            } catch (Exception e2) {
+                new Exception("时间格式错误:" + e2.getMessage()).printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 转化成时间区间.
+     * @param startTime 字符串开始时间
+     * @param endTime   字符串
+     * @return Date
+     */
+    public static String  convertTimeArea(String startTime, String endTime) {
+        if (Func.checkNullOrEmpty(startTime) || Func.checkNullOrEmpty(endTime)) {
+            return null;
+        }
+
+        try {
+            Date start = new SimpleDateFormat(Time_Formatter_Day).parse(startTime);
+            Date end = new SimpleDateFormat(Time_Formatter_Day).parse(endTime);
+            String startDate = parseDateToStr(start,"mmdd");
+            String endDate = parseDateToStr(end,"mmdd");
+
+            return startDate + "-" +endDate;
+        } catch (ParseException e) {
+          new Exception("时间格式错误:" + e.getMessage()).printStackTrace();
+        }
+        return null;
+    }
+
+
+
+    /**
+     * 将日期date转化成string
+     * @param date
+     * @return
+     */
+    public static String parseDateToStr(Date date, String formatter) {
+        SimpleDateFormat sdf = new SimpleDateFormat(formatter);
+        return sdf.format(date);
+    }
+
+    /**
+     * 增加日期
+     * @param date 日期
+     * @param dateField 字段
+     * @param dateAmount 数量
+     * @return Date
+     */
+    public static Date addDate(Date date, int dateField, int dateAmount) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(dateField, dateAmount);
+
+        return calendar.getTime();
+    }
+
+    /**
+     * 格式化指定日期格式
+     * @param datIn 日期内容
+     * @param formatStr 格式化字符
+     * @return 格式化之后的日期对象
+     * @throws ParseException 转换异常
+     */
+    public static Date formateDate(Date datIn, String formatStr) throws ParseException {
+        String dateStr = new SimpleDateFormat(formatStr).format(datIn);
+
+        return new SimpleDateFormat(formatStr).parse(dateStr);
+    }
+
+    /**
+     *  获取两个日期相差的月数
+     * @param c1    较大的日期
+     * @param c2    较小的日期
+     * @return  如果d1>d2返回 月数差 否则返回0
+     */
+    public static int getMonthDiff(Calendar c1, Calendar c2) {
+        if (c1.getTimeInMillis() < c2.getTimeInMillis()) {
+            return 0;
+        }
+        int year1 = c1.get(Calendar.YEAR);
+        int year2 = c2.get(Calendar.YEAR);
+        int month1 = c1.get(Calendar.MONTH);
+        int month2 = c2.get(Calendar.MONTH);
+        int day1 = c1.get(Calendar.DAY_OF_MONTH);
+        int day2 = c2.get(Calendar.DAY_OF_MONTH);
+        // 获取年的差值 假设 d1 = 2015-8-16  d2 = 2011-9-30
+        int yearInterval = year1 - year2;
+        // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数
+        if (month1 < month2 || month1 == month2 && day1 < day2) {
+            yearInterval--;
+        }
+        // 获取月数差值
+        int monthInterval = (month1 + 12) - month2;
+        if (day1 < day2) {
+            monthInterval--;
+        }
+        monthInterval %= 12;
+        return yearInterval * 12 + monthInterval;
+    }
+
+    /**
+     * 获得两个日期之间的所有月份
+     * @param minDate minDate
+     * @param maxDate maxDate
+     * @return List<String>
+     * @throws ParseException ParseException
+     */
+    public static List<String> getMonthBetween(String minDate, String maxDate) throws ParseException {
+        ArrayList<String> result = new ArrayList<String>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化为年月
+
+        Calendar min = Calendar.getInstance();
+        Calendar max = Calendar.getInstance();
+
+        min.setTime(sdf.parse(minDate));
+        min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
+
+        max.setTime(sdf.parse(maxDate));
+        max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
+
+        Calendar curr = min;
+        while (curr.before(max)) {
+            result.add(sdf.format(curr.getTime()));
+            curr.add(Calendar.MONTH, 1);
+        }
+
+        return result;
+    }
+
+    /**
+     * 转换日期 yyyy/MM/dd
+     * @param str 对象
+     * @return boolean
+     */
+    @SuppressWarnings("deprecation")
+    public static boolean isDateStr(String str, boolean hasDay) {
+
+        boolean convertSuccess = true;
+        // 指定日期格式为四位年/两位月份/两位日期,注意yyyy-MM-dd区分大小写;
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        if (!hasDay) {
+            format = new SimpleDateFormat("yyyy-MM");
+        }
+        try {
+            // 设置lenient为false.
+            // 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
+            format.setLenient(false);
+            format.parse(str);
+        } catch (ParseException e) {
+            try {
+                SimpleDateFormat formatt = new SimpleDateFormat("yyyy/MM/dd");
+                if (!hasDay) {
+                    formatt = new SimpleDateFormat("yyyy/MM");
+                }
+                formatt.setLenient(false);
+                Date tempDate = formatt.parse(str);
+                // 年份大于9999年 则视为非法;
+                if (tempDate.getYear() > 8099) {
+                    convertSuccess = false;
+                }
+            } catch (Exception e2) {
+                convertSuccess = false;
+            }
+        }
+        return convertSuccess;
+    }
+
+    /**
+     * 根据当前时间获取文件夹
+     * @return String
+     */
+    public static String getCurrentDateFolder() {
+        Calendar now = Calendar.getInstance();
+        int year = now.get(Calendar.YEAR);
+        int month = now.get(Calendar.MONTH) + 1;
+        int day = now.get(Calendar.DAY_OF_MONTH);
+        return year + File.separator + month + File.separator + day + File.separator;
+    }
+
+    /**
+     * 对比时间(精确到天)
+     * @param date1
+     * @param date2
+     */
+    public static boolean compareDateTimeSpecial(String date1, String date2, String order) {
+        Date d1 = parseDateOnly(date1);
+        Date d2 = parseDateOnly(date2);
+        if (d1.equals(d2)) {
+            return false;
+        } else if (d1.before(d2)) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * 获取两个日期之间相差多少天
+     * @param date1
+     * @param date2
+     * @return
+     */
+    public static int getDayDiff(String date1,String date2)
+    {
+        DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
+        Date star = parseDateOnly(date1);
+        Date endDay=parseDateOnly(date2);
+        Date nextDay=star;
+        int i=0;
+        while(nextDay.before(endDay)){//当明天不在结束时间之前是终止循环
+            Calendar cld = Calendar.getInstance();
+            cld.setTime(star);
+            cld.add(Calendar.DATE, 1);
+            star = cld.getTime();
+            //获得下一天日期字符串
+            nextDay = star;
+            i++;
+        }
+        return i;
+    }
+
+    /**
+     * 获得两个日期之间的所有日期
+     *
+     * @param startDate 开始日期
+     * @param endDate 结束日期
+     */
+    public static List<Date> getDateListBetween(Date startDate, Date endDate) {
+        List<Date> result = new ArrayList<>();
+        // result.add(parseDateToStr(startDate, Time_Formatter_Day));
+        result.add(startDate);
+        Calendar calBegin = Calendar.getInstance();
+        // 使用给定的 Date 设置此 Calendar 的时间
+        calBegin.setTime(startDate);
+        Calendar calEnd = Calendar.getInstance();
+        // 使用给定的 Date 设置此 Calendar 的时间
+        calEnd.setTime(endDate);
+        // 测试此日期是否在指定日期之后
+        while (endDate.after(calBegin.getTime())) {
+            // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
+            calBegin.add(Calendar.DAY_OF_MONTH, 1);
+            // result.add(parseDateToStr(calBegin.getTime(), Time_Formatter_Day));
+            result.add(calBegin.getTime());
+        }
+        return result;
+    }
+
+    /**
+     * 获得两个日期之间的所有日期
+     *
+     * @param startDate 开始日期
+     * @param endDate 结束日期
+     */
+    public static List<String> getDateStrListBetween(Date startDate, Date endDate) {
+        List<String> result = new ArrayList<>();
+        result.add(parseDateToStr(startDate, Time_Formatter_Day));
+        Calendar calBegin = Calendar.getInstance();
+        // 使用给定的 Date 设置此 Calendar 的时间
+        calBegin.setTime(startDate);
+        Calendar calEnd = Calendar.getInstance();
+        // 使用给定的 Date 设置此 Calendar 的时间
+        calEnd.setTime(endDate);
+        // 测试此日期是否在指定日期之后
+        while (endDate.after(calBegin.getTime())) {
+            // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
+            calBegin.add(Calendar.DAY_OF_MONTH, 1);
+            result.add(parseDateToStr(calBegin.getTime(), Time_Formatter_Day));
+        }
+        return result;
+    }
+
+    /**
+     * 判断当前时间是否在[startTime, endTime]区间
+     *
+     * @param dataIn 传入的时间
+     * @param startTime 开始时间
+     * @param endTime 结束时间
+     */
+    public static boolean isEffectiveDate(Date dataIn, Date startTime, Date endTime) {
+        if (dataIn.getTime() == startTime.getTime()
+                || dataIn.getTime() == endTime.getTime()) {
+            return true;
+        }
+        Calendar date = Calendar.getInstance();
+        date.setTime(dataIn);
+        Calendar begin = Calendar.getInstance();
+        begin.setTime(startTime);
+        Calendar end = Calendar.getInstance();
+        end.setTime(endTime);
+        return date.after(begin) && date.before(end);
+    }
+
+}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1414 - 0
src/main/java/com/template/common/utils/Func.java


+ 126 - 3
src/main/java/com/template/controller/HousePriceController.java

@@ -1,9 +1,13 @@
 package com.template.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.api.HousePriceAPI;
+import com.template.common.utils.DateUtil;
 import com.template.model.dto.AlterDto;
 import com.template.model.dto.AlterPriceDto;
 import com.template.model.pojo.House;
@@ -12,18 +16,27 @@ import com.template.model.pojo.PermissionSetting;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.AlterPriceRecordVo;
+import com.template.model.vo.HousePricePageVo;
+import com.template.model.vo.HousePriceVo;
 import com.template.model.vo.RoomTypeVo;
 import com.template.services.HousePriceService;
 import com.template.services.HouseService;
 import com.template.services.PermissionSettingService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -109,7 +122,7 @@ public class HousePriceController implements HousePriceAPI {
 //                原价
                 housePrice.setOriginalPrice(roomPrice);
 //              房型id
-                housePrice.setHouseId(house.getId()+"");
+                housePrice.setHouseId(house.getId() + "");
 //              设置日期
                 housePrice.setSetDate(alterDto.getDate());
 
@@ -128,7 +141,7 @@ public class HousePriceController implements HousePriceAPI {
     }
 
     @Override
-    public CommonResult alterPriceRecord(int adminId, String type, String houseName, String operatingTime, String priceTime, String operatingName,int page,int size) {
+    public CommonResult alterPriceRecord(int adminId, String type, String houseName, String operatingTime, String priceTime, String operatingName, int page, int size) {
         if (ObjectUtils.isEmpty(adminId)) {
             return CommonResult.fail();
         }
@@ -161,12 +174,122 @@ public class HousePriceController implements HousePriceAPI {
             }
         }
 
-        PageUtils<AlterPriceRecordVo> voPageUtils=housePriceService.alterPriceRecord(type,houseName,operatingTime,priceTime,operatingName,page,size);
+        PageUtils<AlterPriceRecordVo> voPageUtils = housePriceService.alterPriceRecord(type, houseName, operatingTime, priceTime, operatingName, page, size);
 
 
         return CommonResult.ok(voPageUtils);
     }
 
+    @Override
+    public CommonResult housePricePage(String date, String houseName, String houseType, int page, int size) {
+
+        if (ObjectUtils.isEmpty(page) && page <= 0) {
+            page = 1;
+        }
+        if (ObjectUtils.isEmpty(size) && size <= 0) {
+            size = 10;
+        }
+
+
+        //        获取当时时间
+        LocalDate localDate;
+        DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if (ObjectUtils.isEmpty(date)) {
+            localDate = LocalDate.now();
+        } else {
+            localDate = LocalDate.parse(date, dateTimeFormatter2);
+        }
+//      需获取21天内的所有改价信息
+        LocalDate endLocalDate = localDate.plusDays(20);
+
+//        返回格式
+        HashMap<String, Object> map = new HashMap<>();
+
+
+        //        时间日期
+        ArrayList<String> list = new ArrayList<>();
+        for (int i = 0; i < 21; i++) {
+            LocalDate localDate1 = localDate.plusDays(i);
+            String format = localDate1.format(dateTimeFormatter2);
+            list.add(format);
+        }
+        map.put("dateTime",list);
+
+//      先获取房型数据
+        LambdaQueryWrapper<House> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ObjectUtils.isNotEmpty(houseName), House::getRoomName, houseName)
+                .eq(ObjectUtils.isNotEmpty(houseType), House::getRoomType, houseType);
+        IPage<House> houseIPage = houseService.page(new Page<>(page, size), wrapper);
+
+
+        List<House> houseList = houseIPage.getRecords();
+        if (ObjectUtils.isEmpty(houseList) && houseList.size() <= 0) {
+            map.put("page",houseIPage);
+            return CommonResult.ok(map);
+        }
+
+//      获取当前房型的所有id
+        String ids = "";
+        for (int i = 0; i < houseList.size(); i++) {
+            String id = houseList.get(i).getId() + "";
+            if (i == 0) {
+                ids = ids + id;
+            } else {
+                ids = ids + "," + id;
+            }
+        }
+        System.out.println("ids = " + ids);
+
+
+//        获取在这21天内所属房型的所有改价记录
+        List<HousePrice> housePrices = housePriceService.housePrice(localDate, endLocalDate, ids);
+
+        ArrayList<HousePricePageVo> housePricePageVos = new ArrayList<>();
+//        组合数据
+        for (House house : houseList) {
+            HousePricePageVo housePricePageVo = new HousePricePageVo();
+            housePricePageVo.setHouseName(house.getRoomName());
+            housePricePageVo.setHouseType(house.getRoomType());
+            ArrayList<HousePriceVo> housePriceVos = new ArrayList<>();
+            for (int i = 0; i < 21; i++) {
+                HousePriceVo housePriceVo = new HousePriceVo();
+                LocalDate localDate1 = localDate.plusDays(i);
+                String format = localDate1.format(dateTimeFormatter2);
+                housePriceVo.setDate(format);
+                housePriceVo.setPrice(house.getRoomPrice());
+//                判断这个时间内是否有
+                for (HousePrice housePrice : housePrices) {
+                    if (housePrice.getHouseId().equals(house.getId() + "")) {
+                        String setDate = housePrice.getSetDate();
+                        String[] split = setDate.split(",");
+                        Date startDate = DateUtil.parseDateOnly(split[0]);
+                        Date endDate = DateUtil.parseDateOnly(split[1]);
+                        Date date1 = Date.from(localDate1.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+                        //      判断当前时间是否在[startTime, endTime]区间
+                        assert startDate != null;
+                        boolean effectiveDate = DateUtil.isEffectiveDate(date1, startDate, endDate);
+                        if (effectiveDate) {
+                            BigDecimal price = housePrice.getPrice();
+                            housePriceVo.setPrice(price);
+                        }
+                    }
+                }
+                housePriceVos.add(housePriceVo);
+
+            }
+            housePricePageVo.setHousePriceVos(housePriceVos);
+            housePricePageVos.add(housePricePageVo);
+        }
+        IPage<HousePricePageVo> housePricePageVoIPage = new Page<>();
+        BeanUtils.copyProperties(houseIPage, housePricePageVoIPage);
+
+        housePricePageVoIPage.setRecords(housePricePageVos);
+
+        map.put("page",housePricePageVoIPage);
+        return CommonResult.ok(map);
+
+    }
+
 
 }
 

+ 5 - 0
src/main/java/com/template/mapper/HousePriceMapper.java

@@ -6,6 +6,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.template.model.pojo.HousePrice;
 import com.template.model.vo.AlterPriceRecordVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * <p>
@@ -20,4 +24,5 @@ public interface HousePriceMapper extends BaseMapper<HousePrice> {
 
     IPage<AlterPriceRecordVo> alterPriceRecord(Page<AlterPriceRecordVo> pageVo, String type, String houseName, String operatingTime, String priceTime, String operatingName);
 
+    List<HousePrice> housePrice(@Param("localDate") LocalDate localDate, @Param("endLocalDate") LocalDate endLocalDate, @Param("ids") String ids);
 }

+ 17 - 0
src/main/java/com/template/model/vo/HousePricePageVo.java

@@ -0,0 +1,17 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+@Data
+public class HousePricePageVo {
+
+    private String houseName;
+
+    private int houseType;
+
+    private List<HousePriceVo> housePriceVos;
+}

+ 12 - 0
src/main/java/com/template/model/vo/HousePriceVo.java

@@ -0,0 +1,12 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class HousePriceVo {
+
+    private String date;
+    private BigDecimal price;
+}

+ 5 - 0
src/main/java/com/template/services/HousePriceService.java

@@ -5,6 +5,9 @@ import com.template.model.pojo.HousePrice;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.AlterPriceRecordVo;
 
+import java.time.LocalDate;
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -16,4 +19,6 @@ import com.template.model.vo.AlterPriceRecordVo;
 public interface HousePriceService extends IService<HousePrice> {
 
     PageUtils<AlterPriceRecordVo> alterPriceRecord(String type, String houseName, String operatingTime, String priceTime, String operatingName, int page, int size);
+
+    List<HousePrice> housePrice(LocalDate localDate, LocalDate endLocalDate, String ids);
 }

+ 8 - 0
src/main/java/com/template/services/impl/HousePriceServiceImpl.java

@@ -11,6 +11,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -30,4 +33,9 @@ public class HousePriceServiceImpl extends ServiceImpl<HousePriceMapper, HousePr
         IPage<AlterPriceRecordVo> result=housePriceMapper.alterPriceRecord(pageVo,type,houseName,operatingTime,priceTime,operatingName);
         return new PageUtils(result);
     }
+
+    @Override
+    public List<HousePrice> housePrice(LocalDate localDate, LocalDate endLocalDate, String ids) {
+        return housePriceMapper.housePrice(localDate,endLocalDate,ids);
+    }
 }

+ 9 - 1
src/main/resources/mapper/template/HousePriceMapper.xml

@@ -40,7 +40,7 @@
             </if>
 
             <if test="operatingName != null and operatingName != ''">
-                AND a.`name` LIKE  '%' #{operatingName} '%'
+                AND a.`name` LIKE '%' #{operatingName} '%'
             </if>
 
         </where>
@@ -50,4 +50,12 @@
 
 
     </select>
+    <select id="housePrice" resultType="com.template.model.pojo.HousePrice">
+        SELECT *
+        FROM `house_price`
+        WHERE #{endLocalDate} > substring_index(set_date, ',', 1)
+          and substring_index(set_date, ',', -1) > #{localDate}
+          and FIND_IN_SET(house_id, #{ids})
+            and deleted=0
+    </select>
 </mapper>

BIN
target/classes/com/repair/model/request/changePasswordRequest.class


BIN
target/classes/com/repair/model/request/freezeRepairAdminRequest.class


BIN
target/classes/com/repair/model/request/queryAccountPageRequest.class


BIN
target/classes/com/repair/model/request/updateRepairAdminRequest.class


BIN
target/classes/com/template/AutoCode.class


BIN
target/classes/com/template/MybatisPlusApplication.class


BIN
target/classes/com/template/aop/LoginCheckAspect.class


BIN
target/classes/com/template/api/ExcelControllerAPI.class


BIN
target/classes/com/template/api/HouseAPI.class


BIN
target/classes/com/template/api/HousePriceAPI.class


BIN
target/classes/com/template/api/LoginControllerAPI.class


BIN
target/classes/com/template/api/RepairAdminControllerAPI.class


BIN
target/classes/com/template/common/exception/EmsException.class


BIN
target/classes/com/template/common/exception/EmsExceptionHandler.class


BIN
target/classes/com/template/common/exception/MyCustomException.class


BIN
target/classes/com/template/common/result/ResponseStatusEnum.class


BIN
target/classes/com/template/common/utils/AES.class


BIN
target/classes/com/template/common/utils/AesUtils.class


BIN
target/classes/com/template/common/utils/CommonUtil.class


BIN
target/classes/com/template/common/utils/DateUtil.class


BIN
target/classes/com/template/common/utils/DoorLockAESUtil.class


BIN
target/classes/com/template/common/utils/DoorLockMD5Util.class


BIN
target/classes/com/template/common/utils/EncryptionUtil.class


BIN
target/classes/com/template/common/utils/FileUtil.class


BIN
target/classes/com/template/common/utils/Func.class


BIN
target/classes/com/template/common/utils/HttpClientHelper.class


BIN
target/classes/com/template/common/utils/JWTUtil.class


BIN
target/classes/com/template/common/utils/MD5.class


BIN
target/classes/com/template/common/utils/MyBase64.class


BIN
target/classes/com/template/common/utils/RSAUtils.class


BIN
target/classes/com/template/common/utils/SendSms.class


BIN
target/classes/com/template/common/utils/ValidateCode.class


BIN
target/classes/com/template/common/utils/WaterElectricDataEncAndDecUtil.class


BIN
target/classes/com/template/common/utils/WaterElectricSignUtil.class


BIN
target/classes/com/template/common/utils/paramUtils.class


BIN
target/classes/com/template/component/WaterElectricComponent.class


BIN
target/classes/com/template/component/WeiXiaoComponent$1.class


BIN
target/classes/com/template/component/WeiXiaoComponent.class


BIN
target/classes/com/template/config/DoorLockConfig.class


BIN
target/classes/com/template/config/MySecurity.class


BIN
target/classes/com/template/config/WaterElectricConfig.class


BIN
target/classes/com/template/config/WeixiaoConfig.class


BIN
target/classes/com/template/controller/ExcelController.class


BIN
target/classes/com/template/controller/HouseController.class


BIN
target/classes/com/template/controller/HousePriceController.class


BIN
target/classes/com/template/controller/LoginController.class


BIN
target/classes/com/template/controller/PasswordIssController.class


BIN
target/classes/com/template/controller/RepairAdminController.class


BIN
target/classes/com/template/controller/UploadServlet.class


BIN
target/classes/com/template/core/CORSConfiguration$1.class


BIN
target/classes/com/template/core/JwtAuthenticationInterceptor.class


BIN
target/classes/com/template/core/JwtlnterceptorConfig.class


BIN
target/classes/com/template/core/ReplaceStreamFilter.class


BIN
target/classes/com/template/core/RequestWrapper$1.class


BIN
target/classes/com/template/core/RequestWrapper.class


BIN
target/classes/com/template/handle/NonStaticResourceHttpRequestHandler.class


BIN
target/classes/com/template/handler/MyMetaObjectHandler.class


BIN
target/classes/com/template/mapper/HouseMapper.class


BIN
target/classes/com/template/mapper/HousePriceMapper.class


BIN
target/classes/com/template/model/dto/AlterDto.class


BIN
target/classes/com/template/model/dto/AlterPriceDto.class


BIN
target/classes/com/template/model/dto/BillHandleResultDTO.class


BIN
target/classes/com/template/model/dto/CardInfoDto.class


BIN
target/classes/com/template/model/dto/EventMessageDTO$EventMessageDTOBuilder.class


BIN
target/classes/com/template/model/dto/EventMessageDTO.class


BIN
target/classes/com/template/model/dto/FingerprintDataDto.class


BIN
target/classes/com/template/model/dto/HouseDto.class


BIN
target/classes/com/template/model/dto/HousePriceAlterDto.class


BIN
target/classes/com/template/model/dto/LockRoomDTO$LockRoomDTOBuilder.class


BIN
target/classes/com/template/model/dto/LockRoomDTO.class


BIN
target/classes/com/template/model/dto/PasswordDto.class


BIN
target/classes/com/template/model/enumModel/PasswordUrlEnum.class


BIN
target/classes/com/template/model/enumModel/eIsSuper.class


BIN
target/classes/com/template/model/enumModel/eStatu.class


BIN
target/classes/com/template/model/pojo/ClassSchedule.class


BIN
target/classes/com/template/model/pojo/House.class


BIN
target/classes/com/template/model/pojo/HouseNumber.class


BIN
target/classes/com/template/model/pojo/HousePrice.class


BIN
target/classes/com/template/model/pojo/HouseState.class


BIN
target/classes/com/template/model/pojo/PermissionSetting.class


BIN
target/classes/com/template/model/pojo/RepairAdmin.class


BIN
target/classes/com/template/model/request/loginRequest.class


+ 0 - 0
target/classes/com/template/model/result/BaseResult.class


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott