diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..96e90e7
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..20ec4b5
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..514d7a6
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..f10d084
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a8fc129
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..c72515b
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,22 @@
+{
+ // 使用 IntelliSense 了解相关属性。
+ // 悬停以查看现有属性的描述。
+ // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "java",
+ "name": "Current File",
+ "request": "launch",
+ "mainClass": "${file}"
+ },
+ {
+ "type": "java",
+ "name": "service-api",
+ "request": "launch",
+ "mainClass": "com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication",
+ "projectName": "weight-loss-camp-service-api",
+ "vmArgs": "-Dfile.encoding=UTF-8"
+ }
+ ]
+}
diff --git a/logs/weight-loss-camp-service-api-2025-04-08-1.log b/logs/weight-loss-camp-service-api-2025-04-08-1.log
new file mode 100644
index 0000000..9438733
--- /dev/null
+++ b/logs/weight-loss-camp-service-api-2025-04-08-1.log
@@ -0,0 +1,866 @@
+2025-04-08 15:25:15.907 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:25:15.906 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:25:15.912 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:25:15.912 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:25:15.915 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:25:15.915 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:25:15.917 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:25:16.088 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 19004 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:25:16.091 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:25:17.107 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:25:17.493 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:25:17.509 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:25:17.511 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:25:17.511 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:25:17.565 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:25:17.567 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1433 ms
+2025-04-08 15:25:19.323 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:25:20.522 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:25:20.634 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:25:20.664 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:25:20.771 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:25:20.771 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:25:20.807 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:25:20.808 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:25:20.811 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:25:20.838 [http-nio-8080-exec-1] [] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Request: {"method":"POST","params":{},"uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:25:20.961 [http-nio-8080-exec-1] [] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - MethodArgumentNotValidException 参数校验异常: mainImage:主图不能为空;address:地址不能为空;longitude:经度不能为空;latitude:纬度不能为空
+2025-04-08 15:25:20.984 [http-nio-8080-exec-1] [] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Response: {"body":"{\"code\":400,\"msg\":\"mainImage:主å¾ä¸è½ä¸ºç©º;address:å°åä¸è½ä¸ºç©º;longitude:ç»åº¦ä¸è½ä¸ºç©º;latitude:纬度ä¸è½ä¸ºç©º\",\"data\":null}","status":200}
+2025-04-08 15:25:21.678 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:25:21.679 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:25:21.680 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:25:21.681 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:25:21.785 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:25:22.790 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:25:22.798 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.212 seconds (process running for 9.135)
+2025-04-08 15:26:40.158 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:26:40.159 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:26:40.167 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:26:40.167 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:26:40.168 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:26:40.169 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:26:40.170 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:26:40.347 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 5344 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:26:40.351 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:26:41.242 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:26:41.634 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:26:41.650 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:26:41.653 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:26:41.654 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:26:41.705 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:26:41.706 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1310 ms
+2025-04-08 15:26:43.429 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:26:44.610 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:26:44.704 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:26:44.725 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:26:44.787 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:26:44.787 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:26:45.610 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:26:45.612 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:26:45.613 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:26:45.614 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:26:45.708 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:26:46.722 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:26:46.734 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.968 seconds (process running for 8.802)
+2025-04-08 15:27:11.437 [http-nio-8080-exec-2] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:27:11.439 [http-nio-8080-exec-2] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:27:11.441 [http-nio-8080-exec-2] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:27:11.458 [http-nio-8080-exec-2] [] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Request: {"method":"POST","params":{},"uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:27:11.583 [http-nio-8080-exec-2] [] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - MethodArgumentNotValidException 参数校验异常: latitude:纬度不能为空;address:地址不能为空;mainImage:主图不能为空;longitude:经度不能为空
+2025-04-08 15:27:11.594 [http-nio-8080-exec-2] [] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Response: {"body":"{\"code\":400,\"msg\":\"latitude:纬度不能为空;address:地址不能为空;mainImage:主图不能为空;longitude:经度不能为空\",\"data\":null}","status":200}
+2025-04-08 15:29:01.816 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:29:01.818 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:29:01.821 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:29:01.821 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:29:01.824 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:29:01.824 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:29:01.824 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:29:02.004 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 19116 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:29:02.007 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:29:02.882 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:29:03.253 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:29:03.267 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:29:03.269 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:29:03.270 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:29:03.318 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:29:03.319 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1272 ms
+2025-04-08 15:29:05.054 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:29:06.246 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:29:06.335 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:29:06.352 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:29:06.417 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:29:06.417 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:29:07.316 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:29:07.317 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:29:07.318 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:29:07.319 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:29:07.419 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:29:08.427 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:29:08.436 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.936 seconds (process running for 8.768)
+2025-04-08 15:29:11.829 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:29:11.829 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:29:11.831 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:29:11.842 [http-nio-8080-exec-1] [1db73464-ab26-4efc-9599-a4a146df1ab6] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Request: {"method":"POST","params":{},"uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:29:11.937 [http-nio-8080-exec-1] [1db73464-ab26-4efc-9599-a4a146df1ab6] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - MethodArgumentNotValidException 参数校验异常: latitude:纬度不能为空;mainImage:主图不能为空;address:地址不能为空;longitude:经度不能为空
+2025-04-08 15:29:11.950 [http-nio-8080-exec-1] [1db73464-ab26-4efc-9599-a4a146df1ab6] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Response: {"body":"{\"code\":400,\"msg\":\"latitude:纬度不能为空;mainImage:主图不能为空;address:地址不能为空;longitude:经度不能为空\",\"data\":null}","status":200}
+2025-04-08 15:31:42.750 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:31:42.748 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:31:42.757 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:31:42.757 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:31:42.758 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:31:42.758 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:31:42.759 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:31:42.946 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 8440 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:31:42.949 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:31:43.864 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:31:44.247 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:31:44.262 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:31:44.263 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:31:44.264 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:31:44.316 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:31:44.319 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1326 ms
+2025-04-08 15:31:46.053 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:31:47.226 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:31:47.313 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:31:47.336 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:31:47.402 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:31:47.402 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:31:48.315 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:31:48.317 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:31:48.318 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:31:48.319 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:31:48.440 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:31:49.455 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:31:49.472 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.055 seconds (process running for 9.043)
+2025-04-08 15:31:52.189 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:31:52.190 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:31:52.192 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:31:52.208 [http-nio-8080-exec-1] [9a214a86-9c53-469d-a06a-adbc061bba2f] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Request: {"method":"POST","params":{},"uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:31:52.315 [http-nio-8080-exec-1] [9a214a86-9c53-469d-a06a-adbc061bba2f] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - MethodArgumentNotValidException 参数校验异常: address:地址不能为空;latitude:纬度不能为空;longitude:经度不能为空;mainImage:主图不能为空
+2025-04-08 15:31:52.329 [http-nio-8080-exec-1] [9a214a86-9c53-469d-a06a-adbc061bba2f] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Response: {"body":"{\"code\":400,\"msg\":\"address:地址不能为空;latitude:纬度不能为空;longitude:经度不能为空;mainImage:主图不能为空\",\"data\":null}","status":200}
+2025-04-08 15:34:16.004 [http-nio-8080-exec-2] [69b6baca-2c00-4c02-82c4-5e652d701d3f] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Request: {"method":"POST","params":{},"uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:34:16.072 [http-nio-8080-exec-2] [69b6baca-2c00-4c02-82c4-5e652d701d3f] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:34:16.383 [http-nio-8080-exec-2] [69b6baca-2c00-4c02-82c4-5e652d701d3f] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@70bdd2f6
+2025-04-08 15:34:16.385 [http-nio-8080-exec-2] [69b6baca-2c00-4c02-82c4-5e652d701d3f] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:34:16.663 [http-nio-8080-exec-2] [69b6baca-2c00-4c02-82c4-5e652d701d3f] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - 系统异常
+org.springframework.dao.DataIntegrityViolationException:
+### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null
+### The error may exist in com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java (best guess)
+### The error may involve com.wjbl.weightlosscamp.service.api.mapper.CampInfoMapper.insert-Inline
+### The error occurred while setting parameters
+### SQL: INSERT INTO camp_info (id, name, longitude, latitude, address, main_image, tenant_id, created_by_id, created_by, created_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null
+; Column 'tenant_id' cannot be null
+ at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:97) ~[spring-jdbc-6.1.18.jar:6.1.18]
+ at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107) ~[spring-jdbc-6.1.18.jar:6.1.18]
+ at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:116) ~[spring-jdbc-6.1.18.jar:6.1.18]
+ at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:93) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:347) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ at jdk.proxy2/jdk.proxy2.$Proxy98.insert(Unknown Source) ~[?:?]
+ at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:224) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59) ~[mybatis-plus-core-3.5.11.jar:3.5.11]
+ at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:155) ~[mybatis-plus-core-3.5.11.jar:3.5.11]
+ at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:92) ~[mybatis-plus-core-3.5.11.jar:3.5.11]
+ at jdk.proxy2/jdk.proxy2.$Proxy104.insert(Unknown Source) ~[?:?]
+ at com.baomidou.mybatisplus.extension.repository.IRepository.save(IRepository.java:37) ~[mybatis-plus-extension-3.5.11.jar:3.5.11]
+ at com.wjbl.weightlosscamp.service.api.service.impl.CampInfoServiceImpl.add(CampInfoServiceImpl.java:26) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.18.jar:6.1.18]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:716) ~[spring-aop-6.1.18.jar:6.1.18]
+ at com.wjbl.weightlosscamp.service.api.service.impl.CampInfoServiceImpl$$SpringCGLIB$$0.add() ~[classes/:?]
+ at com.wjbl.weightlosscamp.service.api.controller.CampInfoController.add(CampInfoController.java:34) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[tomcat-embed-core-10.1.39.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.39.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at com.wjbl.weightlosscamp.api.base.filter.WebLogFilter.doFilterInternal(WebLogFilter.java:42) ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at com.wjbl.weightlosscamp.api.base.filter.WebParamFilter.doFilterInternal(WebParamFilter.java:49) ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
+Caused by: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) ~[HikariCP-5.1.0.jar:?]
+ at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) ~[HikariCP-5.1.0.jar:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) ~[mybatis-3.5.19.jar:3.5.19]
+ at jdk.proxy3/jdk.proxy3.$Proxy129.execute(Unknown Source) ~[?:?]
+ at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75) ~[mybatis-3.5.19.jar:3.5.19]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.5.19.jar:3.5.19]
+ at jdk.proxy2/jdk.proxy2.$Proxy127.update(Unknown Source) ~[?:?]
+ at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) ~[mybatis-3.5.19.jar:3.5.19]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) ~[mybatis-3.5.19.jar:3.5.19]
+ at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106) ~[mybatis-plus-extension-3.5.11.jar:3.5.11]
+ at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) ~[mybatis-3.5.19.jar:3.5.19]
+ at jdk.proxy2/jdk.proxy2.$Proxy126.update(Unknown Source) ~[?:?]
+ at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) ~[mybatis-3.5.19.jar:3.5.19]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ ... 70 more
+2025-04-08 15:34:16.683 [http-nio-8080-exec-2] [69b6baca-2c00-4c02-82c4-5e652d701d3f] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - Response: {"body":"{\"code\":500,\"msg\":\"\\r\\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null\\r\\n### The error may exist in com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java (best guess)\\r\\n### The error may involve com.wjbl.weightlosscamp.service.api.mapper.CampInfoMapper.insert-Inline\\r\\n### The error occurred while setting parameters\\r\\n### SQL: INSERT INTO camp_info (id, name, longitude, latitude, address, main_image, tenant_id, created_by_id, created_by, created_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\\r\\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null\\n; Column 'tenant_id' cannot be null\",\"data\":null}","status":200}
+2025-04-08 15:42:18.666 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:42:18.666 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:42:18.674 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:42:18.675 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:42:18.675 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:42:18.675 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:42:18.676 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:42:18.848 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 17920 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:42:18.852 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:42:19.789 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:42:20.144 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:42:20.160 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:42:20.163 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:42:20.164 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:42:20.212 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:42:20.214 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1306 ms
+2025-04-08 15:42:21.903 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:42:23.092 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:42:23.192 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:42:23.211 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:42:23.272 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:42:23.273 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:42:24.134 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:42:24.135 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:42:24.136 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:42:24.136 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:42:24.246 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:42:25.257 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:42:25.265 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.925 seconds (process running for 8.783)
+2025-04-08 15:42:33.214 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:42:33.215 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:42:33.216 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:42:34.768 [http-nio-8080-exec-3] [a453127a-a44e-4e5c-b6d5-684e3fd1a70b] INFO org.springdoc.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 233 ms
+2025-04-08 15:42:37.673 [http-nio-8080-exec-4] [338cd5aa-cb7e-499b-9638-704fc4d8b35a] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:42:37.949 [http-nio-8080-exec-4] [338cd5aa-cb7e-499b-9638-704fc4d8b35a] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@36b2c136
+2025-04-08 15:42:37.950 [http-nio-8080-exec-4] [338cd5aa-cb7e-499b-9638-704fc4d8b35a] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:42:38.202 [http-nio-8080-exec-4] [338cd5aa-cb7e-499b-9638-704fc4d8b35a] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - 系统异常
+org.springframework.dao.DataIntegrityViolationException:
+### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null
+### The error may exist in com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java (best guess)
+### The error may involve com.wjbl.weightlosscamp.service.api.mapper.CampInfoMapper.insert-Inline
+### The error occurred while setting parameters
+### SQL: INSERT INTO camp_info (id, name, longitude, latitude, address, main_image, tenant_id, created_by_id, created_by, created_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null
+; Column 'tenant_id' cannot be null
+ at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:97) ~[spring-jdbc-6.1.18.jar:6.1.18]
+ at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107) ~[spring-jdbc-6.1.18.jar:6.1.18]
+ at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:116) ~[spring-jdbc-6.1.18.jar:6.1.18]
+ at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:93) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:347) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ at jdk.proxy2/jdk.proxy2.$Proxy98.insert(Unknown Source) ~[?:?]
+ at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:224) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59) ~[mybatis-plus-core-3.5.11.jar:3.5.11]
+ at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:155) ~[mybatis-plus-core-3.5.11.jar:3.5.11]
+ at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:92) ~[mybatis-plus-core-3.5.11.jar:3.5.11]
+ at jdk.proxy2/jdk.proxy2.$Proxy104.insert(Unknown Source) ~[?:?]
+ at com.baomidou.mybatisplus.extension.repository.IRepository.save(IRepository.java:37) ~[mybatis-plus-extension-3.5.11.jar:3.5.11]
+ at com.wjbl.weightlosscamp.service.api.service.impl.CampInfoServiceImpl.add(CampInfoServiceImpl.java:26) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.18.jar:6.1.18]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:716) ~[spring-aop-6.1.18.jar:6.1.18]
+ at com.wjbl.weightlosscamp.service.api.service.impl.CampInfoServiceImpl$$SpringCGLIB$$0.add() ~[classes/:?]
+ at com.wjbl.weightlosscamp.service.api.controller.CampInfoController.add(CampInfoController.java:34) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[tomcat-embed-core-10.1.39.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.18.jar:6.1.18]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.39.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at com.wjbl.weightlosscamp.api.base.filter.WebLogFilter.doFilterInternal(WebLogFilter.java:42) ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at com.wjbl.weightlosscamp.api.base.filter.WebParamFilter.doFilterInternal(WebParamFilter.java:49) ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.18.jar:6.1.18]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.39.jar:10.1.39]
+ at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
+Caused by: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) ~[mysql-connector-j-8.3.0.jar:8.3.0]
+ at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) ~[HikariCP-5.1.0.jar:?]
+ at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) ~[HikariCP-5.1.0.jar:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) ~[mybatis-3.5.19.jar:3.5.19]
+ at jdk.proxy3/jdk.proxy3.$Proxy134.execute(Unknown Source) ~[?:?]
+ at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75) ~[mybatis-3.5.19.jar:3.5.19]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.5.19.jar:3.5.19]
+ at jdk.proxy2/jdk.proxy2.$Proxy132.update(Unknown Source) ~[?:?]
+ at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) ~[mybatis-3.5.19.jar:3.5.19]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) ~[mybatis-3.5.19.jar:3.5.19]
+ at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106) ~[mybatis-plus-extension-3.5.11.jar:3.5.11]
+ at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) ~[mybatis-3.5.19.jar:3.5.19]
+ at jdk.proxy2/jdk.proxy2.$Proxy131.update(Unknown Source) ~[?:?]
+ at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) ~[mybatis-3.5.19.jar:3.5.19]
+ at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) ~[mybatis-3.5.19.jar:3.5.19]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333) ~[mybatis-spring-3.0.4.jar:3.0.4]
+ ... 70 more
+2025-04-08 15:42:38.352 [http-nio-8080-exec-4] [338cd5aa-cb7e-499b-9638-704fc4d8b35a] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"name\": \"是啊打撒打撒\",\n \"longitude\": \"123\",\n \"latitude\": \"1231\",\n \"address\": \"1231\",\n \"mainImage\": \"1321\"\n}","uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:42:38.352 [http-nio-8080-exec-4] [338cd5aa-cb7e-499b-9638-704fc4d8b35a] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"783ms","body":"{\"code\":500,\"msg\":\"\\r\\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null\\r\\n### The error may exist in com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java (best guess)\\r\\n### The error may involve com.wjbl.weightlosscamp.service.api.mapper.CampInfoMapper.insert-Inline\\r\\n### The error occurred while setting parameters\\r\\n### SQL: INSERT INTO camp_info (id, name, longitude, latitude, address, main_image, tenant_id, created_by_id, created_by, created_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\\r\\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'tenant_id' cannot be null\\n; Column 'tenant_id' cannot be null\",\"data\":null}","status":200}
+2025-04-08 15:44:09.503 [http-nio-8080-exec-6] [4baba96e-4cc7-427b-b4be-0abc17ed7b97] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"name\": \"是啊打撒打撒\",\n \"longitude\": \"123\",\n \"latitude\": \"1231\",\n \"address\": \"1231\",\n \"mainImage\": \"1321\"\n}","uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:44:09.504 [http-nio-8080-exec-6] [4baba96e-4cc7-427b-b4be-0abc17ed7b97] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"16ms","body":"{\"code\":200,\"msg\":\"操作成功\",\"data\":null}","status":200}
+2025-04-08 15:45:37.648 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:45:37.650 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:45:37.655 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:45:37.655 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:45:37.656 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:45:37.656 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:45:37.657 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:45:37.845 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 19112 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:45:37.849 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:45:38.732 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:45:39.097 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:45:39.111 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:45:39.113 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:45:39.114 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:45:39.167 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:45:39.170 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1274 ms
+2025-04-08 15:45:41.019 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:45:42.188 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:45:42.286 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:45:42.307 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:45:42.375 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:45:42.376 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:45:42.384 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:45:42.385 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:45:42.386 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:45:42.557 [http-nio-8080-exec-1] [dd6e24bd-7b46-4fb9-9bbf-db15d78cfcbe] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:45:42.931 [http-nio-8080-exec-1] [dd6e24bd-7b46-4fb9-9bbf-db15d78cfcbe] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@61509046
+2025-04-08 15:45:42.933 [http-nio-8080-exec-1] [dd6e24bd-7b46-4fb9-9bbf-db15d78cfcbe] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:45:43.196 [http-nio-8080-exec-1] [dd6e24bd-7b46-4fb9-9bbf-db15d78cfcbe] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"name\": \"是啊打撒打撒\",\n \"longitude\": \"123\",\n \"latitude\": \"1231\",\n \"address\": \"1231\",\n \"mainImage\": \"1321\"\n}","uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:45:43.197 [http-nio-8080-exec-1] [dd6e24bd-7b46-4fb9-9bbf-db15d78cfcbe] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"801ms","body":"{\"code\":200,\"msg\":\"操作成功\",\"data\":null}","status":200}
+2025-04-08 15:45:43.292 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:45:43.296 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:45:43.297 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:45:43.298 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:45:43.411 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:45:44.426 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:45:44.434 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.108 seconds (process running for 8.917)
+2025-04-08 15:45:58.889 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Start destroying ThreadPool
+2025-04-08 15:45:58.889 [Thread-8] [] WARN com.alibaba.nacos.common.notify.NotifyCenter - [NotifyCenter] Start destroying Publisher
+2025-04-08 15:45:58.889 [Thread-10] [] WARN com.alibaba.nacos.common.http.HttpClientBeanHolder - [HttpClientBeanHolder] Start destroying common HttpClient
+2025-04-08 15:45:58.889 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Destruction of the end
+2025-04-08 15:45:58.889 [Thread-8] [] WARN com.alibaba.nacos.common.notify.NotifyCenter - [NotifyCenter] Destruction of the end
+2025-04-08 15:45:58.889 [Thread-10] [] WARN com.alibaba.nacos.common.http.HttpClientBeanHolder - [HttpClientBeanHolder] Destruction of the end
+2025-04-08 15:45:58.895 [SpringApplicationShutdownHook] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-04-08 15:45:58.941 [SpringApplicationShutdownHook] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-04-08 15:45:58.949 [SpringApplicationShutdownHook] [] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-04-08 15:45:58.955 [SpringApplicationShutdownHook] [] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2025-04-08 15:46:31.722 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:46:31.722 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:46:31.730 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:46:31.730 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:46:31.731 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:46:31.731 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:46:31.732 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:46:31.913 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 15552 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:46:31.917 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:46:32.822 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:46:33.216 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:46:33.227 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:46:33.230 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:46:33.230 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:46:33.281 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:46:33.282 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1312 ms
+2025-04-08 15:46:34.998 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:46:36.161 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:46:36.263 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:46:36.282 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:46:36.341 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:46:36.342 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:46:37.253 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:46:37.255 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:46:37.255 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:46:37.256 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:46:37.359 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:46:38.375 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:46:38.382 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.982 seconds (process running for 8.755)
+2025-04-08 15:46:40.828 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:46:40.829 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:46:40.830 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:46:40.994 [http-nio-8080-exec-1] [cae0f601-5844-498e-8bfc-ef34c42ae1e7] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:46:41.282 [http-nio-8080-exec-1] [cae0f601-5844-498e-8bfc-ef34c42ae1e7] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@31b48c76
+2025-04-08 15:46:41.284 [http-nio-8080-exec-1] [cae0f601-5844-498e-8bfc-ef34c42ae1e7] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:46:41.546 [http-nio-8080-exec-1] [cae0f601-5844-498e-8bfc-ef34c42ae1e7] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"name\": \"是啊打撒打撒\",\n \"longitude\": \"123\",\n \"latitude\": \"1231\",\n \"address\": \"1231\",\n \"mainImage\": \"1321\"\n}","uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:46:41.546 [http-nio-8080-exec-1] [cae0f601-5844-498e-8bfc-ef34c42ae1e7] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"706ms","body":"{\"code\":200,\"msg\":\"操作成功\",\"data\":null}","status":200}
+2025-04-08 15:47:20.072 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:47:20.073 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:47:20.078 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:47:20.078 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:47:20.079 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:47:20.080 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:47:20.081 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:47:20.241 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 21780 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:47:20.245 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:47:21.117 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:47:21.457 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:47:21.472 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:47:21.473 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:47:21.474 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:47:21.519 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:47:21.521 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1239 ms
+2025-04-08 15:47:23.239 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:47:24.424 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:47:24.495 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:47:24.513 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:47:24.570 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:47:24.571 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:47:25.404 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:47:25.406 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:47:25.407 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:47:25.407 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:47:25.506 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:47:26.517 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:47:26.527 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.787 seconds (process running for 8.559)
+2025-04-08 15:47:29.901 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:47:29.901 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:47:29.903 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:47:30.109 [http-nio-8080-exec-1] [3f34ec7b-5686-4b8b-aaa5-9609ac83124c] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:47:30.410 [http-nio-8080-exec-1] [3f34ec7b-5686-4b8b-aaa5-9609ac83124c] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@54637bae
+2025-04-08 15:47:30.413 [http-nio-8080-exec-1] [3f34ec7b-5686-4b8b-aaa5-9609ac83124c] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:47:30.645 [http-nio-8080-exec-1] [3f34ec7b-5686-4b8b-aaa5-9609ac83124c] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"name\": \"是啊打撒打撒\",\n \"longitude\": \"123\",\n \"latitude\": \"1231\",\n \"address\": \"1231\",\n \"mainImage\": \"1321\"\n}","uri":"/weight-loss-camp-service-api/camp/info/add"}
+2025-04-08 15:47:30.646 [http-nio-8080-exec-1] [3f34ec7b-5686-4b8b-aaa5-9609ac83124c] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"734ms","body":"{\"code\":200,\"msg\":\"操作成功\",\"data\":null}","status":200}
+2025-04-08 15:47:46.865 [http-nio-8080-exec-2] [ea59164e-7a49-4a8e-9f68-5b7f41c7f286] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"id\": \"\"\n}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 15:47:46.866 [http-nio-8080-exec-2] [ea59164e-7a49-4a8e-9f68-5b7f41c7f286] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"63ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
+2025-04-08 15:48:42.361 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:48:42.360 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:48:42.365 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:48:42.366 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:48:42.368 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:48:42.368 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:48:42.369 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:48:42.536 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 20528 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:48:42.539 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:48:43.493 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:48:43.848 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:48:43.861 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:48:43.863 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:48:43.863 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:48:43.910 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:48:43.911 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1330 ms
+2025-04-08 15:48:45.623 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:48:46.786 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:48:46.859 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:48:46.883 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:48:46.945 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:48:46.946 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:48:47.807 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:48:47.809 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:48:47.810 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:48:47.811 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:48:47.919 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:48:48.930 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:48:48.936 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.903 seconds (process running for 8.677)
+2025-04-08 15:48:50.504 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:48:50.505 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:48:50.506 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:48:50.592 [http-nio-8080-exec-1] [b04e31e3-f2b3-4e7c-a976-9fcce6e64c41] INFO com.wjbl.weightlosscamp.service.api.controller.CampInfoController - 哈哈哈哈2
+2025-04-08 15:48:50.705 [http-nio-8080-exec-1] [b04e31e3-f2b3-4e7c-a976-9fcce6e64c41] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:48:50.981 [http-nio-8080-exec-1] [b04e31e3-f2b3-4e7c-a976-9fcce6e64c41] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@76290563
+2025-04-08 15:48:50.982 [http-nio-8080-exec-1] [b04e31e3-f2b3-4e7c-a976-9fcce6e64c41] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:48:51.176 [http-nio-8080-exec-1] [b04e31e3-f2b3-4e7c-a976-9fcce6e64c41] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"id\": \"\"\n}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 15:48:51.177 [http-nio-8080-exec-1] [b04e31e3-f2b3-4e7c-a976-9fcce6e64c41] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"659ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
+2025-04-08 15:49:32.719 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:49:32.721 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:49:32.729 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:49:32.730 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:49:32.730 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:49:32.731 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:49:32.731 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:49:32.919 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 18428 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:49:32.924 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:49:33.827 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:49:34.178 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:49:34.193 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:49:34.195 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:49:34.196 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:49:34.251 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:49:34.254 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1275 ms
+2025-04-08 15:49:36.172 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:49:37.339 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:49:37.413 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:49:37.432 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:49:37.492 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:49:37.493 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:49:38.483 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:49:38.484 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:49:38.488 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:49:38.489 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:49:38.639 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:49:39.651 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:49:39.659 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.283 seconds (process running for 9.064)
+2025-04-08 15:49:41.573 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:49:41.574 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:49:41.575 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:49:41.657 [http-nio-8080-exec-1] [d3a504c8-f845-48fd-b1ee-aeb2daf0bc43] INFO com.wjbl.weightlosscamp.service.api.controller.CampInfoController - 哈哈哈哈2
+2025-04-08 15:49:41.767 [http-nio-8080-exec-1] [d3a504c8-f845-48fd-b1ee-aeb2daf0bc43] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:49:42.046 [http-nio-8080-exec-1] [d3a504c8-f845-48fd-b1ee-aeb2daf0bc43] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@6122133e
+2025-04-08 15:49:42.048 [http-nio-8080-exec-1] [d3a504c8-f845-48fd-b1ee-aeb2daf0bc43] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:49:42.249 [http-nio-8080-exec-1] [d3a504c8-f845-48fd-b1ee-aeb2daf0bc43] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"id\": \"\"\n}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 15:49:42.250 [http-nio-8080-exec-1] [d3a504c8-f845-48fd-b1ee-aeb2daf0bc43] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"663ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
+2025-04-08 15:52:43.356 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:52:43.360 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:52:43.364 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:52:43.364 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:52:43.365 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:52:43.365 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:52:43.366 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:52:43.567 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 20184 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:52:43.573 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:52:44.517 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:52:44.907 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:52:44.922 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:52:44.924 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:52:44.925 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:52:44.973 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:52:44.975 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1361 ms
+2025-04-08 15:52:46.726 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:52:47.918 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:52:47.999 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:52:48.021 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:52:48.085 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:52:48.085 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:52:48.898 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:52:48.900 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:52:48.901 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:52:48.901 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:52:49.242 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:52:50.249 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:52:50.257 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.233 seconds (process running for 9.092)
+2025-04-08 15:52:53.873 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:52:53.874 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:52:53.875 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:52:53.950 [http-nio-8080-exec-1] [af44a2b2-e7d2-40e4-946f-3820cafde60b] INFO com.wjbl.weightlosscamp.service.api.controller.CampInfoController - 哈哈哈哈2
+2025-04-08 15:52:54.115 [http-nio-8080-exec-1] [af44a2b2-e7d2-40e4-946f-3820cafde60b] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:52:54.405 [http-nio-8080-exec-1] [af44a2b2-e7d2-40e4-946f-3820cafde60b] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@14faa214
+2025-04-08 15:52:54.407 [http-nio-8080-exec-1] [af44a2b2-e7d2-40e4-946f-3820cafde60b] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:52:54.595 [http-nio-8080-exec-1] [af44a2b2-e7d2-40e4-946f-3820cafde60b] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"id\": \"\"\n}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 15:52:54.595 [http-nio-8080-exec-1] [af44a2b2-e7d2-40e4-946f-3820cafde60b] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"710ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
+2025-04-08 15:53:22.303 [Thread-8] [] WARN com.alibaba.nacos.common.notify.NotifyCenter - [NotifyCenter] Start destroying Publisher
+2025-04-08 15:53:22.303 [Thread-10] [] WARN com.alibaba.nacos.common.http.HttpClientBeanHolder - [HttpClientBeanHolder] Start destroying common HttpClient
+2025-04-08 15:53:22.303 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Start destroying ThreadPool
+2025-04-08 15:53:22.304 [Thread-8] [] WARN com.alibaba.nacos.common.notify.NotifyCenter - [NotifyCenter] Destruction of the end
+2025-04-08 15:53:22.304 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Destruction of the end
+2025-04-08 15:53:22.304 [Thread-10] [] WARN com.alibaba.nacos.common.http.HttpClientBeanHolder - [HttpClientBeanHolder] Destruction of the end
+2025-04-08 15:53:22.312 [SpringApplicationShutdownHook] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-04-08 15:53:22.355 [SpringApplicationShutdownHook] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-04-08 15:53:22.366 [SpringApplicationShutdownHook] [] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-04-08 15:53:22.372 [SpringApplicationShutdownHook] [] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2025-04-08 15:57:28.390 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:57:28.397 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:57:28.397 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:57:28.398 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:57:28.398 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:57:28.399 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:57:28.610 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 2532 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:57:28.616 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:57:29.501 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:57:29.830 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:57:29.844 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:57:29.846 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:57:29.846 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:57:29.913 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:57:29.914 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1252 ms
+2025-04-08 15:57:30.272 [main] [] WARN org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultValidator' defined in class path resource [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Failed to instantiate [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean]: Factory method 'defaultValidator' threw exception with message: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
+2025-04-08 15:57:30.275 [main] [] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat]
+2025-04-08 15:57:30.288 [main] [] INFO org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger -
+
+Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
+2025-04-08 15:57:30.313 [main] [] ERROR org.springframework.boot.SpringApplication - Application run failed
+org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultValidator' defined in class path resource [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Failed to instantiate [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean]: Factory method 'defaultValidator' threw exception with message: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971) ~[spring-context-6.1.18.jar:6.1.18]
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.18.jar:6.1.18]
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) [spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) [spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) [spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) [spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) [spring-boot-3.3.10.jar:3.3.10]
+ at com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication.main(WeightLossCampServiceApiApplication.java:17) [classes/:?]
+Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean]: Factory method 'defaultValidator' threw exception with message: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.18.jar:6.1.18]
+ ... 19 more
+Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
+ at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:33) ~[hibernate-validator-8.0.2.Final.jar:8.0.2.Final]
+ at jakarta.validation.Validation$GenericBootstrapImpl.configure(Validation.java:296) ~[jakarta.validation-api-3.0.2.jar:?]
+ at org.springframework.boot.validation.MessageInterpolatorFactory.getMessageInterpolator(MessageInterpolatorFactory.java:79) ~[spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.validation.MessageInterpolatorFactory.getObject(MessageInterpolatorFactory.java:70) ~[spring-boot-3.3.10.jar:3.3.10]
+ at org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration.defaultValidator(ValidationAutoConfiguration.java:64) ~[spring-boot-autoconfigure-3.3.10.jar:3.3.10]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[spring-beans-6.1.18.jar:6.1.18]
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.18.jar:6.1.18]
+ ... 19 more
+Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger [in thread "background-preinit"]
+ at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
+ at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) ~[?:?]
+ at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
+ at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
+ at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
+ at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
+ at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
+ at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
+ at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
+ at org.hibernate.validator.internal.util.logging.LoggerFactory.make(LoggerFactory.java:22) ~[hibernate-validator-8.0.2.Final.jar:8.0.2.Final]
+ at org.hibernate.validator.internal.util.Version.(Version.java:20) ~[hibernate-validator-8.0.2.Final.jar:8.0.2.Final]
+ at org.hibernate.validator.internal.engine.AbstractConfigurationImpl.(AbstractConfigurationImpl.java:85) ~[hibernate-validator-8.0.2.Final.jar:8.0.2.Final]
+ at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:33) ~[hibernate-validator-8.0.2.Final.jar:8.0.2.Final]
+ at jakarta.validation.Validation$GenericBootstrapImpl.configure(Validation.java:296) ~[jakarta.validation-api-3.0.2.jar:?]
+ at org.springframework.boot.autoconfigure.BackgroundPreinitializer$ValidationInitializer.run(BackgroundPreinitializer.java:158) ~[spring-boot-autoconfigure-3.3.10.jar:3.3.10]
+ at org.springframework.boot.autoconfigure.BackgroundPreinitializer$1.runSafely(BackgroundPreinitializer.java:120) ~[spring-boot-autoconfigure-3.3.10.jar:3.3.10]
+ at org.springframework.boot.autoconfigure.BackgroundPreinitializer$1.run(BackgroundPreinitializer.java:105) ~[spring-boot-autoconfigure-3.3.10.jar:3.3.10]
+ at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
+2025-04-08 15:57:30.326 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Start destroying ThreadPool
+2025-04-08 15:57:30.327 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Destruction of the end
+2025-04-08 15:58:30.840 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:58:30.840 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 15:58:30.846 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:58:30.847 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 15:58:30.848 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 15:58:30.848 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 15:58:30.849 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 15:58:31.053 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 17100 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 15:58:31.058 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 15:58:31.952 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 15:58:32.302 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 15:58:32.316 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:58:32.318 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 15:58:32.318 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 15:58:32.369 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 15:58:32.371 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1259 ms
+2025-04-08 15:58:34.057 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:58:35.242 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:58:35.326 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 15:58:35.349 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 15:58:35.439 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 15:58:35.439 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 15:58:36.300 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 15:58:36.302 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 15:58:36.303 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 15:58:36.304 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 15:58:36.406 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 15:58:37.421 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 15:58:37.430 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 7.939 seconds (process running for 8.862)
+2025-04-08 15:58:41.554 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 15:58:41.554 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 15:58:41.555 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 15:58:41.623 [http-nio-8080-exec-1] [a97ad18a-1ed4-444d-a168-a8c21261246f] INFO com.wjbl.weightlosscamp.service.api.controller.CampInfoController - 哈哈哈哈2
+2025-04-08 15:58:41.723 [http-nio-8080-exec-1] [a97ad18a-1ed4-444d-a168-a8c21261246f] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 15:58:42.018 [http-nio-8080-exec-1] [a97ad18a-1ed4-444d-a168-a8c21261246f] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@58950204
+2025-04-08 15:58:42.020 [http-nio-8080-exec-1] [a97ad18a-1ed4-444d-a168-a8c21261246f] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 15:58:42.227 [http-nio-8080-exec-1] [a97ad18a-1ed4-444d-a168-a8c21261246f] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"id\": \"\"\n}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 15:58:42.228 [http-nio-8080-exec-1] [a97ad18a-1ed4-444d-a168-a8c21261246f] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"665ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
+2025-04-08 16:01:31.188 [Thread-8] [] WARN com.alibaba.nacos.common.notify.NotifyCenter - [NotifyCenter] Start destroying Publisher
+2025-04-08 16:01:31.188 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Start destroying ThreadPool
+2025-04-08 16:01:31.188 [Thread-10] [] WARN com.alibaba.nacos.common.http.HttpClientBeanHolder - [HttpClientBeanHolder] Start destroying common HttpClient
+2025-04-08 16:01:31.189 [Thread-8] [] WARN com.alibaba.nacos.common.notify.NotifyCenter - [NotifyCenter] Destruction of the end
+2025-04-08 16:01:31.189 [Thread-2] [] WARN com.alibaba.nacos.common.executor.ThreadPoolManager - [ThreadPoolManager] Destruction of the end
+2025-04-08 16:01:31.189 [Thread-10] [] WARN com.alibaba.nacos.common.http.HttpClientBeanHolder - [HttpClientBeanHolder] Destruction of the end
+2025-04-08 16:01:31.198 [SpringApplicationShutdownHook] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-04-08 16:01:31.243 [SpringApplicationShutdownHook] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-04-08 16:01:31.252 [SpringApplicationShutdownHook] [] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-04-08 16:01:31.262 [SpringApplicationShutdownHook] [] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2025-04-08 16:03:56.178 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 16:03:56.178 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 16:03:56.184 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 16:03:56.184 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 16:03:56.186 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 16:03:56.186 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 16:03:56.187 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 16:03:56.353 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 300 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 16:03:56.357 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 16:03:57.366 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 16:03:57.782 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 16:03:57.800 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 16:03:57.802 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 16:03:57.803 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 16:03:57.853 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 16:03:57.854 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1456 ms
+2025-04-08 16:03:59.541 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 16:04:00.733 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 16:04:00.824 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 16:04:00.853 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 16:04:00.935 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 16:04:00.935 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 16:04:01.874 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 16:04:01.877 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 16:04:01.878 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 16:04:01.879 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 16:04:01.985 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 16:04:02.992 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 16:04:03.001 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.149 seconds (process running for 8.983)
+2025-04-08 16:04:06.910 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 16:04:06.910 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 16:04:06.911 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 16:04:06.983 [http-nio-8080-exec-1] [872531b8-dbd9-4937-9f2b-0def06b83dcb] INFO com.wjbl.weightlosscamp.service.api.controller.CampInfoController - 哈哈哈哈2
+2025-04-08 16:04:07.081 [http-nio-8080-exec-1] [872531b8-dbd9-4937-9f2b-0def06b83dcb] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 16:04:07.372 [http-nio-8080-exec-1] [872531b8-dbd9-4937-9f2b-0def06b83dcb] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@51e6d0cc
+2025-04-08 16:04:07.374 [http-nio-8080-exec-1] [872531b8-dbd9-4937-9f2b-0def06b83dcb] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 16:04:07.577 [http-nio-8080-exec-1] [872531b8-dbd9-4937-9f2b-0def06b83dcb] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\n \"id\": \"\"\n}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 16:04:07.578 [http-nio-8080-exec-1] [872531b8-dbd9-4937-9f2b-0def06b83dcb] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"657ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
+2025-04-08 16:23:21.465 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-08 16:23:21.466 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-08 16:23:21.477 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 16:23:21.477 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-08 16:23:21.479 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-08 16:23:21.480 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-08 16:23:21.481 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-08 16:23:21.816 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 22120 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-08 16:23:21.822 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-08 16:23:23.081 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-08 16:23:23.497 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-08 16:23:23.515 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-08 16:23:23.518 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-08 16:23:23.519 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-08 16:23:23.574 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-08 16:23:23.576 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1673 ms
+2025-04-08 16:23:25.293 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 16:23:26.478 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 16:23:26.562 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-08 16:23:26.586 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-08 16:23:26.652 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-08 16:23:26.653 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-08 16:23:27.524 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-08 16:23:27.525 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-08 16:23:27.526 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-08 16:23:27.527 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-08 16:23:27.623 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-08 16:23:28.631 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-08 16:23:28.639 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.709 seconds (process running for 9.934)
+2025-04-08 16:23:29.426 [http-nio-8080-exec-1] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-08 16:23:29.427 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-08 16:23:29.428 [http-nio-8080-exec-1] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-08 16:23:29.496 [http-nio-8080-exec-1] [e907e10f-13a0-408b-aee1-f723d4d43a57] INFO com.wjbl.weightlosscamp.service.api.controller.CampInfoController - 哈哈哈哈2
+2025-04-08 16:23:29.591 [http-nio-8080-exec-1] [e907e10f-13a0-408b-aee1-f723d4d43a57] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-04-08 16:23:29.863 [http-nio-8080-exec-1] [e907e10f-13a0-408b-aee1-f723d4d43a57] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@207ed474
+2025-04-08 16:23:29.864 [http-nio-8080-exec-1] [e907e10f-13a0-408b-aee1-f723d4d43a57] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-04-08 16:23:30.071 [http-nio-8080-exec-1] [e907e10f-13a0-408b-aee1-f723d4d43a57] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\"id\":\"\"}","uri":"/weight-loss-camp-service-api/camp/info/get"}
+2025-04-08 16:23:30.072 [http-nio-8080-exec-1] [e907e10f-13a0-408b-aee1-f723d4d43a57] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"634ms","body":"{\"code\":500,\"msg\":\"营地不存在\",\"data\":null}","status":200}
diff --git a/logs/weight-loss-camp-service-api.log b/logs/weight-loss-camp-service-api.log
new file mode 100644
index 0000000..fbe37b9
--- /dev/null
+++ b/logs/weight-loss-camp-service-api.log
@@ -0,0 +1,36 @@
+2025-04-11 11:05:12.516 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final
+2025-04-11 11:05:12.513 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder
+2025-04-11 11:05:12.525 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-11 11:05:12.525 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder
+2025-04-11 11:05:12.526 [main] [] WARN com.alibaba.nacos.client.logging.NacosLogging - Build Nacos Logging Adapter failed: ch/qos/logback/classic/spi/LoggerContextListener
+2025-04-11 11:05:12.526 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder
+2025-04-11 11:05:12.526 [main] [] INFO com.alibaba.nacos.client.logging.NacosLogging - Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.log4j2.Log4J2NacosLoggingAdapter match org.apache.logging.slf4j.Log4jLogger success.
+2025-04-11 11:05:12.718 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Starting WeightLossCampServiceApiApplication using Java 21.0.6 with PID 17192 (C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp\weight-loss-camp-service-api\target\classes started by Administrator in C:\kevin\PROJECT\weigtht-loss-camp\code\service\weight-loss-camp)
+2025-04-11 11:05:12.724 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - No active profile set, falling back to 1 default profile: "default"
+2025-04-11 11:05:13.681 [main] [] INFO org.springframework.cloud.context.scope.GenericScope - BeanFactory id=d0cf9a2e-f1b7-3e4c-9f96-2847714319c9
+2025-04-11 11:05:14.042 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
+2025-04-11 11:05:14.056 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
+2025-04-11 11:05:14.058 [main] [] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-04-11 11:05:14.059 [main] [] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.39]
+2025-04-11 11:05:14.114 [main] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring embedded WebApplicationContext
+2025-04-11 11:05:14.116 [main] [] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1345 ms
+2025-04-11 11:05:15.844 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-11 11:05:17.036 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-11 11:05:17.131 [main] [] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
+2025-04-11 11:05:17.153 [main] [] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/weight-loss-camp-service-api'
+2025-04-11 11:05:17.251 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
+2025-04-11 11:05:17.251 [main] [] INFO com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager - [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
+2025-04-11 11:05:18.161 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to get current node abilities...
+2025-04-11 11:05:18.163 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Ready to initialize current node abilities, support modes: [SDK_CLIENT]
+2025-04-11 11:05:18.165 [main] [] INFO com.alibaba.nacos.common.ability.AbstractAbilityControlManager - Initialize current abilities finish...
+2025-04-11 11:05:18.166 [main] [] INFO com.alibaba.nacos.common.ability.discover.NacosAbilityManagerHolder - [AbilityControlManager] Successfully initialize AbilityControlManager
+2025-04-11 11:05:18.280 [main] [] INFO com.alibaba.cloud.nacos.registry.NacosServiceRegistry - nacos registry, weight-loss-camp weight-loss-camp-service-api 192.168.137.1:8080 register finished
+2025-04-11 11:05:19.297 [main] [] INFO org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-04-11 11:05:19.305 [main] [] INFO com.wjbl.weightlosscamp.service.api.WeightLossCampServiceApiApplication - Started WeightLossCampServiceApiApplication in 8.111 seconds (process running for 9.016)
+2025-04-11 11:06:39.717 [http-nio-8080-exec-4] [] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/weight-loss-camp-service-api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-04-11 11:06:39.718 [http-nio-8080-exec-4] [] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-04-11 11:06:39.719 [http-nio-8080-exec-4] [] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 1 ms
+2025-04-11 11:06:40.505 [http-nio-8080-exec-6] [c6e2d750-d677-4d22-87d4-761ce69f6e82] INFO org.springdoc.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 222 ms
+2025-04-11 11:08:56.669 [http-nio-8080-exec-7] [6d5d8acc-c6c7-4af2-aad0-c65c46c5e804] ERROR com.wjbl.weightlosscamp.api.base.web.GlobalExceptionHandler - MethodArgumentNotValidException 参数校验异常: name:营地名称不能为空;longitude:经度不能为空;address:地址不能为空;latitude:纬度不能为空;mainImage:主图不能为空
+2025-04-11 11:08:56.794 [http-nio-8080-exec-7] [6d5d8acc-c6c7-4af2-aad0-c65c46c5e804] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [请求] {"method":"POST","params":{},"body":"{\"name\":\"\",\"longitude\":\"\",\"latitude\":\"\",\"address\":\"\",\"mainImage\":\"\"}","uri":"/weight-loss-camp-service-api/camp/info/update"}
+2025-04-11 11:08:56.795 [http-nio-8080-exec-7] [6d5d8acc-c6c7-4af2-aad0-c65c46c5e804] INFO com.wjbl.weightlosscamp.api.base.filter.WebLogFilter - [响应] {"duration":"194ms","body":"{\"code\":400,\"msg\":\"name:营地名称不能为空;longitude:经度不能为空;address:地址不能为空;latitude:纬度不能为空;mainImage:主图不能为空\",\"data\":null}","status":200}
diff --git a/pom.xml b/pom.xml
index c3e96c3..3b6212d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,7 @@
2023.0.3.2
3.5.11
4.5.0
+ 2.0.57
@@ -71,6 +72,13 @@
knife4j-openapi3-jakarta-spring-boot-starter
${knife4j.version}
+
+
+
+ com.alibaba.fastjson2
+ fastjson2
+ ${fastjson2.version}
+
@@ -100,6 +108,8 @@
true
+
+
diff --git a/weight-loss-camp-api-base/pom.xml b/weight-loss-camp-api-base/pom.xml
index 2cd1fb0..b728c5c 100644
--- a/weight-loss-camp-api-base/pom.xml
+++ b/weight-loss-camp-api-base/pom.xml
@@ -16,6 +16,12 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
@@ -29,5 +35,10 @@
org.springframework.boot
spring-boot-starter-validation
+
+
+ com.alibaba.fastjson2
+ fastjson2
+
\ No newline at end of file
diff --git a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.java b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.java
index 1c2f3ac..2c35649 100644
--- a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.java
+++ b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.java
@@ -11,10 +11,10 @@ import lombok.Getter;
public enum ApiErrorCode {
SUCCESS(200, "操作成功"),
FAILED(500, "操作失败"),
- VALIDATE_FAILED(404, "参数检验失败"),
+ VALIDATE_FAILED(400, "参数检验失败"),
UNAUTHORIZED(401, "暂未登录或token已经过期"),
FORBIDDEN(403, "没有相关权限");
private final int code;
private final String msg;
-}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.java b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.java
index 94b6c2d..7bf399c 100644
--- a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.java
+++ b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.java
@@ -1,7 +1,9 @@
package com.wjbl.weightlosscamp.api.base.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;
@@ -13,6 +15,13 @@ import java.time.LocalDateTime;
*/
@Data
public class BaseEntity {
+
+ /**
+ * 主键ID
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private String id;
+
/**
* 租户ID
*/
@@ -66,4 +75,4 @@ public class BaseEntity {
*/
@Version
private Integer revision;
-}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.java b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.java
index c728ccd..583a6b3 100644
--- a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.java
+++ b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.java
@@ -1,16 +1,21 @@
+
package com.wjbl.weightlosscamp.api.base.filter;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import org.slf4j.MDC;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.util.ContentCachingRequestWrapper;
import org.springframework.web.util.ContentCachingResponseWrapper;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import com.alibaba.fastjson2.JSON;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
@@ -18,66 +23,96 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
-/**
- * Web日志过滤器
- */
@Slf4j
@Component
@Order(2)
public class WebLogFilter extends OncePerRequestFilter {
- private final ObjectMapper objectMapper = new ObjectMapper();
- @SuppressWarnings("null")
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
+
+ // 包装request和response以便多次读取
ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request);
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
try {
- // 记录请求信息
- logRequest(requestWrapper);
+ long startTime = System.currentTimeMillis();
+ // 执行请求并记录日志
filterChain.doFilter(requestWrapper, responseWrapper);
- // 记录响应信息
- logResponse(responseWrapper);
+ // 记录请求日志
+ logRequest(requestWrapper);
+ // 记录响应日志
+ long endTime = System.currentTimeMillis();
+ logResponse(responseWrapper, endTime - startTime);
+
+ // 复制响应内容到原始response
responseWrapper.copyBodyToResponse();
} finally {
- responseWrapper.resetBuffer();
+ MDC.clear();
}
}
- private void logRequest(ContentCachingRequestWrapper request) throws IOException {
+ private void logRequest(ContentCachingRequestWrapper request) {
Map requestInfo = new HashMap<>();
requestInfo.put("uri", request.getRequestURI());
requestInfo.put("method", request.getMethod());
- requestInfo.put("params", request.getParameterMap());
+ requestInfo.put("params", getRequestParams(request));
- byte[] content = request.getContentAsByteArray();
- if (content.length > 0) {
- requestInfo.put("body", new String(content, request.getCharacterEncoding()));
+ // 然后再获取请求体内容
+ String contentType = request.getContentType();
+ if (contentType != null && contentType.contains("application/json")) {
+ byte[] content = request.getContentAsByteArray();
+ if (content.length > 0) {
+ String body = new String(content, StandardCharsets.UTF_8);
+ requestInfo.put("body", StringUtils.trimAllWhitespace(body));
+ }
}
- log.info("Request: {}", objectMapper.writeValueAsString(requestInfo));
+ log.info("[请求] {}", JSON.toJSONString(requestInfo));
}
- private void logResponse(ContentCachingResponseWrapper response) throws IOException {
+ private void logResponse(ContentCachingResponseWrapper response, long duration) {
Map responseInfo = new HashMap<>();
responseInfo.put("status", response.getStatus());
+ responseInfo.put("duration", duration + "ms");
byte[] content = response.getContentAsByteArray();
if (content.length > 0) {
- String responseBody = new String(content, response.getCharacterEncoding());
- // 如果响应体过长,只记录前1000个字符
- if (responseBody.length() > 1000) {
- responseBody = responseBody.substring(0, 1000) + "...";
- }
- responseInfo.put("body", responseBody);
+ String body = new String(content, StandardCharsets.UTF_8);
+ responseInfo.put("body", body);
}
- log.info("Response: {}", objectMapper.writeValueAsString(responseInfo));
+ log.info("[响应] {}", JSON.toJSONString(responseInfo));
}
+ private Map getRequestParams(HttpServletRequest request) {
+ Map parameterMap = request.getParameterMap();
+ if (parameterMap.isEmpty()) {
+ return Collections.emptyMap();
+ }
+
+ Map params = new HashMap<>();
+ parameterMap.forEach((key, values) -> {
+ String value = String.join(",", values);
+ if (key.toLowerCase().contains("password")) {
+ params.put(key, "******");
+ } else {
+ params.put(key, value);
+ }
+ });
+ return params;
+ }
+
+ @Override
+ protected boolean shouldNotFilter(HttpServletRequest request) {
+ String path = request.getRequestURI();
+ // 排除不需要记录日志的路径
+ return path.contains("/doc.html") ||
+ path.contains("/webjars/") ||
+ path.contains("/v3/api-docs");
+ }
}
\ No newline at end of file
diff --git a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.java b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.java
index 63e7e3b..37a9fb5 100644
--- a/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.java
+++ b/weight-loss-camp-api-base/src/main/java/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.java
@@ -1,14 +1,15 @@
package com.wjbl.weightlosscamp.api.base.web;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
import com.wjbl.weightlosscamp.api.base.core.ApiErrorCode;
import com.wjbl.weightlosscamp.api.base.core.ApiResult;
import com.wjbl.weightlosscamp.api.base.exception.ApiException;
+
import jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.BindException;
-import org.springframework.web.bind.MethodArgumentNotValidException;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* 全局异常处理器
@@ -23,21 +24,30 @@ public class GlobalExceptionHandler {
return ApiResult.failed(e.getCode(), e.getMessage());
}
- @ExceptionHandler({MethodArgumentNotValidException.class, BindException.class})
- public ApiResult handleValidException(Exception e) {
- log.error("参数校验异常", e);
- return ApiResult.failed(ApiErrorCode.VALIDATE_FAILED);
+ /**
+ * 校验异常
+ * 作用于 @Validated @Valid 注解,接收参数加上@RequestBody注解(json格式)才会有这种异常
+ */
+ @ExceptionHandler(value = MethodArgumentNotValidException.class)
+ public ApiResult exceptionHandler(MethodArgumentNotValidException e) {
+
+ String errorMsg = e.getBindingResult().getFieldErrors().stream()
+ .map(n -> String.format("%s:%s", n.getField(), n.getDefaultMessage()))
+ .reduce((x, y) -> String.format("%s;%s", x, y))
+ .orElse("参数输入有误!");
+ log.error("MethodArgumentNotValidException 参数校验异常: " + errorMsg);
+ return ApiResult.failed(ApiErrorCode.VALIDATE_FAILED.getCode(), errorMsg);
}
@ExceptionHandler(ConstraintViolationException.class)
public ApiResult handleConstraintViolationException(ConstraintViolationException e) {
log.error("参数校验异常", e);
- return ApiResult.failed(ApiErrorCode.VALIDATE_FAILED);
+ return ApiResult.failed(ApiErrorCode.VALIDATE_FAILED.getCode(), e.getMessage());
}
@ExceptionHandler(Exception.class)
public ApiResult handleException(Exception e) {
log.error("系统异常", e);
- return ApiResult.failed(ApiErrorCode.FAILED);
+ return ApiResult.failed(ApiErrorCode.FAILED.getCode(), e.getMessage());
}
-}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.class
index e245ff8..ad92df0 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiErrorCode.class differ
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.class
index 318e97b..192b910 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/entity/BaseEntity.class differ
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.class
index 2db0a2d..a677c00 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebLogFilter.class differ
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.class
index 4734c54..f9322e8 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/GlobalExceptionHandler.class differ
diff --git a/weight-loss-camp-api-data/src/main/java/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.java b/weight-loss-camp-api-data/src/main/java/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.java
index 0f059ae..c71b192 100644
--- a/weight-loss-camp-api-data/src/main/java/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.java
+++ b/weight-loss-camp-api-data/src/main/java/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.java
@@ -1,5 +1,7 @@
package com.wjbl.weightlosscamp.api.data.config;
+import org.springframework.stereotype.Component;
+
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.wjbl.weightlosscamp.api.base.web.WebContextHolder;
@@ -9,11 +11,15 @@ import net.sf.jsqlparser.expression.StringValue;
/**
* 自定义租户处理器
*/
+@Component
public class CustomTenantHandler implements TenantLineHandler {
@Override
public Expression getTenantId() {
String tenantId = WebContextHolder.getTenantId();
+ if (tenantId == null) {
+ return null;
+ }
return new StringValue(tenantId);
}
@@ -24,6 +30,9 @@ public class CustomTenantHandler implements TenantLineHandler {
@Override
public boolean ignoreTable(String tableName) {
+ if (WebContextHolder.getTenantId() == null) {
+ return true;
+ }
// 这里可以配置不需要进行租户过滤的表
return false;
}
diff --git a/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.class b/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.class
index d962fbf..e7173ee 100644
Binary files a/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.class and b/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/CustomTenantHandler.class differ
diff --git a/weight-loss-camp-service-api/pom.xml b/weight-loss-camp-service-api/pom.xml
index b66aec4..e38e40f 100644
--- a/weight-loss-camp-service-api/pom.xml
+++ b/weight-loss-camp-service-api/pom.xml
@@ -30,6 +30,12 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
@@ -45,5 +51,9 @@
knife4j-openapi3-jakarta-spring-boot-starter
+
+ com.alibaba.fastjson2
+ fastjson2
+
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/sql/init.sql b/weight-loss-camp-service-api/sql/init.sql
new file mode 100644
index 0000000..d0a4fe5
--- /dev/null
+++ b/weight-loss-camp-service-api/sql/init.sql
@@ -0,0 +1,74 @@
+-- 营地信息表
+CREATE TABLE `camp_info` (
+ `id` varchar(32) NOT NULL COMMENT '主键ID',
+ `tenant_id` varchar(32) NOT NULL COMMENT '租户ID',
+ `name` varchar(100) NOT NULL COMMENT '营地名称',
+ `longitude` varchar(20) NOT NULL COMMENT '经度',
+ `latitude` varchar(20) NOT NULL COMMENT '纬度',
+ `address` varchar(200) NOT NULL COMMENT '地址',
+ `main_image` varchar(200) NOT NULL COMMENT '主图',
+ `created_by_id` varchar(32) DEFAULT NULL COMMENT '创建人ID',
+ `created_by` varchar(50) DEFAULT NULL COMMENT '创建人',
+ `created_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `updated_by_id` varchar(32) DEFAULT NULL COMMENT '更新人ID',
+ `updated_by` varchar(50) DEFAULT NULL COMMENT '更新人',
+ `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `deleted` int(1) DEFAULT '0' COMMENT '逻辑删除',
+ `revision` int(11) DEFAULT '1' COMMENT '版本号',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='营地信息';
+
+-- 营地图片表
+CREATE TABLE `camp_image` (
+ `id` varchar(32) NOT NULL COMMENT '主键ID',
+ `tenant_id` varchar(32) NOT NULL COMMENT '租户ID',
+ `camp_id` varchar(32) NOT NULL COMMENT '营地ID',
+ `image_url` varchar(200) NOT NULL COMMENT '图片URL',
+ `created_by_id` varchar(32) DEFAULT NULL COMMENT '创建人ID',
+ `created_by` varchar(50) DEFAULT NULL COMMENT '创建人',
+ `created_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `updated_by_id` varchar(32) DEFAULT NULL COMMENT '更新人ID',
+ `updated_by` varchar(50) DEFAULT NULL COMMENT '更新人',
+ `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `deleted` int(1) DEFAULT '0' COMMENT '逻辑删除',
+ `revision` int(11) DEFAULT '1' COMMENT '版本号',
+ PRIMARY KEY (`id`),
+ KEY `idx_camp_id` (`camp_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='营地图片';
+
+-- 营地教室表
+CREATE TABLE `camp_classroom` (
+ `id` varchar(32) NOT NULL COMMENT '主键ID',
+ `tenant_id` varchar(32) NOT NULL COMMENT '租户ID',
+ `camp_id` varchar(32) NOT NULL COMMENT '营地ID',
+ `name` varchar(100) NOT NULL COMMENT '教室名称',
+ `main_image` varchar(200) NOT NULL COMMENT '主图',
+ `created_by_id` varchar(32) DEFAULT NULL COMMENT '创建人ID',
+ `created_by` varchar(50) DEFAULT NULL COMMENT '创建人',
+ `created_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `updated_by_id` varchar(32) DEFAULT NULL COMMENT '更新人ID',
+ `updated_by` varchar(50) DEFAULT NULL COMMENT '更新人',
+ `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `deleted` int(1) DEFAULT '0' COMMENT '逻辑删除',
+ `revision` int(11) DEFAULT '1' COMMENT '版本号',
+ PRIMARY KEY (`id`),
+ KEY `idx_camp_id` (`camp_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='营地教室';
+
+-- 教室图片表
+CREATE TABLE `camp_classroom_image` (
+ `id` varchar(32) NOT NULL COMMENT '主键ID',
+ `tenant_id` varchar(32) NOT NULL COMMENT '租户ID',
+ `classroom_id` varchar(32) NOT NULL COMMENT '教室ID',
+ `image_url` varchar(200) NOT NULL COMMENT '图片URL',
+ `created_by_id` varchar(32) DEFAULT NULL COMMENT '创建人ID',
+ `created_by` varchar(50) DEFAULT NULL COMMENT '创建人',
+ `created_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `updated_by_id` varchar(32) DEFAULT NULL COMMENT '更新人ID',
+ `updated_by` varchar(50) DEFAULT NULL COMMENT '更新人',
+ `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `deleted` int(1) DEFAULT '0' COMMENT '逻辑删除',
+ `revision` int(11) DEFAULT '1' COMMENT '版本号',
+ PRIMARY KEY (`id`),
+ KEY `idx_classroom_id` (`classroom_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='教室图片';
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.java
index 966a276..73e202c 100644
--- a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.java
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.java
@@ -3,12 +3,14 @@ package com.wjbl.weightlosscamp.service.api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.context.annotation.ComponentScan;
/**
* 服务启动类
*/
@SpringBootApplication
@EnableDiscoveryClient
+@ComponentScan(basePackages = { "com.wjbl.weightlosscamp" })
public class WeightLossCampServiceApiApplication {
public static void main(String[] args) {
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.java
new file mode 100644
index 0000000..189283d
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.java
@@ -0,0 +1,62 @@
+package com.wjbl.weightlosscamp.service.api.controller;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wjbl.weightlosscamp.api.base.core.ApiResult;
+import com.wjbl.weightlosscamp.api.base.core.IdParam;
+import com.wjbl.weightlosscamp.api.base.core.PageParam;
+import com.wjbl.weightlosscamp.service.api.dto.CampInfoDTO;
+import com.wjbl.weightlosscamp.service.api.service.CampInfoService;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 营地信息控制器
+ */
+@Tag(name = "营地信息")
+@RestController
+@RequestMapping("/camp/info")
+@RequiredArgsConstructor
+@Slf4j
+public class CampInfoController {
+
+ private final CampInfoService campInfoService;
+
+ @Operation(summary = "新增营地")
+ @PostMapping("/add")
+ public ApiResult add(@Valid @RequestBody CampInfoDTO dto) {
+ return campInfoService.add(dto);
+ }
+
+ @Operation(summary = "修改营地")
+ @PostMapping("/update")
+ public ApiResult update(@Valid @RequestBody CampInfoDTO dto) {
+ return campInfoService.update(dto);
+ }
+
+ @Operation(summary = "删除营地")
+ @PostMapping("/delete")
+ public ApiResult delete(@Valid @RequestBody IdParam param) {
+ return campInfoService.delete(param);
+ }
+
+ @Operation(summary = "获取营地详情")
+ @PostMapping("/get")
+ public ApiResult get(@Valid @RequestBody IdParam param) {
+ return campInfoService.get(param);
+ }
+
+ @Operation(summary = "分页查询营地")
+ @PostMapping("/page")
+ public ApiResult> page(@Valid @RequestBody PageParam param) {
+ return campInfoService.page(param);
+ }
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.java
new file mode 100644
index 0000000..41b633d
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.java
@@ -0,0 +1,25 @@
+package com.wjbl.weightlosscamp.service.api.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * 营地教室DTO
+ */
+@Data
+@Schema(description = "营地教室DTO")
+public class CampClassroomDTO {
+
+ @Schema(description = "营地ID")
+ @NotBlank(message = "营地ID不能为空")
+ private String campId;
+
+ @Schema(description = "教室名称")
+ @NotBlank(message = "教室名称不能为空")
+ private String name;
+
+ @Schema(description = "主图")
+ @NotBlank(message = "主图不能为空")
+ private String mainImage;
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.java
new file mode 100644
index 0000000..7d0d553
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.java
@@ -0,0 +1,33 @@
+package com.wjbl.weightlosscamp.service.api.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * 营地信息DTO
+ */
+@Data
+@Schema(description = "营地信息DTO")
+public class CampInfoDTO {
+
+ @Schema(description = "营地名称")
+ @NotBlank(message = "营地名称不能为空")
+ private String name;
+
+ @Schema(description = "经度")
+ @NotBlank(message = "经度不能为空")
+ private String longitude;
+
+ @Schema(description = "纬度")
+ @NotBlank(message = "纬度不能为空")
+ private String latitude;
+
+ @Schema(description = "地址")
+ @NotBlank(message = "地址不能为空")
+ private String address;
+
+ @Schema(description = "主图")
+ @NotBlank(message = "主图不能为空")
+ private String mainImage;
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.java
new file mode 100644
index 0000000..e5f2a9d
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.java
@@ -0,0 +1,26 @@
+package com.wjbl.weightlosscamp.service.api.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 营地教室
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("camp_classroom")
+@Schema(description = "营地教室")
+public class CampClassroom extends BaseEntity {
+
+ @Schema(description = "营地ID")
+ private String campId;
+
+ @Schema(description = "教室名称")
+ private String name;
+
+ @Schema(description = "主图")
+ private String mainImage;
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.java
new file mode 100644
index 0000000..25767b4
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.java
@@ -0,0 +1,23 @@
+package com.wjbl.weightlosscamp.service.api.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 教室图片
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("camp_classroom_image")
+@Schema(description = "教室图片")
+public class CampClassroomImage extends BaseEntity {
+
+ @Schema(description = "教室ID")
+ private String classroomId;
+
+ @Schema(description = "图片URL")
+ private String imageUrl;
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampImage.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampImage.java
new file mode 100644
index 0000000..0c57b93
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampImage.java
@@ -0,0 +1,23 @@
+package com.wjbl.weightlosscamp.service.api.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 营地图片
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("camp_image")
+@Schema(description = "营地图片")
+public class CampImage extends BaseEntity {
+
+ @Schema(description = "营地ID")
+ private String campId;
+
+ @Schema(description = "图片URL")
+ private String imageUrl;
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampInfo.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampInfo.java
new file mode 100644
index 0000000..0721358
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampInfo.java
@@ -0,0 +1,32 @@
+package com.wjbl.weightlosscamp.service.api.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 营地信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("camp_info")
+@Schema(description = "营地信息")
+public class CampInfo extends BaseEntity {
+
+ @Schema(description = "营地名称")
+ private String name;
+
+ @Schema(description = "经度")
+ private String longitude;
+
+ @Schema(description = "纬度")
+ private String latitude;
+
+ @Schema(description = "地址")
+ private String address;
+
+ @Schema(description = "主图")
+ private String mainImage;
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.java
new file mode 100644
index 0000000..99a733a
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.java
@@ -0,0 +1,12 @@
+package com.wjbl.weightlosscamp.service.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wjbl.weightlosscamp.service.api.entity.CampClassroomImage;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 教室图片Mapper
+ */
+@Mapper
+public interface CampClassroomImageMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.java
new file mode 100644
index 0000000..8a4fa69
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.java
@@ -0,0 +1,12 @@
+package com.wjbl.weightlosscamp.service.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wjbl.weightlosscamp.service.api.entity.CampClassroom;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 营地教室Mapper
+ */
+@Mapper
+public interface CampClassroomMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.java
new file mode 100644
index 0000000..ebb475f
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.java
@@ -0,0 +1,12 @@
+package com.wjbl.weightlosscamp.service.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wjbl.weightlosscamp.service.api.entity.CampImage;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 营地图片Mapper
+ */
+@Mapper
+public interface CampImageMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java
new file mode 100644
index 0000000..6a21bb8
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java
@@ -0,0 +1,12 @@
+package com.wjbl.weightlosscamp.service.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wjbl.weightlosscamp.service.api.entity.CampInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 营地信息Mapper
+ */
+@Mapper
+public interface CampInfoMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/CampInfoService.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/CampInfoService.java
new file mode 100644
index 0000000..f181db2
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/CampInfoService.java
@@ -0,0 +1,40 @@
+package com.wjbl.weightlosscamp.service.api.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.wjbl.weightlosscamp.api.base.core.ApiResult;
+import com.wjbl.weightlosscamp.api.base.core.IdParam;
+import com.wjbl.weightlosscamp.api.base.core.PageParam;
+import com.wjbl.weightlosscamp.service.api.dto.CampInfoDTO;
+import com.wjbl.weightlosscamp.service.api.entity.CampInfo;
+
+/**
+ * 营地信息服务接口
+ */
+public interface CampInfoService extends IService {
+
+ /**
+ * 新增营地
+ */
+ ApiResult add(CampInfoDTO dto);
+
+ /**
+ * 修改营地
+ */
+ ApiResult update(CampInfoDTO dto);
+
+ /**
+ * 删除营地
+ */
+ ApiResult delete(IdParam param);
+
+ /**
+ * 获取营地详情
+ */
+ ApiResult get(IdParam param);
+
+ /**
+ * 分页查询营地
+ */
+ ApiResult> page(PageParam param);
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.java b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.java
new file mode 100644
index 0000000..1bc24d1
--- /dev/null
+++ b/weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.java
@@ -0,0 +1,75 @@
+package com.wjbl.weightlosscamp.service.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wjbl.weightlosscamp.api.base.core.ApiResult;
+import com.wjbl.weightlosscamp.api.base.core.IdParam;
+import com.wjbl.weightlosscamp.api.base.core.PageParam;
+import com.wjbl.weightlosscamp.service.api.dto.CampInfoDTO;
+import com.wjbl.weightlosscamp.service.api.entity.CampInfo;
+import com.wjbl.weightlosscamp.service.api.mapper.CampInfoMapper;
+import com.wjbl.weightlosscamp.service.api.service.CampInfoService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * 营地信息服务实现类
+ */
+@Service
+public class CampInfoServiceImpl extends ServiceImpl implements CampInfoService {
+
+ @Override
+ public ApiResult add(CampInfoDTO dto) {
+ CampInfo entity = new CampInfo();
+ BeanUtils.copyProperties(dto, entity);
+ save(entity);
+ return ApiResult.success();
+ }
+
+ @Override
+ public ApiResult update(CampInfoDTO dto) {
+ CampInfo entity = new CampInfo();
+ BeanUtils.copyProperties(dto, entity);
+ updateById(entity);
+ return ApiResult.success();
+ }
+
+ @Override
+ public ApiResult delete(IdParam param) {
+ removeById(param.getId());
+ return ApiResult.success();
+ }
+
+ @Override
+ public ApiResult get(IdParam param) {
+ CampInfo entity = getById(param.getId());
+ if (entity == null) {
+ return ApiResult.failed("营地不存在");
+ }
+ CampInfoDTO dto = new CampInfoDTO();
+ BeanUtils.copyProperties(entity, dto);
+ return ApiResult.success(dto);
+ }
+
+ @Override
+ public ApiResult> page(PageParam param) {
+ Page page = new Page<>(param.getPage(), param.getPageSize());
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ if (param.getData() != null) {
+ CampInfoDTO dto = param.getData();
+ wrapper.like(dto.getName() != null, CampInfo::getName, dto.getName());
+ }
+ Page entityPage = page(page, wrapper);
+
+ Page dtoPage = new Page<>();
+ BeanUtils.copyProperties(entityPage, dtoPage, "records");
+ dtoPage.setRecords(entityPage.getRecords().stream().map(entity -> {
+ CampInfoDTO dto = new CampInfoDTO();
+ BeanUtils.copyProperties(entity, dto);
+ return dto;
+ }).toList());
+
+ return ApiResult.success(dtoPage);
+ }
+}
\ No newline at end of file
diff --git a/weight-loss-camp-service-api/src/main/resources/log4j2.xml b/weight-loss-camp-service-api/src/main/resources/log4j2.xml
index 9e8a514..6e2559b 100644
--- a/weight-loss-camp-service-api/src/main/resources/log4j2.xml
+++ b/weight-loss-camp-service-api/src/main/resources/log4j2.xml
@@ -1,7 +1,6 @@
-
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{TraceId}] %-5level %logger{36} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{seq}] %-5level %logger{36} - %msg%n
logs
weight-loss-camp-service-api
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.class
index 4e46a4e..5b23492 100644
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.class and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/WeightLossCampServiceApiApplication.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.class
new file mode 100644
index 0000000..44199ef
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.class
new file mode 100644
index 0000000..bc164f6
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.class
new file mode 100644
index 0000000..b893e1e
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.class
new file mode 100644
index 0000000..29463b6
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.class
new file mode 100644
index 0000000..ba12cb3
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampImage.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampImage.class
new file mode 100644
index 0000000..684d62b
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampImage.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampInfo.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampInfo.class
new file mode 100644
index 0000000..95864df
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampInfo.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.class
new file mode 100644
index 0000000..1dce9ae
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.class
new file mode 100644
index 0000000..0e882a3
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.class
new file mode 100644
index 0000000..aff8001
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.class
new file mode 100644
index 0000000..d98a7c0
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/CampInfoService.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/CampInfoService.class
new file mode 100644
index 0000000..3a368fa
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/CampInfoService.class differ
diff --git a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.class b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.class
new file mode 100644
index 0000000..2a842e0
Binary files /dev/null and b/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.class differ
diff --git a/weight-loss-camp-service-api/target/classes/log4j2.xml b/weight-loss-camp-service-api/target/classes/log4j2.xml
index 9e8a514..6e2559b 100644
--- a/weight-loss-camp-service-api/target/classes/log4j2.xml
+++ b/weight-loss-camp-service-api/target/classes/log4j2.xml
@@ -1,7 +1,6 @@
-
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{TraceId}] %-5level %logger{36} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{seq}] %-5level %logger{36} - %msg%n
logs
weight-loss-camp-service-api