Browse Source

弱密码校验

夏文涛 1 year ago
parent
commit
63e3f89dd0
100 changed files with 3047 additions and 660 deletions
  1. 124 0
      .idea/uiDesigner.xml
  2. 395 638
      .idea/workspace.xml
  3. 238 0
      logs/smart-2024-12-31.log
  4. 47 0
      logs/smart-2025-01-13.log
  5. 979 0
      logs/smart-2025-01-14.log
  6. 153 0
      logs/smart-2025-01-15.log
  7. 4 4
      src/main/java/com/template/AutoCode.java
  8. 51 0
      src/main/java/com/template/api/AlumniHeartControllerAPI.java
  9. 1 1
      src/main/java/com/template/api/LoginControllerAPI.java
  10. 17 2
      src/main/java/com/template/common/utils/Message2.java
  11. 2 2
      src/main/java/com/template/controller/AlumniActivityController.java
  12. 2 2
      src/main/java/com/template/controller/AlumniEndorseController.java
  13. 156 0
      src/main/java/com/template/controller/AlumniHeartController.java
  14. 1 1
      src/main/java/com/template/controller/AlumniImageController.java
  15. 1 1
      src/main/java/com/template/controller/AlumniReturnController.java
  16. 38 4
      src/main/java/com/template/controller/AlumniUserController.java
  17. 5 5
      src/main/java/com/template/controller/LoginController.java
  18. 18 0
      src/main/java/com/template/mapper/AlumniHeartMapper.java
  19. 75 0
      src/main/java/com/template/model/pojo/AlumniHeart.java
  20. 48 0
      src/main/java/com/template/model/request/insertHeartRequest.java
  21. 5 0
      src/main/java/com/template/model/request/updateAccountRequest.java
  22. 48 0
      src/main/java/com/template/model/request/updateHeartRequest.java
  23. 30 0
      src/main/java/com/template/services/AlumniHeartService.java
  24. 79 0
      src/main/java/com/template/services/impl/AlumniHeartServiceImpl.java
  25. 5 0
      src/main/resources/mapper/template/AlumniHeartMapper.xml
  26. BIN
      target/alumni.jar
  27. BIN
      target/alumni.jar.original
  28. 202 0
      target/classes/META-INF/spring-configuration-metadata.json
  29. 109 0
      target/classes/application-dev.yml
  30. 109 0
      target/classes/application-prod.yml
  31. 105 0
      target/classes/application.yml
  32. BIN
      target/classes/com/template/AutoCode.class
  33. BIN
      target/classes/com/template/MybatisPlusApplication.class
  34. BIN
      target/classes/com/template/annotation/ControllerIsShow.class
  35. BIN
      target/classes/com/template/annotation/DESRespondSecret.class
  36. BIN
      target/classes/com/template/annotation/ExcelExport.class
  37. BIN
      target/classes/com/template/annotation/ExcelImport.class
  38. BIN
      target/classes/com/template/annotation/PassToken.class
  39. BIN
      target/classes/com/template/annotation/UserLoginCheck.class
  40. BIN
      target/classes/com/template/aop/DESResponseSecretAspect.class
  41. BIN
      target/classes/com/template/aop/LoggingAspect.class
  42. BIN
      target/classes/com/template/aop/LoginCheckAspect.class
  43. BIN
      target/classes/com/template/api/ActivityImageControllerAPI.class
  44. BIN
      target/classes/com/template/api/AlumniActivityControllerAPI.class
  45. BIN
      target/classes/com/template/api/AlumniAdminApplyControllerAPI.class
  46. BIN
      target/classes/com/template/api/AlumniCategoryControllerAPI.class
  47. BIN
      target/classes/com/template/api/AlumniCategoryImageControllerAPI.class
  48. BIN
      target/classes/com/template/api/AlumniCategoryNewsControllerAPI.class
  49. BIN
      target/classes/com/template/api/AlumniClubApplyControllerAPI.class
  50. BIN
      target/classes/com/template/api/AlumniClubControllerAPI.class
  51. BIN
      target/classes/com/template/api/AlumniEndorseControllerAPI.class
  52. BIN
      target/classes/com/template/api/AlumniHeartControllerAPI.class
  53. BIN
      target/classes/com/template/api/AlumniImageControllerAPI.class
  54. BIN
      target/classes/com/template/api/AlumniNewsControllerAPI.class
  55. BIN
      target/classes/com/template/api/AlumniOrgControllerAPI.class
  56. BIN
      target/classes/com/template/api/AlumniReturnControllerAPI.class
  57. BIN
      target/classes/com/template/api/AlumniUserControllerAPI.class
  58. BIN
      target/classes/com/template/api/DingTalkControllerAPI.class
  59. BIN
      target/classes/com/template/api/ExcelControllerAPI.class
  60. BIN
      target/classes/com/template/api/FileControllerAPI.class
  61. BIN
      target/classes/com/template/api/LogInfoControllerAPI.class
  62. BIN
      target/classes/com/template/api/LoginControllerAPI.class
  63. BIN
      target/classes/com/template/api/SmsCodeControllerAPI.class
  64. BIN
      target/classes/com/template/api/SystemMenuControllerAPI.class
  65. BIN
      target/classes/com/template/common/constanst/Constanst.class
  66. BIN
      target/classes/com/template/common/exception/EmsException.class
  67. BIN
      target/classes/com/template/common/exception/EmsExceptionHandler.class
  68. BIN
      target/classes/com/template/common/exception/MyCustomException.class
  69. BIN
      target/classes/com/template/common/jh/ReqRespResearchProductQuestionnaireItem.class
  70. BIN
      target/classes/com/template/common/jh/SectionUtil.class
  71. BIN
      target/classes/com/template/common/result/Code.class
  72. BIN
      target/classes/com/template/common/result/ResponseStatusEnum.class
  73. BIN
      target/classes/com/template/common/utils/AccessToken.class
  74. BIN
      target/classes/com/template/common/utils/AesTestOne.class
  75. BIN
      target/classes/com/template/common/utils/AesUtil.class
  76. BIN
      target/classes/com/template/common/utils/AesUtils.class
  77. BIN
      target/classes/com/template/common/utils/Base64Util.class
  78. BIN
      target/classes/com/template/common/utils/CommonUtil.class
  79. BIN
      target/classes/com/template/common/utils/DataBliu.class
  80. BIN
      target/classes/com/template/common/utils/DateUtils.class
  81. BIN
      target/classes/com/template/common/utils/DingTalkUtils.class
  82. BIN
      target/classes/com/template/common/utils/EncryptUtil.class
  83. BIN
      target/classes/com/template/common/utils/EncryptionUtil.class
  84. BIN
      target/classes/com/template/common/utils/ExcelClassField.class
  85. BIN
      target/classes/com/template/common/utils/ExcelUtil3.class
  86. BIN
      target/classes/com/template/common/utils/ExcelUtils.class
  87. BIN
      target/classes/com/template/common/utils/ExcelUtils2.class
  88. BIN
      target/classes/com/template/common/utils/FileUtils.class
  89. BIN
      target/classes/com/template/common/utils/GetVertifyCode.class
  90. BIN
      target/classes/com/template/common/utils/HMACUtils.class
  91. BIN
      target/classes/com/template/common/utils/HttpClientUtils$1.class
  92. BIN
      target/classes/com/template/common/utils/HttpClientUtils$LazyHolder.class
  93. BIN
      target/classes/com/template/common/utils/HttpClientUtils.class
  94. BIN
      target/classes/com/template/common/utils/HttpUtils.class
  95. BIN
      target/classes/com/template/common/utils/HttpsClient.class
  96. BIN
      target/classes/com/template/common/utils/JWTUtil.class
  97. BIN
      target/classes/com/template/common/utils/Md5Utils.class
  98. BIN
      target/classes/com/template/common/utils/Message$1.class
  99. BIN
      target/classes/com/template/common/utils/Message.class
  100. 0 0
      target/classes/com/template/common/utils/Message2.class

