diff --git a/logs/webssh.log b/logs/webssh.log new file mode 100644 index 0000000..f8d9521 --- /dev/null +++ b/logs/webssh.log @@ -0,0 +1,649 @@ +2025-09-05 14:55:59 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 16156 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 14:55:59 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 14:55:59 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 14:55:59 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 29 ms. Found 0 JDBC repository interfaces. +2025-09-05 14:56:00 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 14:56:00 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 14:56:00 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 14:56:00 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 14:56:00 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1503 ms +2025-09-05 14:56:00 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 14:56:00 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:56:00 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 14:56:00 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:56:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 14:56:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:56:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 14:56:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:56:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 14:56:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:56:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 14:56:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:56:02 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 14:56:02 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 14:56:03 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@430aae8e +2025-09-05 14:56:03 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 14:56:03 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 14:56:03 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.896 seconds (process running for 5.514) +2025-09-05 14:56:05 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 14:56:05 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 14:56:05 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 14:57:48 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 14:57:48 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 14:57:48 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 14:57:48 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 14:57:58 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 15900 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 14:57:58 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 14:57:58 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 14:57:58 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40 ms. Found 0 JDBC repository interfaces. +2025-09-05 14:57:59 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 14:57:59 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 14:57:59 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 14:57:59 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 14:57:59 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1142 ms +2025-09-05 14:57:59 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 14:57:59 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:57:59 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 14:57:59 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:57:59 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 14:57:59 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:57:59 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 14:57:59 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:57:59 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 14:57:59 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:57:59 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 14:57:59 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:58:00 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 14:58:01 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 14:58:01 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@430aae8e +2025-09-05 14:58:01 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 14:58:01 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 14:58:01 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.314 seconds (process running for 5.118) +2025-09-05 14:58:19 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 14:58:19 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 14:58:19 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 14:59:48 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 14:59:48 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 14:59:48 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 14:59:48 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 14:59:52 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 25404 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 14:59:52 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 14:59:53 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 14:59:53 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 28 ms. Found 0 JDBC repository interfaces. +2025-09-05 14:59:53 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 14:59:53 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 14:59:53 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 14:59:53 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 14:59:53 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1149 ms +2025-09-05 14:59:54 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 14:59:54 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:59:54 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 14:59:54 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:59:54 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 14:59:54 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:59:54 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 14:59:54 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:59:54 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 14:59:54 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:59:54 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 14:59:54 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 14:59:55 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 14:59:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 14:59:56 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@ce19c86 +2025-09-05 14:59:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 14:59:56 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 14:59:56 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.457 seconds (process running for 4.915) +2025-09-05 15:00:54 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 15:00:54 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 15:00:54 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 15:01:15 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 15:01:15 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 15:01:15 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 15:01:15 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 15:01:18 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 21756 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 15:01:18 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 15:01:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 15:01:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 38 ms. Found 0 JDBC repository interfaces. +2025-09-05 15:01:19 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 15:01:19 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 15:01:19 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 15:01:19 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 15:01:19 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1111 ms +2025-09-05 15:01:19 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 15:01:19 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:01:19 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 15:01:19 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:01:19 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 15:01:19 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:01:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 15:01:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:01:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 15:01:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:01:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 15:01:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:01:21 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 15:01:21 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 15:01:22 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@1c792107 +2025-09-05 15:01:22 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 15:01:22 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 15:01:22 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.589 seconds (process running for 5.092) +2025-09-05 15:01:30 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 15:01:30 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 15:01:30 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 15:02:15 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 15:02:15 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 15:02:15 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 15:02:15 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 15:02:18 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 25192 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 15:02:18 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 15:02:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 15:02:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 23 ms. Found 0 JDBC repository interfaces. +2025-09-05 15:02:19 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 15:02:19 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 15:02:19 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 15:02:19 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 15:02:19 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1092 ms +2025-09-05 15:02:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 15:02:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:02:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 15:02:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:02:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 15:02:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:02:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 15:02:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:02:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 15:02:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:02:20 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 15:02:20 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:02:21 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 15:02:21 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 15:02:22 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@1c792107 +2025-09-05 15:02:22 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 15:02:22 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 15:02:22 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.157 seconds (process running for 4.608) +2025-09-05 15:02:24 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 15:02:24 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 15:02:24 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 15:03:05 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 15:03:05 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 15:03:05 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 15:03:05 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 15:03:09 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 25232 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 15:03:09 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 15:03:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 15:03:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 28 ms. Found 0 JDBC repository interfaces. +2025-09-05 15:03:10 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 15:03:10 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 15:03:10 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 15:03:10 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 15:03:10 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1155 ms +2025-09-05 15:03:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 15:03:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:03:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 15:03:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:03:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 15:03:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:03:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 15:03:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:03:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 15:03:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:03:11 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 15:03:11 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:03:12 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 15:03:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 15:03:12 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@d0fabc8 +2025-09-05 15:03:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 15:03:13 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 15:03:13 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.375 seconds (process running for 4.827) +2025-09-05 15:03:13 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 15:03:13 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 15:03:13 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 15:05:07 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 15:05:07 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 15:05:07 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 15:05:07 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 15:05:10 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 8124 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 15:05:10 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 15:05:11 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 15:05:11 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 36 ms. Found 0 JDBC repository interfaces. +2025-09-05 15:05:11 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 15:05:11 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 15:05:11 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 15:05:11 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 15:05:11 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1128 ms +2025-09-05 15:05:11 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 15:05:11 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:05:11 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 15:05:11 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:05:11 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 15:05:11 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:05:12 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 15:05:12 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:05:12 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 15:05:12 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:05:12 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 15:05:12 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:05:13 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 15:05:13 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 15:05:14 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@6ca33187 +2025-09-05 15:05:14 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 15:05:14 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 15:05:14 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.14 seconds (process running for 4.581) +2025-09-05 15:09:25 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 15:09:25 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 15:09:25 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 15:09:26 [http-nio-31001-exec-1] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 288 ms +2025-09-05 15:51:03 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 15:51:03 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 15:51:03 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 15:51:03 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 15:51:09 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 25984 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 15:51:09 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 15:51:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 15:51:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 30 ms. Found 0 JDBC repository interfaces. +2025-09-05 15:51:10 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 15:51:10 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 15:51:10 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 15:51:10 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 15:51:10 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1123 ms +2025-09-05 15:51:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 15:51:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:51:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 15:51:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:51:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 15:51:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:51:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 15:51:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:51:10 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 15:51:10 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:51:11 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 15:51:11 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 15:51:12 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 15:51:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 15:51:12 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@7be3abaa +2025-09-05 15:51:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 15:51:13 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 15:51:13 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.331 seconds (process running for 4.776) +2025-09-05 15:51:23 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 15:51:23 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 15:51:23 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 15:51:23 [http-nio-31001-exec-6] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 276 ms +2025-09-05 16:23:38 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:23:38 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:23:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:23:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:23:44 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 18816 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:23:44 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:23:45 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:23:45 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 41 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:23:45 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:23:45 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:23:45 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:23:45 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:23:45 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1391 ms +2025-09-05 16:23:46 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:23:46 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:23:46 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:23:46 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:23:46 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:23:46 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:23:46 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:23:46 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:23:46 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:23:46 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:23:46 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:23:46 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:23:47 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:23:47 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:23:48 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@4407b042 +2025-09-05 16:23:48 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:23:48 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:23:48 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.801 seconds (process running for 5.331) +2025-09-05 16:24:06 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:24:06 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:24:06 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 16:24:06 [http-nio-31001-exec-5] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 267 ms +2025-09-05 16:31:21 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:31:21 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:31:22 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:31:22 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:31:25 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 11500 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:31:25 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:31:26 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:31:26 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 28 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:31:26 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:31:26 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:31:26 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:31:26 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:31:26 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1133 ms +2025-09-05 16:31:27 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:31:27 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:31:27 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:31:27 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:31:27 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:31:27 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:31:27 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:31:27 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:31:27 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:31:27 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:31:27 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:31:27 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:31:28 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:31:29 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:31:29 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@12266084 +2025-09-05 16:31:29 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:31:30 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:31:30 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.887 seconds (process running for 5.348) +2025-09-05 16:31:48 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:31:48 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:31:48 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 0 ms +2025-09-05 16:31:48 [http-nio-31001-exec-4] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 257 ms +2025-09-05 16:38:11 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:38:11 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:38:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:38:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:38:15 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 19856 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:38:15 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:38:16 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:38:16 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 29 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:38:16 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:38:16 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:38:16 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:38:16 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:38:16 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1128 ms +2025-09-05 16:38:17 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:38:17 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:38:17 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:38:17 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:38:17 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:38:17 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:38:17 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:38:17 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:38:17 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:38:17 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:38:17 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:38:17 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:38:18 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:38:18 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:38:19 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@41f686af +2025-09-05 16:38:19 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:38:19 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:38:19 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.412 seconds (process running for 4.89) +2025-09-05 16:38:21 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:38:21 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:38:21 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 16:38:22 [http-nio-31001-exec-7] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 250 ms +2025-09-05 16:39:20 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:39:20 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:39:20 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:39:20 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:39:23 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 27080 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:39:23 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:39:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:39:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 31 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:39:24 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:39:24 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:39:24 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:39:24 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:39:24 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1108 ms +2025-09-05 16:39:25 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:39:25 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:39:25 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:39:25 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:39:25 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:39:25 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:39:25 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:39:25 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:39:25 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:39:25 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:39:25 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:39:25 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:39:26 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:39:26 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:39:27 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@41f686af +2025-09-05 16:39:27 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:39:27 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:39:27 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.195 seconds (process running for 4.679) +2025-09-05 16:39:29 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:39:29 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:39:29 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 3 ms +2025-09-05 16:39:29 [http-nio-31001-exec-3] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 258 ms +2025-09-05 16:41:21 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:41:21 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:41:21 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:41:21 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:41:24 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 28472 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:41:24 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:41:25 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:41:25 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 33 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:41:26 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:41:26 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:41:26 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:41:26 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:41:26 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1213 ms +2025-09-05 16:41:26 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:41:26 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:41:26 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:41:26 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:41:26 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:41:26 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:41:26 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:41:26 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:41:26 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:41:26 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:41:26 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:41:26 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:41:27 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:41:28 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:41:28 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3dded90a +2025-09-05 16:41:28 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:41:28 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:41:28 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.348 seconds (process running for 4.793) +2025-09-05 16:42:42 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:42:42 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:42:42 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:42:42 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:42:46 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 28088 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:42:46 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:42:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:42:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 41 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:42:47 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:42:47 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:42:47 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:42:47 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:42:47 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1282 ms +2025-09-05 16:42:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:42:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:42:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:42:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:42:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:42:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:42:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:42:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:42:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:42:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:42:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:42:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:42:49 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:42:49 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:42:50 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@4407b042 +2025-09-05 16:42:50 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:42:50 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:42:50 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.501 seconds (process running for 4.975) +2025-09-05 16:47:49 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:47:49 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:47:49 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 16:47:49 [http-nio-31001-exec-4] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 288 ms +2025-09-05 16:49:01 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:49:01 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:49:01 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:49:01 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:49:04 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 12096 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:49:04 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:49:05 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:49:05 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 27 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:49:05 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:49:05 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:49:05 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:49:05 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:49:05 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1066 ms +2025-09-05 16:49:06 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:49:06 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:49:06 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:49:06 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:49:06 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:49:06 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:49:06 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:49:06 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:49:06 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:49:06 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:49:06 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:49:06 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:49:07 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:49:07 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:49:08 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@7be3abaa +2025-09-05 16:49:08 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:49:08 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:49:08 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.182 seconds (process running for 4.624) +2025-09-05 16:49:56 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:49:56 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:49:56 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:49:56 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:49:59 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 26420 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:49:59 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:50:00 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:50:00 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 29 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:50:01 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:50:01 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:50:01 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:50:01 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:50:01 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1092 ms +2025-09-05 16:50:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:50:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:50:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:50:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:50:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:50:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:01 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:50:01 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:02 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:50:02 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:50:03 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@41f686af +2025-09-05 16:50:03 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:50:03 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:50:03 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.112 seconds (process running for 4.547) +2025-09-05 16:50:06 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:50:06 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:50:06 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms +2025-09-05 16:50:07 [http-nio-31001-exec-4] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 276 ms +2025-09-05 16:50:43 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:50:43 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:50:43 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:50:43 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:50:46 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 27544 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:50:46 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:50:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:50:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 37 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:50:47 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:50:47 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:50:47 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:50:47 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:50:47 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1105 ms +2025-09-05 16:50:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:50:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:50:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:50:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:50:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:50:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:48 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:50:48 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:50:49 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:50:49 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:50:50 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@7be3abaa +2025-09-05 16:50:50 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:50:50 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:50:50 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.106 seconds (process running for 4.553) +2025-09-05 16:50:54 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:50:54 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:50:54 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 16:51:27 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:51:27 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:51:27 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:51:27 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:51:29 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 19632 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:51:29 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:51:29 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:51:29 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 21 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:51:30 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:51:30 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:51:30 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:51:30 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:51:30 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1119 ms +2025-09-05 16:51:30 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:51:30 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:51:30 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:51:30 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:51:30 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:51:30 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:51:30 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:51:30 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:51:30 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:51:30 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:51:30 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:51:30 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:51:31 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:51:32 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:51:32 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3dded90a +2025-09-05 16:51:32 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:51:32 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:51:32 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.18 seconds (process running for 4.637) +2025-09-05 16:51:35 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 16:51:35 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 16:51:35 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 16:59:50 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 16:59:50 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 16:59:50 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 16:59:50 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-09-05 16:59:54 [main] INFO com.mini.capi.CApiApplication - Starting CApiApplication using Java 17.0.12 with PID 23364 (D:\www\c-api\target\classes started by BDA in D:\www\c-api) +2025-09-05 16:59:54 [main] INFO com.mini.capi.CApiApplication - No active profile set, falling back to 1 default profile: "default" +2025-09-05 16:59:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. +2025-09-05 16:59:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 28 ms. Found 0 JDBC repository interfaces. +2025-09-05 16:59:55 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 31001 (http) +2025-09-05 16:59:55 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-05 16:59:55 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.44] +2025-09-05 16:59:55 [main] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring embedded WebApplicationContext +2025-09-05 16:59:55 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1128 ms +2025-09-05 16:59:55 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiMenus". +2025-09-05 16:59:55 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiMenus ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:59:55 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.ApiModule". +2025-09-05 16:59:55 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.ApiModule ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:59:56 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.CombinedSummaryView". +2025-09-05 16:59:56 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.CombinedSummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:59:56 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.DailySummaryView". +2025-09-05 16:59:56 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.DailySummaryView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:59:56 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.IncomesExpenseView". +2025-09-05 16:59:56 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.IncomesExpenseView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:59:56 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mini.capi.biz.domain.SyncTablesView". +2025-09-05 16:59:56 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.mini.capi.biz.domain.SyncTablesView ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-09-05 16:59:57 [main] INFO o.s.v.b.OptionalValidatorFactoryBean - Failed to set up a Bean Validation provider: jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. +2025-09-05 16:59:57 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-09-05 16:59:58 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@41f686af +2025-09-05 16:59:58 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-09-05 16:59:58 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 31001 (http) with context path '/cApi' +2025-09-05 16:59:58 [main] INFO com.mini.capi.CApiApplication - Started CApiApplication in 4.44 seconds (process running for 4.886) +2025-09-05 17:00:00 [http-nio-31001-exec-1] INFO o.a.c.c.C.[.[localhost].[/cApi] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-09-05 17:00:00 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-09-05 17:00:00 [http-nio-31001-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-09-05 17:00:01 [http-nio-31001-exec-8] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 277 ms +2025-09-05 17:34:03 [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete +2025-09-05 17:34:03 [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown - Graceful shutdown complete +2025-09-05 17:34:03 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-09-05 17:34:03 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. diff --git a/pom.xml b/pom.xml index a58e77b..d1433a5 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,17 @@ + + com.sun.mail + javax.mail + 1.6.2 + + + javax.activation + activation + 1.1.1 + + org.springdoc springdoc-openapi-starter-webmvc-ui @@ -67,9 +78,11 @@ mybatis-spring-boot-starter 3.0.4 + org.springframework.security spring-security-core + 6.5.4 diff --git a/src/main/java/com/mini/capi/biz/controller/MailAccountController.java b/src/main/java/com/mini/capi/biz/controller/MailAccountController.java new file mode 100644 index 0000000..f6f7d7d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/MailAccountController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 邮件账户配置表 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@RestController +@RequestMapping("/biz/mailAccount") +public class MailAccountController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/MailAttachmentController.java b/src/main/java/com/mini/capi/biz/controller/MailAttachmentController.java new file mode 100644 index 0000000..56daae2 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/MailAttachmentController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 附件表 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@RestController +@RequestMapping("/biz/mailAttachment") +public class MailAttachmentController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/MailReceivedController.java b/src/main/java/com/mini/capi/biz/controller/MailReceivedController.java new file mode 100644 index 0000000..c83c0b5 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/MailReceivedController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 接收邮件表 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@RestController +@RequestMapping("/biz/mailReceived") +public class MailReceivedController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/MailSentController.java b/src/main/java/com/mini/capi/biz/controller/MailSentController.java new file mode 100644 index 0000000..bcdc251 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/MailSentController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 发送邮件表 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@RestController +@RequestMapping("/biz/mailSent") +public class MailSentController { + +} diff --git a/src/main/java/com/mini/capi/biz/domain/MailAccount.java b/src/main/java/com/mini/capi/biz/domain/MailAccount.java new file mode 100644 index 0000000..0c02841 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/MailAccount.java @@ -0,0 +1,125 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 邮件账户配置表 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Getter +@Setter +@TableName("biz_mail_account") +public class MailAccount implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 邮件服务器地址 + */ + @TableField("host") + private String host; + + /** + * SMTP端口 + */ + @TableField("smtp_port") + private Integer smtpPort; + + /** + * IMAP端口 + */ + @TableField("imap_port") + private Integer imapPort; + + /** + * 用户名 + */ + @TableField("username") + private String username; + + /** + * 密码 + */ + @TableField("password") + private String password; + + /** + * 发件人地址 + */ + @TableField("from_address") + private String fromAddress; + + /** + * 是否启用SSL + */ + @TableField("ssl_enable") + private Boolean sslEnable; + + /** + * 状态:0-禁用,1-启用 + */ + @TableField("status") + private Boolean status; + + /** + * 备注 + */ + @TableField("remark") + private String remark; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + /** + * 租户id + */ + @TableField("f_tenant_id") + private String fTenantId; + + /** + * 流程id + */ + @TableField("f_flow_id") + private String fFlowId; + + /** + * 流程任务主键 + */ + @TableField("f_flow_task_id") + private String fFlowTaskId; + + /** + * 流程任务状态 + */ + @TableField("f_flow_state") + private Integer fFlowState; +} diff --git a/src/main/java/com/mini/capi/biz/domain/MailAttachment.java b/src/main/java/com/mini/capi/biz/domain/MailAttachment.java new file mode 100644 index 0000000..19a6216 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/MailAttachment.java @@ -0,0 +1,122 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 附件表 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Getter +@Setter +@TableName("biz_mail_attachment") +public class MailAttachment implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 文件编号 + */ + @TableField("file_no") + private String fileNo; + + /** + * 目录 + */ + @TableField("directory") + private String directory; + + /** + * 原始文件名 + */ + @TableField("original_file_name") + private String originalFileName; + + /** + * 存储地址(目录+32位随机字符+拓展名) + */ + @TableField("storage_path") + private String storagePath; + + /** + * 文件大小(字节) + */ + @TableField("file_size") + private Long fileSize; + + /** + * 类型:1-收件附件,2-发件附件 + */ + @TableField("type") + private Boolean type; + + /** + * 关联的收件或发件ID + */ + @TableField("ref_id") + private Long refId; + + /** + * 文件类型 + */ + @TableField("content_type") + private String contentType; + + /** + * 下载次数 + */ + @TableField("download_count") + private Integer downloadCount; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + /** + * 租户id + */ + @TableField("f_tenant_id") + private String fTenantId; + + /** + * 流程id + */ + @TableField("f_flow_id") + private String fFlowId; + + /** + * 流程任务主键 + */ + @TableField("f_flow_task_id") + private String fFlowTaskId; + + /** + * 流程任务状态 + */ + @TableField("f_flow_state") + private Integer fFlowState; +} diff --git a/src/main/java/com/mini/capi/biz/domain/MailReceived.java b/src/main/java/com/mini/capi/biz/domain/MailReceived.java new file mode 100644 index 0000000..d885e87 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/MailReceived.java @@ -0,0 +1,146 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 接收邮件表 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Getter +@Setter +@TableName("biz_mail_received") +public class MailReceived implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 邮件服务器消息ID + */ + @TableField("message_id") + private String messageId; + + /** + * 关联的邮件账户ID + */ + @TableField("account_id") + private Long accountId; + + /** + * 发件人地址 + */ + @TableField("from_address") + private String fromAddress; + + /** + * 发件人名称 + */ + @TableField("from_name") + private String fromName; + + /** + * 收件人地址,多个用逗号分隔 + */ + @TableField("to_addresses") + private String toAddresses; + + /** + * 抄送地址,多个用逗号分隔 + */ + @TableField("cc_addresses") + private String ccAddresses; + + /** + * 邮件主题 + */ + @TableField("subject") + private String subject; + + /** + * 邮件内容 + */ + @TableField("content") + private String content; + + /** + * 发送时间 + */ + @TableField("send_time") + private LocalDateTime sendTime; + + /** + * 接收时间 + */ + @TableField("receive_time") + private LocalDateTime receiveTime; + + /** + * 是否已读:0-未读,1-已读 + */ + @TableField("is_read") + private Boolean isRead; + + /** + * 是否有附件:0-无,1-有 + */ + @TableField("has_attachment") + private Boolean hasAttachment; + + /** + * 邮件文件夹 + */ + @TableField("folder") + private String folder; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + /** + * 租户id + */ + @TableField("f_tenant_id") + private String fTenantId; + + /** + * 流程id + */ + @TableField("f_flow_id") + private String fFlowId; + + /** + * 流程任务主键 + */ + @TableField("f_flow_task_id") + private String fFlowTaskId; + + /** + * 流程任务状态 + */ + @TableField("f_flow_state") + private Integer fFlowState; +} diff --git a/src/main/java/com/mini/capi/biz/domain/MailSent.java b/src/main/java/com/mini/capi/biz/domain/MailSent.java new file mode 100644 index 0000000..64330aa --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/MailSent.java @@ -0,0 +1,134 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 发送邮件表 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Getter +@Setter +@TableName("biz_mail_sent") +public class MailSent implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 邮件服务器消息ID + */ + @TableField("message_id") + private String messageId; + + /** + * 关联的邮件账户ID + */ + @TableField("account_id") + private Long accountId; + + /** + * 发件人地址 + */ + @TableField("from_address") + private String fromAddress; + + /** + * 收件人地址,多个用逗号分隔 + */ + @TableField("to_addresses") + private String toAddresses; + + /** + * 抄送地址,多个用逗号分隔 + */ + @TableField("cc_addresses") + private String ccAddresses; + + /** + * 邮件主题 + */ + @TableField("subject") + private String subject; + + /** + * 邮件内容 + */ + @TableField("content") + private String content; + + /** + * 发送时间 + */ + @TableField("send_time") + private LocalDateTime sendTime; + + /** + * 发送状态:0-待发送,1-发送成功,2-发送失败 + */ + @TableField("send_status") + private Boolean sendStatus; + + /** + * 错误信息 + */ + @TableField("error_msg") + private String errorMsg; + + /** + * 是否有附件:0-无,1-有 + */ + @TableField("has_attachment") + private Boolean hasAttachment; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + /** + * 租户id + */ + @TableField("f_tenant_id") + private String fTenantId; + + /** + * 流程id + */ + @TableField("f_flow_id") + private String fFlowId; + + /** + * 流程任务主键 + */ + @TableField("f_flow_task_id") + private String fFlowTaskId; + + /** + * 流程任务状态 + */ + @TableField("f_flow_state") + private Integer fFlowState; +} diff --git a/src/main/java/com/mini/capi/biz/mapper/MailAccountMapper.java b/src/main/java/com/mini/capi/biz/mapper/MailAccountMapper.java new file mode 100644 index 0000000..96fe63d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/MailAccountMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.MailAccount; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 邮件账户配置表 Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailAccountMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/MailAttachmentMapper.java b/src/main/java/com/mini/capi/biz/mapper/MailAttachmentMapper.java new file mode 100644 index 0000000..88b8f1d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/MailAttachmentMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.MailAttachment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 附件表 Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailAttachmentMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/MailReceivedMapper.java b/src/main/java/com/mini/capi/biz/mapper/MailReceivedMapper.java new file mode 100644 index 0000000..5956eb1 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/MailReceivedMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.MailReceived; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 接收邮件表 Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailReceivedMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/MailSentMapper.java b/src/main/java/com/mini/capi/biz/mapper/MailSentMapper.java new file mode 100644 index 0000000..8f4aa3d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/MailSentMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.MailSent; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 发送邮件表 Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailSentMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/service/MailAccountService.java b/src/main/java/com/mini/capi/biz/service/MailAccountService.java new file mode 100644 index 0000000..c3e3c1a --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/MailAccountService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.MailAccount; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 邮件账户配置表 服务类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailAccountService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/MailAttachmentService.java b/src/main/java/com/mini/capi/biz/service/MailAttachmentService.java new file mode 100644 index 0000000..1fc685e --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/MailAttachmentService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.MailAttachment; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 附件表 服务类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailAttachmentService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/MailReceivedService.java b/src/main/java/com/mini/capi/biz/service/MailReceivedService.java new file mode 100644 index 0000000..737163a --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/MailReceivedService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.MailReceived; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 接收邮件表 服务类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailReceivedService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/MailSentService.java b/src/main/java/com/mini/capi/biz/service/MailSentService.java new file mode 100644 index 0000000..9433bfd --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/MailSentService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.MailSent; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 发送邮件表 服务类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +public interface MailSentService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/MailAccountServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/MailAccountServiceImpl.java new file mode 100644 index 0000000..643d837 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/MailAccountServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.MailAccount; +import com.mini.capi.biz.mapper.MailAccountMapper; +import com.mini.capi.biz.service.MailAccountService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 邮件账户配置表 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Service +public class MailAccountServiceImpl extends ServiceImpl implements MailAccountService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/MailAttachmentServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/MailAttachmentServiceImpl.java new file mode 100644 index 0000000..1b13983 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/MailAttachmentServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.MailAttachment; +import com.mini.capi.biz.mapper.MailAttachmentMapper; +import com.mini.capi.biz.service.MailAttachmentService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 附件表 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Service +public class MailAttachmentServiceImpl extends ServiceImpl implements MailAttachmentService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/MailReceivedServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/MailReceivedServiceImpl.java new file mode 100644 index 0000000..d0c21aa --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/MailReceivedServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.MailReceived; +import com.mini.capi.biz.mapper.MailReceivedMapper; +import com.mini.capi.biz.service.MailReceivedService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 接收邮件表 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Service +public class MailReceivedServiceImpl extends ServiceImpl implements MailReceivedService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/MailSentServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/MailSentServiceImpl.java new file mode 100644 index 0000000..42ee154 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/MailSentServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.MailSent; +import com.mini.capi.biz.mapper.MailSentMapper; +import com.mini.capi.biz.service.MailSentService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 发送邮件表 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-09-22 + */ +@Service +public class MailSentServiceImpl extends ServiceImpl implements MailSentService { + +} diff --git a/src/main/java/com/mini/capi/mail/config/MailConfig.java b/src/main/java/com/mini/capi/mail/config/MailConfig.java new file mode 100644 index 0000000..fd0602e --- /dev/null +++ b/src/main/java/com/mini/capi/mail/config/MailConfig.java @@ -0,0 +1,57 @@ +package com.mini.capi.mail.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Properties; + +@Configuration +public class MailConfig { + + @Bean + public JavaMailSenderImpl javaMailSender() { + return new JavaMailSenderImpl(); + } + + + /** + * 配置SMTP属性 + */ + public Properties getSmtpProperties(String host, int port, boolean ssl, boolean auth) { + Properties props = new Properties(); + props.put("mail.smtp.host", host); + props.put("mail.smtp.port", port); + props.put("mail.smtp.auth", auth); + + if (ssl) { + props.put("mail.smtp.ssl.enable", "true"); + } else { + props.put("mail.smtp.starttls.enable", "true"); + } + + props.put("mail.smtp.connectiontimeout", 5000); + props.put("mail.smtp.timeout", 5000); + props.put("mail.smtp.writetimeout", 5000); + + return props; + } + + /** + * 配置IMAP属性 + */ + public Properties getImapProperties(String host, int port, boolean ssl) { + Properties props = new Properties(); + props.put("mail.imap.host", host); + props.put("mail.imap.port", port); + + if (ssl) { + props.put("mail.imap.ssl.enable", "true"); + } + + props.put("mail.imap.connectiontimeout", 5000); + props.put("mail.imap.timeout", 5000); + + return props; + } + +} diff --git a/src/main/java/com/mini/capi/mail/config/ThreadPoolConfig.java b/src/main/java/com/mini/capi/mail/config/ThreadPoolConfig.java new file mode 100644 index 0000000..63e1fd6 --- /dev/null +++ b/src/main/java/com/mini/capi/mail/config/ThreadPoolConfig.java @@ -0,0 +1,33 @@ +package com.mini.capi.mail.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +@Configuration +public class ThreadPoolConfig { + + /** + * 附件处理线程池 + */ + @Bean(name = "attachmentExecutor") + public Executor attachmentExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + // 核心线程数 + executor.setCorePoolSize(5); + // 最大线程数 + executor.setMaxPoolSize(10); + // 队列容量 + executor.setQueueCapacity(50); + // 线程名称前缀 + executor.setThreadNamePrefix("attachment-"); + // 拒绝策略:由调用线程处理 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 初始化 + executor.initialize(); + return executor; + } +} diff --git a/src/main/java/com/mini/capi/mail/controller/MailController.java b/src/main/java/com/mini/capi/mail/controller/MailController.java new file mode 100644 index 0000000..ce0d710 --- /dev/null +++ b/src/main/java/com/mini/capi/mail/controller/MailController.java @@ -0,0 +1,102 @@ +package com.mini.capi.mail.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/mail") +public class MailController { + + @Autowired + private MailReceiveService mailReceiveService; + + @Autowired + private MailSendService mailSendService; + + @Autowired + private MailAccountMapper mailAccountMapper; + + @Autowired + private MailReceivedMapper mailReceivedMapper; + + @Autowired + private MailSentMapper mailSentMapper; + + /** + * 接收邮件 + */ + @PostMapping("/receive/{accountId}") + public ResponseVO receiveEmails(@PathVariable Long accountId) { + try { + int count = mailReceiveService.syncNewEmails(accountId); + return ResponseVO.success(count, "接收邮件成功"); + } catch (Exception e) { + return ResponseVO.error("接收邮件失败: " + e.getMessage()); + } + } + + /** + * 发送邮件 + */ + @PostMapping("/send/{accountId}") + public ResponseVO sendEmail( + @PathVariable Long accountId, + @ModelAttribute MailSendVO mailSendVO) { + try { + MailAccount account = mailAccountMapper.selectById(accountId); + if (account == null) { + return ResponseVO.error("未找到邮件账户"); + } + + Long mailId = mailSendService.sendEmail(account, mailSendVO); + return ResponseVO.success(mailId, "发送邮件成功"); + } catch (Exception e) { + return ResponseVO.error("发送邮件失败: " + e.getMessage()); + } + } + + /** + * 获取收件箱邮件 + */ + @GetMapping("/received/{accountId}") + public ResponseVO> getReceivedEmails( + @PathVariable Long accountId, + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "20") int size) { + try { + QueryWrapper query = new QueryWrapper<>(); + query.eq("account_id", accountId) + .orderByDesc("received_date") + .last("LIMIT " + page * size + "," + size); + + List emails = mailReceivedMapper.selectList(query); + return ResponseVO.success(emails); + } catch (Exception e) { + return ResponseVO.error("获取收件箱邮件失败: " + e.getMessage()); + } + } + + /** + * 获取已发送邮件 + */ + @GetMapping("/sent/{accountId}") + public ResponseVO> getSentEmails( + @PathVariable Long accountId, + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "20") int size) { + try { + QueryWrapper query = new QueryWrapper<>(); + query.eq("account_id", accountId) + .orderByDesc("send_date") + .last("LIMIT " + page * size + "," + size); + + List emails = mailSentMapper.selectList(query); + return ResponseVO.success(emails); + } catch (Exception e) { + return ResponseVO.error("获取已发送邮件失败: " + e.getMessage()); + } + } +} + diff --git a/src/main/java/com/mini/capi/mail/dc.java b/src/main/java/com/mini/capi/mail/dc.java new file mode 100644 index 0000000..d1b6779 --- /dev/null +++ b/src/main/java/com/mini/capi/mail/dc.java @@ -0,0 +1,4 @@ +package com.mini.capi.mail; + +public class dc { +} diff --git a/src/main/java/com/mini/capi/mail/service/MailReceiveService.java b/src/main/java/com/mini/capi/mail/service/MailReceiveService.java new file mode 100644 index 0000000..0b6e309 --- /dev/null +++ b/src/main/java/com/mini/capi/mail/service/MailReceiveService.java @@ -0,0 +1,18 @@ +package com.mini.capi.mail.service; + +public interface MailReceiveService { + + /** + * 接收邮件 + * @param account 邮件账户 + * @return 接收成功的邮件数量 + */ + int receiveEmails(MailAccount account); + + /** + * 同步接收最新的未读邮件 + * @param accountId 邮件账户ID + * @return 接收成功的邮件数量 + */ + int syncNewEmails(Long accountId); +} diff --git a/src/main/java/com/mini/capi/mail/service/MailSendService.java b/src/main/java/com/mini/capi/mail/service/MailSendService.java new file mode 100644 index 0000000..336f5df --- /dev/null +++ b/src/main/java/com/mini/capi/mail/service/MailSendService.java @@ -0,0 +1,12 @@ +package com.mini.capi.mail.service; + +public interface MailSendService { + + /** + * 发送邮件 + * @param account 邮件账户 + * @param mailSendVO 邮件发送参数 + * @return 发送成功的邮件ID + */ + Long sendEmail(MailAccount account, MailSendVO mailSendVO); +} diff --git a/src/main/java/com/mini/capi/mail/service/impl/MailReceiveServiceImpl.java b/src/main/java/com/mini/capi/mail/service/impl/MailReceiveServiceImpl.java new file mode 100644 index 0000000..b938240 --- /dev/null +++ b/src/main/java/com/mini/capi/mail/service/impl/MailReceiveServiceImpl.java @@ -0,0 +1,253 @@ +package com.mini.capi.mail.service.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.mail.*; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; +import java.io.File; +import java.util.*; +import java.util.concurrent.Executor; + +@Service +public class MailReceiveServiceImpl implements MailReceiveService { + + private static final Logger logger = LoggerFactory.getLogger(MailReceiveServiceImpl.class); + + // 邮件存储目录 + private static final String MAIL_FILES_DIR = "/ogsapp/mailfiles"; + + @Autowired + private MailAccountMapper mailAccountMapper; + + @Autowired + private MailReceivedMapper mailReceivedMapper; + + @Autowired + private MailAttachmentMapper mailAttachmentMapper; + + @Autowired + private MailConfig mailConfig; + + @Autowired + private Executor attachmentExecutor; + + @Override + @Transactional + public int receiveEmails(MailAccount account) { + if (account == null) { + logger.error("邮件账户不能为空"); + return 0; + } + + Store store = null; + Folder inbox = null; + int receivedCount = 0; + + try { + // 初始化IMAP连接 + Properties props = mailConfig.getImapProperties( + account.getImapHost(), + account.getImapPort(), + account.isImapSsl() + ); + + Session session = Session.getInstance(props); + store = session.getStore("imap"); + store.connect( + account.getImapHost(), + account.getUsername(), + account.getPassword() + ); + + // 打开收件箱,只获取未读邮件 + inbox = store.getFolder("INBOX"); + inbox.open(Folder.READ_WRITE); + + // 搜索未读邮件 + Message[] messages = inbox.search( + new FlagTerm(new Flags(Flags.Flag.SEEN), false) + ); + + logger.info("找到 {} 封未读邮件", messages.length); + + // 处理每封邮件 + for (Message message : messages) { + if (message instanceof MimeMessage) { + // 保存邮件基本信息 + MailReceived mailReceived = saveMailInfo((MimeMessage) message, account); + if (mailReceived != null) { + receivedCount++; + + // 异步处理附件 + attachmentExecutor.execute(() -> { + try { + handleAttachments((MimeMessage) message, mailReceived.getId()); + // 标记为已读 + message.setFlag(Flags.Flag.SEEN, true); + } catch (Exception e) { + logger.error("处理邮件附件失败", e); + } + }); + } + } + } + + } catch (Exception e) { + logger.error("接收邮件失败", e); + } finally { + try { + if (inbox != null && inbox.isOpen()) { + inbox.close(false); + } + if (store != null && store.isConnected()) { + store.close(); + } + } catch (MessagingException e) { + logger.error("关闭邮件连接失败", e); + } + } + + return receivedCount; + } + + @Override + public int syncNewEmails(Long accountId) { + if (accountId == null) { + logger.error("账户ID不能为空"); + return 0; + } + + MailAccount account = mailAccountMapper.selectById(accountId); + if (account == null) { + logger.error("未找到ID为 {} 的邮件账户", accountId); + return 0; + } + + return receiveEmails(account); + } + + /** + * 保存邮件基本信息到数据库 + */ + private MailReceived saveMailInfo(MimeMessage message, MailAccount account) throws MessagingException { + try { + MailReceived mailReceived = new MailReceived(); + + // 设置邮件基本信息 + mailReceived.setAccountId(account.getId()); + mailReceived.setSubject(message.getSubject()); + mailReceived.setSentDate(message.getSentDate()); + mailReceived.setReceivedDate(new Date()); + + // 设置发件人 + Address[] fromAddresses = message.getFrom(); + if (fromAddresses != null && fromAddresses.length > 0) { + mailReceived.setFromAddress(((InternetAddress) fromAddresses[0]).getAddress()); + } + + // 设置收件人 + Address[] toAddresses = message.getRecipients(Message.RecipientType.TO); + if (toAddresses != null && toAddresses.length > 0) { + List toList = new ArrayList<>(); + for (Address addr : toAddresses) { + toList.add(((InternetAddress) addr).getAddress()); + } + mailReceived.setToAddresses(String.join(",", toList)); + } + + // 设置抄送人 + Address[] ccAddresses = message.getRecipients(Message.RecipientType.CC); + if (ccAddresses != null && ccAddresses.length > 0) { + List ccList = new ArrayList<>(); + for (Address addr : ccAddresses) { + ccList.add(((InternetAddress) addr).getAddress()); + } + mailReceived.setCcAddresses(String.join(",", ccList)); + } + + // 获取邮件内容 + String content = MailUtil.getEmailContent(message); + mailReceived.setContent(content); + + // 保存到数据库 + mailReceivedMapper.insert(mailReceived); + return mailReceived; + + } catch (Exception e) { + logger.error("保存邮件信息失败", e); + return null; + } + } + + /** + * 处理并保存邮件附件 + */ + @Async("attachmentExecutor") + @Transactional + public void handleAttachments(MimeMessage message, Long mailReceivedId) throws MessagingException { + try { + Object content = message.getContent(); + + if (content instanceof MimeMultipart) { + MimeMultipart multipart = (MimeMultipart) content; + + // 遍历所有部分寻找附件 + for (int i = 0; i < multipart.getCount(); i++) { + BodyPart bodyPart = multipart.getBodyPart(i); + + // 判断是否为附件 + if (Part.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition()) || + bodyPart.getFileName() != null) { + + // 处理附件 + String originalFileName = bodyPart.getFileName(); + if (originalFileName != null) { + // 生成存储文件名(32位随机字符+扩展名) + String fileExt = originalFileName.contains(".") ? + originalFileName.substring(originalFileName.lastIndexOf(".")) : ""; + String storedFileName = UUID.randomUUID().toString().replaceAll("-", "") + fileExt; + + // 确保存储目录存在 + File dir = new File(MAIL_FILES_DIR); + if (!dir.exists()) { + dir.mkdirs(); + } + + // 保存附件 + String filePath = MAIL_FILES_DIR + File.separator + storedFileName; + FileUtil.saveFile(bodyPart.getInputStream(), filePath); + + // 获取文件大小 + File savedFile = new File(filePath); + long fileSize = savedFile.length(); + + // 保存附件信息到数据库 + MailAttachment attachment = new MailAttachment(); + attachment.setFileNo(UUID.randomUUID().toString()); + attachment.setDirectory(MAIL_FILES_DIR); + attachment.setFileName(originalFileName); + attachment.setStoredPath(filePath); + attachment.setFileSize(fileSize); + attachment.setType(1); // 1表示收件 + attachment.setRelatedId(mailReceivedId); + attachment.setCreateTime(new Date()); + + mailAttachmentMapper.insert(attachment); + + logger.info("保存附件成功: {} -> {}", originalFileName, storedFileName); + } + } + } + } + } catch (Exception e) { + logger.error("处理邮件附件失败", e); + } + } +} diff --git a/src/main/java/com/mini/capi/mail/service/impl/MailSendServiceImpl.java b/src/main/java/com/mini/capi/mail/service/impl/MailSendServiceImpl.java new file mode 100644 index 0000000..6725d70 --- /dev/null +++ b/src/main/java/com/mini/capi/mail/service/impl/MailSendServiceImpl.java @@ -0,0 +1,163 @@ +package com.mini.capi.mail.service.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.javamail.JavaMailSenderImpl; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.mail.internet.MimeMessage; +import java.io.File; +import java.util.*; +import java.util.concurrent.Executor; + +@Service +public class MailSendServiceImpl implements MailSendService { + + private static final Logger logger = LoggerFactory.getLogger(MailSendServiceImpl.class); + + // 邮件存储目录 + private static final String MAIL_FILES_DIR = "/ogsapp/mailfiles"; + + @Autowired + private JavaMailSenderImpl mailSender; + + @Autowired + private MailConfig mailConfig; + + @Autowired + private MailSentMapper mailSentMapper; + + @Autowired + private MailAttachmentMapper mailAttachmentMapper; + + @Autowired + private Executor attachmentExecutor; + + @Override + @Transactional + public Long sendEmail(MailAccount account, MailSendVO mailSendVO) { + if (account == null || mailSendVO == null) { + logger.error("邮件账户或发送参数不能为空"); + return null; + } + + if (mailSendVO.getTo() == null || mailSendVO.getTo().isEmpty()) { + logger.error("收件人不能为空"); + return null; + } + + try { + // 配置邮件发送器 + mailSender.setHost(account.getSmtpHost()); + mailSender.setPort(account.getSmtpPort()); + mailSender.setUsername(account.getUsername()); + mailSender.setPassword(account.getPassword()); + mailSender.setJavaMailProperties(mailConfig.getSmtpProperties( + account.getSmtpHost(), + account.getSmtpPort(), + account.isSmtpSsl(), + true + )); + + // 创建邮件消息 + MimeMessage message = mailSender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); + + // 设置发件人 + helper.setFrom(account.getUsername()); + + // 设置收件人 + helper.setTo(mailSendVO.getTo().toArray(new String[0])); + + // 设置抄送 + if (!CollectionUtils.isEmpty(mailSendVO.getCc())) { + helper.setCc(mailSendVO.getCc().toArray(new String[0])); + } + + // 设置邮件主题和内容 + helper.setSubject(mailSendVO.getSubject()); + helper.setText(mailSendVO.getContent(), mailSendVO.isHtml()); + + // 设置发送时间 + Date sendDate = new Date(); + helper.setSentDate(sendDate); + + // 处理附件 + List attachments = new ArrayList<>(); + if (mailSendVO.getAttachments() != null && !mailSendVO.getAttachments().isEmpty()) { + for (MultipartFile file : mailSendVO.getAttachments()) { + if (!file.isEmpty()) { + // 保存附件到服务器 + String originalFileName = file.getOriginalFilename(); + String fileExt = originalFileName.contains(".") ? + originalFileName.substring(originalFileName.lastIndexOf(".")) : ""; + String storedFileName = UUID.randomUUID().toString().replaceAll("-", "") + fileExt; + + // 确保存储目录存在 + File dir = new File(MAIL_FILES_DIR); + if (!dir.exists()) { + dir.mkdirs(); + } + + // 保存文件 + String filePath = MAIL_FILES_DIR + File.separator + storedFileName; + file.transferTo(new File(filePath)); + + // 添加到邮件 + helper.addAttachment(originalFileName, new File(filePath)); + + // 记录附件信息 + MailAttachment attachment = new MailAttachment(); + attachment.setFileNo(UUID.randomUUID().toString()); + attachment.setDirectory(MAIL_FILES_DIR); + attachment.setFileName(originalFileName); + attachment.setStoredPath(filePath); + attachment.setFileSize(file.getSize()); + attachment.setType(2); // 2表示发件 + attachment.setCreateTime(new Date()); + + attachments.add(attachment); + } + } + } + + // 发送邮件 + mailSender.send(message); + logger.info("邮件发送成功,主题: {}", mailSendVO.getSubject()); + + // 保存发送记录 + MailSent mailSent = new MailSent(); + mailSent.setAccountId(account.getId()); + mailSent.setSubject(mailSendVO.getSubject()); + mailSent.setContent(mailSendVO.getContent()); + mailSent.setFromAddress(account.getUsername()); + mailSent.setToAddresses(String.join(",", mailSendVO.getTo())); + + if (!CollectionUtils.isEmpty(mailSendVO.getCc())) { + mailSent.setCcAddresses(String.join(",", mailSendVO.getCc())); + } + + mailSent.setSendDate(sendDate); + mailSent.setIsHtml(mailSendVO.isHtml() ? 1 : 0); + + mailSentMapper.insert(mailSent); + + // 保存附件关联信息 + for (MailAttachment attachment : attachments) { + attachment.setRelatedId(mailSent.getId()); + mailAttachmentMapper.insert(attachment); + } + + return mailSent.getId(); + + } catch (Exception e) { + logger.error("发送邮件失败", e); + throw new RuntimeException("发送邮件失败", e); + } + } +} diff --git a/src/main/java/com/mini/capi/mail/vo/MailSendVO.java b/src/main/java/com/mini/capi/mail/vo/MailSendVO.java new file mode 100644 index 0000000..943d87d --- /dev/null +++ b/src/main/java/com/mini/capi/mail/vo/MailSendVO.java @@ -0,0 +1,22 @@ +package com.mini.capi.mail.vo; + +public class MailSendVO { + + // 收件人列表 + private List to; + + // 抄送列表 + private List cc; + + // 邮件主题 + private String subject; + + // 邮件内容 + private String content; + + // 是否为HTML内容 + private boolean isHtml = false; + + // 附件列表 + private List attachments; +} diff --git a/src/main/java/com/mini/capi/mail/vo/ResponseVO.java b/src/main/java/com/mini/capi/mail/vo/ResponseVO.java new file mode 100644 index 0000000..6bc11bd --- /dev/null +++ b/src/main/java/com/mini/capi/mail/vo/ResponseVO.java @@ -0,0 +1,38 @@ +package com.mini.capi.mail.vo; + + +public class ResponseVO { + + // 状态码:0表示成功,其他表示失败 + private int code; + + // 消息 + private String message; + + // 数据 + private T data; + + // 成功响应 + public static ResponseVO success(T data, String message) { + ResponseVO response = new ResponseVO<>(); + response.code = 0; + response.message = message; + response.data = data; + return response; + } + + // 成功响应(默认消息) + public static ResponseVO success(T data) { + return success(data, "操作成功"); + } + + // 错误响应 + public static ResponseVO error(String message) { + ResponseVO response = new ResponseVO<>(); + response.code = 1; + response.message = message; + response.data = null; + return response; + } + +} diff --git a/src/main/java/com/mini/capi/mybatis/demo.java b/src/main/java/com/mini/capi/mybatis/demo.java index ca1c26c..a42e9b8 100644 --- a/src/main/java/com/mini/capi/mybatis/demo.java +++ b/src/main/java/com/mini/capi/mybatis/demo.java @@ -29,7 +29,7 @@ public class demo { .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); }) .strategyConfig(builder -> { - builder.addInclude("biz_ssh_servers") + builder.addInclude("biz_mail_account,biz_mail_received,biz_mail_sent,biz_mail_attachment") .addTablePrefix("biz_") .entityBuilder() .enableLombok() diff --git a/src/main/java/com/mini/capi/sys/domain/SendMailDTO.java b/src/main/java/com/mini/capi/sys/domain/SendMailDTO.java new file mode 100644 index 0000000..0bcf9e6 --- /dev/null +++ b/src/main/java/com/mini/capi/sys/domain/SendMailDTO.java @@ -0,0 +1,17 @@ +package com.mini.capi.sys.domain; + +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import java.io.Serializable; +import java.util.List; + +@Data +public class SendMailDTO implements Serializable { + private Long accountId; // 邮件账户ID + private List toAddresses; // 收件人地址列表 + private List ccAddresses; // 抄送地址列表 + private String subject; // 邮件主题 + private String content; // 邮件内容 + private List attachments; // 附件列表 +} diff --git a/src/main/java/com/mini/capi/utils/DateUtils.java b/src/main/java/com/mini/capi/utils/DateUtils.java new file mode 100644 index 0000000..33dcf27 --- /dev/null +++ b/src/main/java/com/mini/capi/utils/DateUtils.java @@ -0,0 +1,29 @@ +package com.mini.capi.utils; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class DateUtils { + + /** + * 格式化当前日期 + * @param pattern 格式模式 + * @return 格式化后的日期字符串 + */ + public static String formatCurrentDate(String pattern) { + return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern)); + } + + /** + * 格式化指定日期 + * @param date 日期 + * @param pattern 格式模式 + * @return 格式化后的日期字符串 + */ + public static String formatDate(LocalDateTime date, String pattern) { + if (date == null) { + return ""; + } + return date.format(DateTimeFormatter.ofPattern(pattern)); + } +} diff --git a/src/main/java/com/mini/capi/utils/FileUtils.java b/src/main/java/com/mini/capi/utils/FileUtils.java new file mode 100644 index 0000000..ab2b067 --- /dev/null +++ b/src/main/java/com/mini/capi/utils/FileUtils.java @@ -0,0 +1,61 @@ +package com.mini.capi.utils; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; + +public class FileUtil { + + private static final Logger logger = LoggerFactory.getLogger(FileUtil.class); + + /** + * 保存输入流到文件 + */ + public static void saveFile(InputStream inputStream, String filePath) { + try (OutputStream outputStream = new FileOutputStream(filePath)) { + byte[] buffer = new byte[4096]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + logger.info("文件保存成功: {}", filePath); + } catch (Exception e) { + logger.error("保存文件失败: " + filePath, e); + throw new RuntimeException("保存文件失败", e); + } + } + + /** + * 复制文件 + */ + public static void copyFile(File source, File dest) { + try { + Files.copy(source.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + logger.error("复制文件失败: {} -> {}", source.getPath(), dest.getPath(), e); + throw new RuntimeException("复制文件失败", e); + } + } + + /** + * 删除文件 + */ + public static boolean deleteFile(String filePath) { + File file = new File(filePath); + if (file.exists() && file.isFile()) { + boolean deleted = file.delete(); + if (deleted) { + logger.info("文件删除成功: {}", filePath); + } else { + logger.warn("文件删除失败: {}", filePath); + } + return deleted; + } + return false; + } +} + diff --git a/src/main/java/com/mini/capi/utils/MailUtil.java b/src/main/java/com/mini/capi/utils/MailUtil.java new file mode 100644 index 0000000..89f8559 --- /dev/null +++ b/src/main/java/com/mini/capi/utils/MailUtil.java @@ -0,0 +1,88 @@ +package com.mini.capi.utils; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.mail.BodyPart; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Multipart; +import javax.mail.internet.MimeMessage; +import java.io.IOException; + +public class MailUtil { + private static final Logger logger = LoggerFactory.getLogger(MailUtil.class); + + /** + * 获取邮件内容 + */ + public static String getEmailContent(Message message) { + try { + Object content = message.getContent(); + + // 简单文本内容 + if (content instanceof String) { + return (String) content; + } + // 复杂内容(多部分) + else if (content instanceof Multipart) { + Multipart multipart = (Multipart) content; + StringBuilder contentBuilder = new StringBuilder(); + + // 遍历所有部分 + for (int i = 0; i < multipart.getCount(); i++) { + BodyPart bodyPart = multipart.getBodyPart(i); + + // 忽略附件 + if (BodyPart.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition()) || + bodyPart.getFileName() != null) { + continue; + } + + // 获取内容 + Object partContent = bodyPart.getContent(); + if (partContent instanceof String) { + contentBuilder.append(partContent); + } else if (partContent instanceof Multipart) { + // 处理嵌套的多部分内容 + contentBuilder.append(getMultipartContent((Multipart) partContent)); + } + } + + return contentBuilder.toString(); + } + } catch (Exception e) { + logger.error("获取邮件内容失败", e); + } + + return ""; + } + + /** + * 处理嵌套的多部分内容 + */ + private static String getMultipartContent(Multipart multipart) throws MessagingException, IOException { + StringBuilder contentBuilder = new StringBuilder(); + + for (int i = 0; i < multipart.getCount(); i++) { + BodyPart bodyPart = multipart.getBodyPart(i); + + // 忽略附件 + if (BodyPart.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition()) || + bodyPart.getFileName() != null) { + continue; + } + + Object partContent = bodyPart.getContent(); + if (partContent instanceof String) { + contentBuilder.append(partContent); + } else if (partContent instanceof Multipart) { + contentBuilder.append(getMultipartContent((Multipart) partContent)); + } + } + + return contentBuilder.toString(); + } +} + diff --git a/src/main/resources/mapper/MailAccountMapper.xml b/src/main/resources/mapper/MailAccountMapper.xml new file mode 100644 index 0000000..604d7dd --- /dev/null +++ b/src/main/resources/mapper/MailAccountMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + create_time, id, host, smtp_port, imap_port, username, password, from_address, ssl_enable, status, remark, update_time, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state + + + diff --git a/src/main/resources/mapper/MailAttachmentMapper.xml b/src/main/resources/mapper/MailAttachmentMapper.xml new file mode 100644 index 0000000..3e480e5 --- /dev/null +++ b/src/main/resources/mapper/MailAttachmentMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + create_time, id, file_no, directory, original_file_name, storage_path, file_size, type, ref_id, content_type, download_count, update_time, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state + + + diff --git a/src/main/resources/mapper/MailReceivedMapper.xml b/src/main/resources/mapper/MailReceivedMapper.xml new file mode 100644 index 0000000..f1a62e4 --- /dev/null +++ b/src/main/resources/mapper/MailReceivedMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + create_time, id, message_id, account_id, from_address, from_name, to_addresses, cc_addresses, subject, content, send_time, receive_time, is_read, has_attachment, folder, update_time, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state + + + diff --git a/src/main/resources/mapper/MailSentMapper.xml b/src/main/resources/mapper/MailSentMapper.xml new file mode 100644 index 0000000..471c2a5 --- /dev/null +++ b/src/main/resources/mapper/MailSentMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + create_time, id, message_id, account_id, from_address, to_addresses, cc_addresses, subject, content, send_time, send_status, error_msg, has_attachment, update_time, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state + + +