+ 124 - 0
.idea/uiDesigner.xml

@@ -0,0 +1,124 @@
+<?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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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.png" 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>

File diff suppressed because it is too large
+ 395 - 638
.idea/workspace.xml


File diff suppressed because it is too large
+ 238 - 0
logs/smart-2024-12-31.log


+ 47 - 0
logs/smart-2025-01-13.log

@@ -0,0 +1,47 @@
+2025-01-13 16:12:02.755 [background-preinit] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.5.Final
+2025-01-13 16:12:02.773 [main] INFO  com.template.MybatisPlusApplication - Starting MybatisPlusApplication using Java 1.8.0_181 on DESKTOP-4B4LOJM with PID 25236 (D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai\target\classes started by Bingo in D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai)
+2025-01-13 16:12:02.773 [main] INFO  com.template.MybatisPlusApplication - The following profiles are active: prod
+2025-01-13 16:12:03.466 [main] WARN  o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.template]' package. Please check your configuration.
+2025-01-13 16:12:03.513 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-01-13 16:12:03.515 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2025-01-13 16:12:03.553 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 27 ms. Found 0 Redis repository interfaces.
+2025-01-13 16:12:04.392 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8687 (http)
+2025-01-13 16:12:04.398 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8687"]
+2025-01-13 16:12:04.398 [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
+2025-01-13 16:12:04.398 [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.39]
+2025-01-13 16:12:04.464 [main] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring embedded WebApplicationContext
+2025-01-13 16:12:04.464 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1651 ms
+2025-01-13 16:12:04.817 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-01-13 16:12:05.260 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-01-13 16:12:06.611 [main] WARN  o.s.w.s.r.ResourceHttpRequestHandler - Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver.
+2025-01-13 16:12:08.418 [main] INFO  o.s.s.c.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-01-13 16:12:09.533 [main] INFO  org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor
+2025-01-13 16:12:09.540 [main] INFO  o.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2025-01-13 16:12:09.540 [main] INFO  org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.3.2 created.
+2025-01-13 16:12:09.541 [main] INFO  org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
+2025-01-13 16:12:09.541 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.3.2) 'quartzScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2025-01-13 16:12:09.541 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'quartzScheduler' initialized from an externally provided properties instance.
+2025-01-13 16:12:09.541 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.3.2
+2025-01-13 16:12:09.541 [main] INFO  org.quartz.core.QuartzScheduler - JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@6a6e6278
+2025-01-13 16:12:09.570 [main] INFO  o.s.s.c.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-01-13 16:12:09.643 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8687"]
+2025-01-13 16:12:09.777 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8687 (http) with context path '/alumni'
+2025-01-13 16:12:09.778 [main] INFO  o.s.s.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
+2025-01-13 16:12:09.779 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED started.
+2025-01-13 16:12:09.787 [main] INFO  com.template.MybatisPlusApplication - Started MybatisPlusApplication in 7.422 seconds (JVM running for 7.92)
+2025-01-13 16:12:15.855 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-13 16:12:15.970 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-01-13 16:12:15.971 [SpringContextShutdownHook] INFO  o.s.s.quartz.SchedulerFactoryBean - Shutting down Quartz Scheduler
+2025-01-13 16:12:15.971 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
+2025-01-13 16:12:15.971 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-13 16:12:15.972 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
+2025-01-13 16:12:15.973 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-01-13 16:12:15.974 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-01-13 16:12:15.977 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.

File diff suppressed because it is too large
+ 979 - 0
logs/smart-2025-01-14.log


+ 153 - 0
logs/smart-2025-01-15.log

@@ -0,0 +1,153 @@
+2025-01-15 08:21:39.939 [background-preinit] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.5.Final
+2025-01-15 08:21:39.959 [main] INFO  com.template.MybatisPlusApplication - Starting MybatisPlusApplication using Java 1.8.0_181 on DESKTOP-4B4LOJM with PID 10736 (D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai\target\classes started by Bingo in D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai)
+2025-01-15 08:21:39.960 [main] INFO  com.template.MybatisPlusApplication - The following profiles are active: prod
+2025-01-15 08:21:40.804 [main] WARN  o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.template]' package. Please check your configuration.
+2025-01-15 08:21:40.852 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-01-15 08:21:40.859 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2025-01-15 08:21:40.898 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 26 ms. Found 0 Redis repository interfaces.
+2025-01-15 08:21:41.871 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8687 (http)
+2025-01-15 08:21:41.881 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8687"]
+2025-01-15 08:21:41.881 [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
+2025-01-15 08:21:41.882 [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.39]
+2025-01-15 08:21:42.385 [main] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring embedded WebApplicationContext
+2025-01-15 08:21:42.385 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2383 ms
+2025-01-15 08:21:42.872 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-01-15 08:21:43.508 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-01-15 08:21:45.906 [main] WARN  o.s.w.s.r.ResourceHttpRequestHandler - Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver.
+2025-01-15 08:21:47.882 [main] INFO  o.s.s.c.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-01-15 08:21:49.042 [main] INFO  org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor
+2025-01-15 08:21:49.087 [main] INFO  o.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2025-01-15 08:21:49.087 [main] INFO  org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.3.2 created.
+2025-01-15 08:21:49.088 [main] INFO  org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
+2025-01-15 08:21:49.088 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.3.2) 'quartzScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2025-01-15 08:21:49.089 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'quartzScheduler' initialized from an externally provided properties instance.
+2025-01-15 08:21:49.089 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.3.2
+2025-01-15 08:21:49.089 [main] INFO  org.quartz.core.QuartzScheduler - JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@a0b8f79
+2025-01-15 08:21:49.120 [main] INFO  o.s.s.c.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-01-15 08:21:49.195 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8687"]
+2025-01-15 08:21:49.341 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8687 (http) with context path '/alumni'
+2025-01-15 08:21:49.342 [main] INFO  o.s.s.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
+2025-01-15 08:21:49.342 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED started.
+2025-01-15 08:21:49.350 [main] INFO  com.template.MybatisPlusApplication - Started MybatisPlusApplication in 9.831 seconds (JVM running for 11.761)
+2025-01-15 08:21:49.768 [http-nio-8687-exec-1] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-01-15 08:21:49.768 [http-nio-8687-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-01-15 08:21:49.769 [http-nio-8687-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-01-15 08:38:37.140 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-15 08:38:37.254 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-01-15 08:38:37.255 [SpringContextShutdownHook] INFO  o.s.s.quartz.SchedulerFactoryBean - Shutting down Quartz Scheduler
+2025-01-15 08:38:37.255 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
+2025-01-15 08:38:37.255 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-15 08:38:37.255 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
+2025-01-15 08:38:37.256 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-01-15 08:38:37.258 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-01-15 08:38:37.262 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2025-01-15 09:21:17.653 [background-preinit] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.5.Final
+2025-01-15 09:21:17.666 [main] INFO  com.template.MybatisPlusApplication - Starting MybatisPlusApplication using Java 1.8.0_181 on DESKTOP-4B4LOJM with PID 19384 (D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai\target\classes started by Bingo in D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai)
+2025-01-15 09:21:17.667 [main] INFO  com.template.MybatisPlusApplication - The following profiles are active: prod
+2025-01-15 09:21:18.265 [main] WARN  o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.template]' package. Please check your configuration.
+2025-01-15 09:21:18.310 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-01-15 09:21:18.311 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2025-01-15 09:21:18.347 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 27 ms. Found 0 Redis repository interfaces.
+2025-01-15 09:21:19.145 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8687 (http)
+2025-01-15 09:21:19.152 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8687"]
+2025-01-15 09:21:19.152 [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
+2025-01-15 09:21:19.152 [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.39]
+2025-01-15 09:21:19.229 [main] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring embedded WebApplicationContext
+2025-01-15 09:21:19.229 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1526 ms
+2025-01-15 09:21:19.590 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-01-15 09:21:20.027 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-01-15 09:21:21.405 [main] WARN  o.s.w.s.r.ResourceHttpRequestHandler - Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver.
+2025-01-15 09:21:23.241 [main] INFO  o.s.s.c.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-01-15 09:21:24.325 [main] INFO  org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor
+2025-01-15 09:21:24.331 [main] INFO  o.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2025-01-15 09:21:24.332 [main] INFO  org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.3.2 created.
+2025-01-15 09:21:24.332 [main] INFO  org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
+2025-01-15 09:21:24.332 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.3.2) 'quartzScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2025-01-15 09:21:24.332 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'quartzScheduler' initialized from an externally provided properties instance.
+2025-01-15 09:21:24.332 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.3.2
+2025-01-15 09:21:24.333 [main] INFO  org.quartz.core.QuartzScheduler - JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@6cdea0fe
+2025-01-15 09:21:24.362 [main] INFO  o.s.s.c.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-01-15 09:21:24.554 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8687"]
+2025-01-15 09:21:24.567 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8687 (http) with context path '/alumni'
+2025-01-15 09:21:24.568 [main] INFO  o.s.s.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
+2025-01-15 09:21:24.568 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED started.
+2025-01-15 09:21:24.574 [main] INFO  com.template.MybatisPlusApplication - Started MybatisPlusApplication in 7.267 seconds (JVM running for 7.81)
+2025-01-15 09:23:26.008 [http-nio-8687-exec-1] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-01-15 09:23:26.008 [http-nio-8687-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-01-15 09:23:26.009 [http-nio-8687-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-01-15 09:23:26.261 [http-nio-8687-exec-1] INFO  c.t.handler.MyMetaObjectHandler - start update fill.....
+2025-01-15 09:26:01.553 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-15 09:26:01.669 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-01-15 09:26:01.669 [SpringContextShutdownHook] INFO  o.s.s.quartz.SchedulerFactoryBean - Shutting down Quartz Scheduler
+2025-01-15 09:26:01.669 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
+2025-01-15 09:26:01.670 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-15 09:26:01.670 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
+2025-01-15 09:26:01.672 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-01-15 09:26:01.673 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-01-15 09:26:01.676 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2025-01-15 09:26:06.879 [background-preinit] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.5.Final
+2025-01-15 09:26:06.892 [main] INFO  com.template.MybatisPlusApplication - Starting MybatisPlusApplication using Java 1.8.0_181 on DESKTOP-4B4LOJM with PID 19316 (D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai\target\classes started by Bingo in D:\Bingo\Desktop\工作内容\校友生态\school_ecology_houtai)
+2025-01-15 09:26:06.892 [main] INFO  com.template.MybatisPlusApplication - The following profiles are active: prod
+2025-01-15 09:26:07.474 [main] WARN  o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.template]' package. Please check your configuration.
+2025-01-15 09:26:07.516 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-01-15 09:26:07.518 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2025-01-15 09:26:07.553 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 26 ms. Found 0 Redis repository interfaces.
+2025-01-15 09:26:08.383 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8687 (http)
+2025-01-15 09:26:08.388 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8687"]
+2025-01-15 09:26:08.389 [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
+2025-01-15 09:26:08.389 [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.39]
+2025-01-15 09:26:08.455 [main] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring embedded WebApplicationContext
+2025-01-15 09:26:08.455 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1526 ms
+2025-01-15 09:26:09.210 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-01-15 09:26:09.647 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-01-15 09:26:10.951 [main] WARN  o.s.w.s.r.ResourceHttpRequestHandler - Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver.
+2025-01-15 09:26:12.726 [main] INFO  o.s.s.c.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-01-15 09:26:13.772 [main] INFO  org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor
+2025-01-15 09:26:13.778 [main] INFO  o.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2025-01-15 09:26:13.779 [main] INFO  org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.3.2 created.
+2025-01-15 09:26:13.779 [main] INFO  org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
+2025-01-15 09:26:13.780 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.3.2) 'quartzScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2025-01-15 09:26:13.780 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'quartzScheduler' initialized from an externally provided properties instance.
+2025-01-15 09:26:13.780 [main] INFO  org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.3.2
+2025-01-15 09:26:13.780 [main] INFO  org.quartz.core.QuartzScheduler - JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@7ff92527
+2025-01-15 09:26:13.809 [main] INFO  o.s.s.c.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-01-15 09:26:14.006 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8687"]
+2025-01-15 09:26:14.019 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8687 (http) with context path '/alumni'
+2025-01-15 09:26:14.020 [main] INFO  o.s.s.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
+2025-01-15 09:26:14.020 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED started.
+2025-01-15 09:26:14.026 [main] INFO  com.template.MybatisPlusApplication - Started MybatisPlusApplication in 7.5 seconds (JVM running for 8.098)
+2025-01-15 09:26:14.708 [http-nio-8687-exec-1] INFO  o.a.c.c.C.[.[localhost].[/alumni] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-01-15 09:26:14.709 [http-nio-8687-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-01-15 09:26:14.709 [http-nio-8687-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 0 ms
+2025-01-15 09:26:14.942 [http-nio-8687-exec-1] INFO  c.t.handler.MyMetaObjectHandler - start update fill.....
+2025-01-15 09:26:16.266 [http-nio-8687-exec-2] INFO  c.t.handler.MyMetaObjectHandler - start update fill.....
+2025-01-15 09:30:07.861 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-15 09:30:07.977 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-01-15 09:30:07.978 [SpringContextShutdownHook] INFO  o.s.s.quartz.SchedulerFactoryBean - Shutting down Quartz Scheduler
+2025-01-15 09:30:07.978 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
+2025-01-15 09:30:07.978 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
+2025-01-15 09:30:07.978 [SpringContextShutdownHook] INFO  org.quartz.core.QuartzScheduler - Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
+2025-01-15 09:30:07.979 [SpringContextShutdownHook] INFO  o.s.s.c.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-01-15 09:30:07.982 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-01-15 09:30:07.984 [SpringContextShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.

+ 4 - 4
src/main/java/com/template/AutoCode.java

@@ -37,12 +37,12 @@ public class AutoCode {
         gc.setDateType(DateType.ONLY_DATE);
         gc.setSwagger2(true);
         mpg.setGlobalConfig(gc);
-//2、设置数据源
+        //2、设置数据源
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://120.53.230.172:3306/alumni_manage?useUnicode=tru&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true&allowPublicKeyRetrieval=true&allowMultiQueries=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai");
+        dsc.setUrl("jdbc:mysql://172.16.40.122:3306/alumni_manage?useUnicode=tru&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true&allowPublicKeyRetrieval=true&allowMultiQueries=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
-        dsc.setPassword("FireWarning2024.");
+        dsc.setPassword("Chuanghai2024.");
         dsc.setDbType(DbType.MYSQL);
         mpg.setDataSource(dsc);
         //3、包的配置
@@ -56,7 +56,7 @@ public class AutoCode {
         mpg.setPackageInfo(pc);
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("alumni_return"); // 设置要映射的表名
+        strategy.setInclude("alumni_heart"); // 设置要映射的表名
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 51 - 0
src/main/java/com/template/api/AlumniHeartControllerAPI.java

@@ -0,0 +1,51 @@
+package com.template.api;
+
+import com.template.model.request.clubTopupRequest;
+import com.template.model.request.insertHeartRequest;
+import com.template.model.request.updateHeartRequest;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+
+@RequestMapping("/api/alumniHeart")
+@Api(tags = {"AlumniHeartController"}, value = "心链")
+public interface AlumniHeartControllerAPI {
+
+    @PostMapping("/HeartTopup")
+    @ApiOperation(value = "置顶", httpMethod = "POST")
+    CommonResult HeartTopup(@Validated @RequestBody clubTopupRequest ctr, BindingResult bindingResult) throws Exception;
+
+    @PostMapping("/insertHeartData")
+    @ApiOperation(value = "新增心链", httpMethod = "POST")
+    CommonResult insertHeartData(@Validated @RequestBody insertHeartRequest icr, BindingResult bindingResult);
+
+    @PostMapping("/updateHeartData")
+    @ApiOperation(value = "编辑心链", httpMethod = "POST")
+    CommonResult updateHeartData(@Validated @RequestBody updateHeartRequest ucr, BindingResult bindingResult);
+
+    /**
+     * 获取心链分页数据
+     *
+     * @param currentPage
+     * @param pageCount
+     * @param name        权益名称
+     * @param startTime   创建开始时间
+     * @param endTime     创建结束时间
+     * @return
+     */
+    @GetMapping(value = "/queryHeartPage")
+    @ApiOperation(value = "获取心链分页数据", notes = "获取心链分页数据", httpMethod = "GET")
+    CommonResult queryHeartPage(@RequestParam int currentPage, @RequestParam int pageCount, String name,  String startTime, String endTime);
+
+    //删除
+    @GetMapping(value = "/deleteHeartById")
+    @ApiOperation(value = "删除心链", notes = "删除心链", httpMethod = "GET")
+    CommonResult deleteHeartById(@RequestParam int id);
+
+}

+ 1 - 1
src/main/java/com/template/api/LoginControllerAPI.java

@@ -30,7 +30,7 @@ public interface LoginControllerAPI {
 
     @PostMapping(value = "/Login")
     @ApiOperation(value = "登录", notes = "登录", httpMethod = "POST")
-    CommonResult Login(@Validated @RequestBody loginRequest lr, BindingResult bindingResult);
+    CommonResult account(@Validated @RequestBody loginRequest lr, BindingResult bindingResult);
 
     @PostMapping(value = "/ChangePassword")
     @ApiOperation(value = "修改密码", notes = "修改密码", httpMethod = "POST")

+ 17 - 2
src/main/java/com/template/common/utils/Message2.java

@@ -21,6 +21,8 @@ import org.apache.http.util.EntityUtils;
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 
 /**
  * 公众号,推送信息,推给商家信息
@@ -102,11 +104,24 @@ public class Message2 {
         return access_token;
     }
 
-
+    private int count = 0;
+    private Lock lock = new ReentrantLock();
+
+    public void run() {
+        lock.lock();
+        try {
+            for (int i = 0; i < 5; i++) {
+                count++;
+                System.out.println(Thread.currentThread().getName() + ": " + count);
+            }
+        } finally {
+            lock.unlock();
+        }
+    }
 
 
     public static void main(String[] args) throws Exception {
-        String o9MsY67wqvQ__o_pOzF7oeN4MQPM = send("o9MsY67wqvQ__o_pOzF7oeN4MQPM","进入区域","IPCamera 01","2024-01-29 16:16:14");
+        //String o9MsY67wqvQ__o_pOzF7oeN4MQPM = send("o9MsY67wqvQ__o_pOzF7oeN4MQPM","进入区域","IPCamera 01","2024-01-29 16:16:14");
 //        String token = getToken();
 //        System.out.println("token = " + token);
     }

+ 2 - 2
src/main/java/com/template/controller/AlumniActivityController.java

@@ -169,7 +169,7 @@ public class AlumniActivityController implements AlumniActivityControllerAPI {
                 }
             }
             if (cardnumbers != null && cardnumbers.size() > 0) {
-                String content = operater.getName() + ",活动申请已提交,请及时对" + aa.getTheme() + "进行审核。";
+                String content = operater.getName() + "已提交活动申请,请及时对" + aa.getTheme() + "进行审核。";
                 CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "活动申请审核", "活动申请审核", content, null);
                 if (!sendMessage.getCode().equals("200")) {
                     logger.info("微校通知发送失败,cardnumber:" + JSON.toJSON(cardnumbers) + ",Content:" + content);
@@ -1017,7 +1017,7 @@ public class AlumniActivityController implements AlumniActivityControllerAPI {
                 }
             }
             if (cardnumbers != null && cardnumbers.size() > 0) {
-                String content = operater.getName() + ",活动申请已提交,请及时对" + aa.getTheme() + "进行审核。";
+                String content = operater.getName() + "已提交活动申请,请及时对" + aa.getTheme() + "进行审核。";
                 CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "活动申请审核", "活动申请审核", content, null);
                 if (!sendMessage.getCode().equals("200")) {
                     logger.info("微校通知发送失败,cardnumber:" + JSON.toJSON(cardnumbers) + ",Content:" + content);

+ 2 - 2
src/main/java/com/template/controller/AlumniEndorseController.java

@@ -123,7 +123,7 @@ public class AlumniEndorseController implements AlumniEndorseControllerAPI {
                 }
             }
             if(cardnumbers != null && cardnumbers.size() > 0){
-                String content = operater.getName()+",母校代言申请已提交,请及时对照片进行审核。";
+                String content = operater.getName()+"已提交母校代言申请,请及时对照片进行审核。";
                 CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "母校代言审核", "母校代言审核", content, null);
                 if (!sendMessage.getCode().equals("200")) {
                     logger.info("微校通知发送失败,cardnumber:"+ JSON.toJSON(cardnumbers)+",Content:"+content);
@@ -446,7 +446,7 @@ public class AlumniEndorseController implements AlumniEndorseControllerAPI {
                 }
             }
             if(cardnumbers != null && cardnumbers.size() > 0){
-                String content = operater.getName()+",母校代言申请已提交,请及时对照片进行审核。";
+                String content = operater.getName()+"已提交母校代言申请,请及时对照片进行审核。";
                 CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "母校代言审核", "母校代言审核", content, null);
                 if (!sendMessage.getCode().equals("200")) {
                     logger.info("微校通知发送失败,cardnumber:"+ JSON.toJSON(cardnumbers)+",Content:"+content);

+ 156 - 0
src/main/java/com/template/controller/AlumniHeartController.java

@@ -0,0 +1,156 @@
+package com.template.controller;
+
+
+import com.template.api.AlumniHeartControllerAPI;
+import com.template.common.utils.paramUtils;
+import com.template.model.enumModel.eTopType;
+import com.template.model.pojo.AlumniHeart;
+import com.template.model.request.clubTopupRequest;
+import com.template.model.request.insertHeartRequest;
+import com.template.model.request.updateHeartRequest;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.services.AlumniHeartService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-01-13
+ */
+@RestController
+public class AlumniHeartController implements AlumniHeartControllerAPI {
+
+    @Autowired
+    private AlumniHeartService alumniHeartService;
+
+    private static Logger logger = LoggerFactory.getLogger(AlumniHeartController.class);
+
+    @Override
+    public CommonResult HeartTopup(clubTopupRequest ctr, BindingResult bindingResult) throws Exception {
+        if (ctr == null) {
+            return CommonResult.fail("请传递参数");
+        }
+        if (bindingResult.hasErrors()) {
+            String st = paramUtils.getParamError(bindingResult);
+            return CommonResult.fail(st);
+        }
+
+        AlumniHeart ac = alumniHeartService.queryDataById(ctr.getId());
+        if (ac == null) {
+            return CommonResult.fail("数据已失效,无法进行置顶操作");
+        }
+
+        try {
+            if(ctr.getIsTop().intValue() == eTopType.Top.getValue()){//置顶
+                //将其他置顶数据取消置顶
+                List<AlumniHeart> acs = alumniHeartService.findTopHearts();
+                if (acs != null && acs.size() > 0) {
+                    for (AlumniHeart acData : acs) {
+                        acData.setIsTop(eTopType.UnTop.getValue());
+                    }
+                    boolean insertBatch = alumniHeartService.updateBatchById(acs);
+                    if (!insertBatch) {
+                        throw new Exception("心链更新失败,置顶失败!");
+                    }
+                }
+
+            }else{
+                ac.setIsTop(ctr.getIsTop());
+            }
+
+            ac.setIsTop(ctr.getIsTop());
+            int result = alumniHeartService.updateAlumniHeart(ac);
+            if (result <= 0) {
+                throw new Exception("心链更新失败,"+(ctr.getIsTop().intValue() == eTopType.Top.getValue() ? "置顶" : "取消置顶")+"失败!");
+            }
+        } catch (Exception e) {
+            logger.info("心链置顶异常信息:" + e.getMessage());
+            throw new Exception("心链置顶失败!");
+        }
+        return CommonResult.ok((ctr.getIsTop().intValue() == eTopType.Top.getValue() ? "置顶" : "取消置顶")+"成功");
+    }
+
+    @Override
+    public CommonResult insertHeartData(insertHeartRequest icr, BindingResult bindingResult) {
+        if (icr == null) {
+            return CommonResult.fail("请传递参数");
+        }
+        if (bindingResult.hasErrors()) {
+            String st = paramUtils.getParamError(bindingResult);
+            return CommonResult.fail(st);
+        }
+
+        AlumniHeart ah = new AlumniHeart();
+        ah.setEquityName(icr.getEquityName());
+        ah.setCoverImage(icr.getCoverImage());
+        ah.setContent(icr.getContent());
+        ah.setIsTop(icr.getIsTop() != null ? icr.getIsTop() : eTopType.UnTop.getValue());
+
+        int result = alumniHeartService.insertAlumniHeart(ah);
+        if (result <= 0) {
+            return CommonResult.fail("创建失败");
+        }
+
+        return CommonResult.ok("创建成功");
+    }
+
+    @Override
+    public CommonResult updateHeartData(updateHeartRequest ucr, BindingResult bindingResult) {
+        if (ucr == null) {
+            return CommonResult.fail("请传递参数");
+        }
+        if (bindingResult.hasErrors()) {
+            String st = paramUtils.getParamError(bindingResult);
+            return CommonResult.fail(st);
+        }
+
+        AlumniHeart ac = alumniHeartService.queryDataById(ucr.getId());
+        if (ac == null) {
+            return CommonResult.fail("数据已失效,编辑失败");
+        }
+
+        ac.setIsTop(ucr.getIsTop() != null ? ucr.getIsTop() : ac.getIsTop());
+        ac.setEquityName(ucr.getEquityName());
+        ac.setCoverImage(ucr.getCoverImage());
+        ac.setContent(ucr.getContent());
+
+        int result = alumniHeartService.updateAlumniHeart(ac);
+        if (result <= 0) {
+            return CommonResult.fail("编辑失败");
+        }
+
+        return CommonResult.ok("编辑成功");
+    }
+
+    @Override
+    public CommonResult queryHeartPage(int currentPage, int pageCount, String name, String startTime, String endTime) {
+        PageUtils<AlumniHeart> result = alumniHeartService.queryPageList(currentPage, pageCount, name, startTime, endTime);
+        return CommonResult.ok(result);
+    }
+
+    @Override
+    public CommonResult deleteHeartById(int id) {
+        AlumniHeart ae = alumniHeartService.queryDataById(id);
+        if (ae == null) {
+            return CommonResult.fail("心链数据已失效,无法删除");
+        }
+
+        int result = alumniHeartService.deleteDataById(id);
+        if (result <= 0) {
+            return CommonResult.fail("删除失败");
+        }
+        return CommonResult.ok("删除成功");
+    }
+}
+

+ 1 - 1
src/main/java/com/template/controller/AlumniImageController.java

@@ -104,7 +104,7 @@ public class AlumniImageController implements AlumniImageControllerAPI {
             }
         }
         if (cardnumbers != null && cardnumbers.size() > 0) {
-            String content = au.getName() + ",相册分类为 " + iir.getCategoryName() + "。请及时对照片进行审核。";
+            String content = au.getName() + "已提交相册审核数据,相册分类为 " + iir.getCategoryName() + "。请及时对照片进行审核。";
             CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "校友相册审核", "校友相册审核", content, null);
             if (!sendMessage.getCode().equals("200")) {
                 logger.info("微校通知发送失败,cardnumber:" + JSON.toJSON(cardnumbers) + ",Content:" + content + ",id" + result);

+ 1 - 1
src/main/java/com/template/controller/AlumniReturnController.java

@@ -93,7 +93,7 @@ public class AlumniReturnController implements AlumniReturnControllerAPI {
             }
         }
         if(cardnumbers != null && cardnumbers.size() > 0){
-            String content = ier.getName()+",返校申请已提交,申请信息如下:返校时间为 "+ ier.getReturnsTime()+",返校原因是 "+ier.getRemark()+",离校时间为 "+ier.getReturneTime();
+            String content = ier.getName()+"已提交返校申请,申请信息如下:返校时间为 "+ ier.getReturnsTime()+",返校原因是 "+ier.getRemark()+",离校时间为 "+ier.getReturneTime();
             CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "返校申请", "返校申请", content, null);
             if (!sendMessage.getCode().equals("200")) {
                 logger.info("微校通知发送失败,cardnumber:"+ JSON.toJSON(cardnumbers)+",Content:"+content);

+ 38 - 4
src/main/java/com/template/controller/AlumniUserController.java

@@ -118,6 +118,10 @@ public class AlumniUserController implements AlumniUserControllerAPI {
             return CommonResult.fail(st);
         }
 
+        if (!checkPasswordStrength(iar.getPassword())) {
+            return CommonResult.fail("密码强度过低,请设置更复杂的密码");
+        }
+
         AlumniUser existAccount = alumniUserService.queryDataByAccount(iar.getAccount());
         if (existAccount != null) {
             return CommonResult.fail("该账号已存在!");
@@ -172,11 +176,17 @@ public class AlumniUserController implements AlumniUserControllerAPI {
         if (au == null) {
             return CommonResult.fail("数据已失效,更新失败");
         }
+
+        if (!checkPasswordStrength(uar.getPassword())) {
+            return CommonResult.fail("密码强度过低,请设置更复杂的密码");
+        }
+
         au.setName(uar.getName());
         au.setCardNumber(uar.getCardNumber());
         au.setAccount(uar.getAccount());
         au.setRoleId(uar.getRoleId());
-
+        String encPassword = AesUtils.encrypt(uar.getPassword());
+        au.setPassword(encPassword);
         int updateResult = alumniUserService.updateAlumniUser(au);
         if (updateResult <= 0) {
             return CommonResult.fail("更新失败");
@@ -185,6 +195,30 @@ public class AlumniUserController implements AlumniUserControllerAPI {
         return CommonResult.ok("更新成功");
     }
 
+    public boolean checkPasswordStrength(String password) {
+        // 密码长度至少为8位
+        if (password.length() < 8) {
+            return false;
+        }
+
+        // 密码不能全为数字
+        if (password.matches("\\d+")) {
+            return false;
+        }
+
+        // 密码不能全为字母
+        if (password.matches("[a-zA-Z]+")) {
+            return false;
+        }
+
+        // 密码不能全为特殊字符
+        if (password.matches("[!@#$%^&*()+_]+")) {
+            return false;
+        }
+
+        return true;
+    }
+
     @Override
     public CommonResult queryRoleTypes() {
         List<ListDataVO> result = new ArrayList<>();
@@ -233,7 +267,7 @@ public class AlumniUserController implements AlumniUserControllerAPI {
                 String periodName = pg.getPeriodName() == null ? "" : "》" + pg.getPeriodName();
                 String majorName = pg.getMajorName() == null ? "" : "》" + pg.getMajorName();
                 String className = pg.getClassName() == null ? "" : "》" + pg.getClassName();
-                npv.setCollegeName(collegeName+periodName+majorName+className);
+                npv.setCollegeName(collegeName + periodName + majorName + className);
                 npv.setName(pg.getName());
                 npv.setOrgName(pg.getOrgName());
                 npv.setPhone(pg.getPhone());
@@ -252,7 +286,7 @@ public class AlumniUserController implements AlumniUserControllerAPI {
                 return CommonResult.fail("当前操作人已失效,无法获取班级通讯录");
             }
 
-            PageUtils<AlumniUser> pageDatas = alumniUserService.queryUserPageByClassId(currentPage, pageCount, au.getClassId(),name);
+            PageUtils<AlumniUser> pageDatas = alumniUserService.queryUserPageByClassId(currentPage, pageCount, au.getClassId(), name);
             List<AlumniMobileUserPageVo> datas = new ArrayList<>();
             for (AlumniUser pg : pageDatas.getList()) {
                 AlumniMobileUserPageVo npv = new AlumniMobileUserPageVo();
@@ -262,7 +296,7 @@ public class AlumniUserController implements AlumniUserControllerAPI {
                 String periodName = pg.getPeriodName() == null ? "" : "》" + pg.getPeriodName();
                 String majorName = pg.getMajorName() == null ? "" : "》" + pg.getMajorName();
                 String className = pg.getClassName() == null ? "" : "》" + pg.getClassName();
-                npv.setCollegeName(collegeName+periodName+majorName+className);
+                npv.setCollegeName(collegeName + periodName + majorName + className);
                 npv.setName(pg.getName());
                 npv.setOrgName(pg.getOrgName());
                 npv.setPhone(pg.getPhone());

+ 5 - 5
src/main/java/com/template/controller/LoginController.java

@@ -357,7 +357,7 @@ public class LoginController implements LoginControllerAPI {
      * @return
      */
     /**
-     * @param loginRequest  account 账号
+     * @param lr  account 账号
      *                      password 密码
      *                      uuid 唯一标识
      *                      captcha 验证码
@@ -366,8 +366,8 @@ public class LoginController implements LoginControllerAPI {
      */
     @Override
     @PassToken
-    public CommonResult Login(@RequestBody loginRequest loginRequest, BindingResult bindingResult) {
-        if (loginRequest == null) {
+    public CommonResult account(@RequestBody loginRequest lr, BindingResult bindingResult) {
+        if (lr == null) {
             return CommonResult.fail("请传递参数");
         }
         if (bindingResult.hasErrors()) {
@@ -375,12 +375,12 @@ public class LoginController implements LoginControllerAPI {
             return CommonResult.fail(st);
         }
 
-        AlumniUser result = alumniUserService.queryDataByAccount(loginRequest.getAccount());
+        AlumniUser result = alumniUserService.queryDataByAccount(lr.getAccount());
         if (result == null) {
             return CommonResult.fail("账号或密码错误");
         }
 
-        String encPassword = AesUtils.encrypt(loginRequest.getPassword());
+        String encPassword = AesUtils.encrypt(lr.getPassword());
         if (!encPassword.equals(result.getPassword())) {
             return CommonResult.fail("密码错误");
         }

+ 18 - 0
src/main/java/com/template/mapper/AlumniHeartMapper.java

@@ -0,0 +1,18 @@
+package com.template.mapper;
+
+import com.template.model.pojo.AlumniHeart;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-01-13
+ */
+@Repository
+public interface AlumniHeartMapper extends BaseMapper<AlumniHeart> {
+
+}

+ 75 - 0
src/main/java/com/template/model/pojo/AlumniHeart.java

@@ -0,0 +1,75 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-01-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="AlumniHeart对象", description="")
+public class AlumniHeart implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "权益名称")
+    private String equityName;
+
+    @ApiModelProperty(value = "封面图")
+    private String coverImage;
+
+    @ApiModelProperty(value = "权益内容")
+    private String content;
+
+    @ApiModelProperty(value = "是否置顶  是:1  否:2")
+    private Integer isTop;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy年MM月dd日 HH点mm分ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 48 - 0
src/main/java/com/template/model/request/insertHeartRequest.java

@@ -0,0 +1,48 @@
+package com.template.model.request;
+
+import com.template.model.vo.UserVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="新增Club对象", description="")
+public class insertHeartRequest implements Serializable {
+
+
+    @ApiModelProperty(value = "权益名称")
+    @NotBlank(message = "权益名称不能为空")
+    private String equityName;
+
+    @ApiModelProperty(value = "封面图")
+    @NotBlank(message = "封面图不能为空")
+    private String coverImage;
+
+    @ApiModelProperty(value = "权益内容")
+    @NotBlank(message = "权益内容不能为空")
+    private String content;
+
+    @ApiModelProperty(value = "是否置顶  是:1 否:2")
+    private Integer isTop;
+
+
+
+}

+ 5 - 0
src/main/java/com/template/model/request/updateAccountRequest.java

@@ -43,4 +43,9 @@ public class updateAccountRequest implements Serializable {
     @ApiModelProperty(value = "角色")
     @NotNull(message = "角色不能为空")
     private Integer roleId;
+
+
+    @ApiModelProperty(value = "密码")
+    @NotBlank(message = "密码不能为空")
+    private String password;
 }

+ 48 - 0
src/main/java/com/template/model/request/updateHeartRequest.java

@@ -0,0 +1,48 @@
+package com.template.model.request;
+
+import com.template.model.vo.UserVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="新增Club对象", description="")
+public class updateHeartRequest implements Serializable {
+    @ApiModelProperty(value = "数据ID")
+    @NotNull(message = "数据ID不能为空")
+    private Integer id;
+
+    @ApiModelProperty(value = "权益名称")
+    @NotBlank(message = "权益名称不能为空")
+    private String equityName;
+
+    @ApiModelProperty(value = "封面图")
+    @NotBlank(message = "封面图不能为空")
+    private String coverImage;
+
+    @ApiModelProperty(value = "权益内容")
+    @NotBlank(message = "权益内容不能为空")
+    private String content;
+
+    @ApiModelProperty(value = "是否置顶   是:1 否:2")
+    private Integer isTop;
+
+}

+ 30 - 0
src/main/java/com/template/services/AlumniHeartService.java

@@ -0,0 +1,30 @@
+package com.template.services;
+
+import com.template.model.pojo.AlumniHeart;
+import com.template.model.pojo.AlumniHeart;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-01-13
+ */
+public interface AlumniHeartService extends IService<AlumniHeart> {
+    int insertAlumniHeart(AlumniHeart au);
+
+    int updateAlumniHeart(AlumniHeart au);
+
+    int deleteDataById(Integer id);
+
+    AlumniHeart queryDataById(Integer id);
+
+    List<AlumniHeart> findTopHearts();
+
+    PageUtils<AlumniHeart> queryPageList(int currentPage, int pageCount, String name, String startTime, String endTime);
+}

+ 79 - 0
src/main/java/com/template/services/impl/AlumniHeartServiceImpl.java

@@ -0,0 +1,79 @@
+package com.template.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.template.mapper.AlumniNewsMapper;
+import com.template.model.enumModel.eTopType;
+import com.template.model.pojo.AlumniClub;
+import com.template.model.pojo.AlumniHeart;
+import com.template.mapper.AlumniHeartMapper;
+import com.template.model.pojo.AlumniImage;
+import com.template.model.result.PageUtils;
+import com.template.services.AlumniHeartService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-01-13
+ */
+@Service
+public class AlumniHeartServiceImpl extends ServiceImpl<AlumniHeartMapper, AlumniHeart> implements AlumniHeartService {
+
+    @Autowired
+    private AlumniHeartMapper alumniHeartMapper;
+
+    @Override
+    public int insertAlumniHeart(AlumniHeart au) {
+        int result = alumniHeartMapper.insert(au);
+        return result;
+    }
+
+    @Override
+    public int updateAlumniHeart(AlumniHeart au) {
+        int result = alumniHeartMapper.updateById(au);
+        return result;
+    }
+
+    @Override
+    public int deleteDataById(Integer id) {
+        int result = alumniHeartMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public AlumniHeart queryDataById(Integer id) {
+        AlumniHeart result = alumniHeartMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<AlumniHeart> findTopHearts() {
+        QueryWrapper<AlumniHeart> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_top", eTopType.Top.getValue());
+        List<AlumniHeart> result = alumniHeartMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public PageUtils<AlumniHeart> queryPageList(int currentPage, int pageCount, String name, String startTime, String endTime) {
+        Page<AlumniHeart> page = new Page<>(currentPage, pageCount);
+        QueryWrapper<AlumniHeart> queryWrapper = new QueryWrapper<>();
+        queryWrapper.like(StringUtils.hasText(name), "equity_name", name);//权益名称
+        if (StringUtils.hasText(startTime) && StringUtils.hasText(endTime)) {
+            queryWrapper.between("create_time", startTime, endTime);
+        }
+        queryWrapper.orderByDesc("is_top", "create_time");
+        IPage<AlumniHeart> result = alumniHeartMapper.selectPage(page, queryWrapper);
+        return new PageUtils(result);
+    }
+}

+ 5 - 0
src/main/resources/mapper/template/AlumniHeartMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.template.mapper.AlumniHeartMapper">
+
+</mapper>

BIN
target/alumni.jar


BIN
target/alumni.jar.original


+ 202 - 0
target/classes/META-INF/spring-configuration-metadata.json

@@ -0,0 +1,202 @@
+{
+  "groups": [
+    {
+      "name": "cos",
+      "type": "com.template.config.CosConfig",
+      "sourceType": "com.template.config.CosConfig"
+    },
+    {
+      "name": "openid",
+      "type": "com.template.config.WxOpenidConfig",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "smong",
+      "type": "com.template.config.SmongConfig",
+      "sourceType": "com.template.config.SmongConfig"
+    },
+    {
+      "name": "tencentcloud",
+      "type": "com.template.config.smsConfig",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "video",
+      "type": "com.template.config.VideoConfig",
+      "sourceType": "com.template.config.VideoConfig"
+    }
+  ],
+  "properties": [
+    {
+      "name": "cos.bucket-name",
+      "type": "java.lang.String",
+      "description": "存储桶名称",
+      "sourceType": "com.template.config.CosConfig"
+    },
+    {
+      "name": "cos.path",
+      "type": "java.lang.String",
+      "description": "存储桶访问路径",
+      "sourceType": "com.template.config.CosConfig"
+    },
+    {
+      "name": "cos.region",
+      "type": "java.lang.String",
+      "description": "存储桶地区",
+      "sourceType": "com.template.config.CosConfig"
+    },
+    {
+      "name": "cos.secret-id",
+      "type": "java.lang.String",
+      "description": "腾讯云账号秘钥",
+      "sourceType": "com.template.config.CosConfig"
+    },
+    {
+      "name": "cos.secret-key",
+      "type": "java.lang.String",
+      "description": "密码秘钥",
+      "sourceType": "com.template.config.CosConfig"
+    },
+    {
+      "name": "openid.appid",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.appkey",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.granttype",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.ip",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.ipconfig",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.ocode",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.return-url",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.shappid",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.shsecret",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.xappid",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "openid.xsecret",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.WxOpenidConfig"
+    },
+    {
+      "name": "smong.app-key",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.SmongConfig"
+    },
+    {
+      "name": "smong.app-secret",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.SmongConfig"
+    },
+    {
+      "name": "smong.master-key",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.SmongConfig"
+    },
+    {
+      "name": "smong.product-id",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.SmongConfig"
+    },
+    {
+      "name": "tencentcloud.sdk-appid",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "tencentcloud.secret-i-d",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "tencentcloud.secret-key",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "tencentcloud.sign-name",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "tencentcloud.sms-min",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "tencentcloud.template-id",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.smsConfig"
+    },
+    {
+      "name": "video.add-device",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    },
+    {
+      "name": "video.app-key",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    },
+    {
+      "name": "video.delete-device",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    },
+    {
+      "name": "video.get-device",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    },
+    {
+      "name": "video.info-device",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    },
+    {
+      "name": "video.secret",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    },
+    {
+      "name": "video.update-device",
+      "type": "java.lang.String",
+      "sourceType": "com.template.config.VideoConfig"
+    }
+  ],
+  "hints": []
+}

File diff suppressed because it is too large
+ 109 - 0
target/classes/application-dev.yml


File diff suppressed because it is too large
+ 109 - 0
target/classes/application-prod.yml


File diff suppressed because it is too large
+ 105 - 0
target/classes/application.yml


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


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


BIN
target/classes/com/template/annotation/ControllerIsShow.class


BIN
target/classes/com/template/annotation/DESRespondSecret.class


BIN
target/classes/com/template/annotation/ExcelExport.class


BIN
target/classes/com/template/annotation/ExcelImport.class


BIN
target/classes/com/template/annotation/PassToken.class


BIN
target/classes/com/template/annotation/UserLoginCheck.class


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


BIN
target/classes/com/template/common/constanst/Constanst.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/jh/ReqRespResearchProductQuestionnaireItem.class


BIN
target/classes/com/template/common/jh/SectionUtil.class


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


BIN
target/classes/com/template/common/utils/HttpClientUtils$1.class


BIN
target/classes/com/template/common/utils/HttpClientUtils$LazyHolder.class


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


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


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


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


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


BIN
target/classes/com/template/common/utils/Message$1.class


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


+ 0 - 0
target/classes/com/template/common/utils/Message2.class


Some files were not shown because too many files changed in this diff