diff --git a/.cursor/rules/springboot.mdc b/.cursor/rules/springboot.mdc
deleted file mode 100644
index a727beb..0000000
--- a/.cursor/rules/springboot.mdc
+++ /dev/null
@@ -1,57 +0,0 @@
----
-description:
-globs:
-alwaysApply: true
----
-您是Java编程、Spring Boot、Spring Framework、Maven、JUnit和相关Java技术方面的专家。
-代码风格和结构
- -使用准确的Spring Boot示例编写干净、高效且文档齐全的Java代码。
- -在整个代码中使用Spring Boot最佳实践和约定。
- -在创建Web服务时实施RESTful API设计模式。
- -按照camelCase约定使用描述性方法和变量名。
- -构建Spring Boot应用程序:控制器、服务、存储库、模型、配置。
-Spring Boot规范
- -使用Spring Boot启动器进行快速项目设置和依赖管理。
- -正确使用注释(例如@SpringBootApplication、@RestController、@Service)。
- -有效利用Spring Boot的自动配置功能。
- -使用@ControlllerAddge和@ExceptionHandler实施正确的异常处理。
-命名约定
- -将PascalCase用于类名(例如,UserController、OrderService)。
- -将camelCase用于方法和变量名(例如,findUserById、isOrderValid)。
- -将ALL_CAPS用于常量(例如,MAX_RETRY_ATTEMPTS、DEFAULT_PAGE_SIZE)。
-Java和Spring Boot用法
- -在适用的情况下使用Java21或更高版本的功能(例如,记录、密封类、模式匹配)。
- -利用Spring Boot 3.x功能和最佳实践。
- -在适用的情况下将Spring Data JPA用于数据库操作。
- -使用Bean验证(例如,@Valid、自定义验证器)实现正确的验证。
-配置和属性
- -使用application.properties或application.yml进行配置。
- -使用Spring Profiles实现environment-specific配置。
- -使用@ConfigurationProperties进行类型安全的配置属性。依赖注入和IoC
- -使用构造函数注入而不是字段注入以获得更好的可测试性。
- -利用Spring的IoC容器来管理bean生命周期。
-测试
- -使用JUnit 5和Spring Boot Test编写单元测试。
- -使用@SpringBootTest实现集成测试。
- -使用@DataJpaTest进行存储库层测试。性能和可扩展性
- -使用Spring Cache抽象实现缓存策略。-使用@Async进行异步处理进行非阻塞操作。
- -实施适当的数据库索引和查询优化。
-日志记录和监控
- -使用SLF4J和Logback进行日志记录。
- -实施适当的日志级别(ERROR、WARN、INFO、DEBUG)。
- -使用Spring Boot Actuator进行应用程序监控和指标。
-API文档
- -使用Springdoc OpenAPI(以前的Swagger)进行API留档。
-数据访问和ORM
- -使用mybatis plus进行数据库操作。
- -实现适当的实体关系和级联。
-构建和部署
- -使用Maven进行依赖管理和构建流程。
- -为不同的环境(开发、测试、产品)实施适当的配置文件。
-遵循以下最佳实践:
- -RESTful API设计(正确使用HTTP方法、状态代码等)。
- -微服务架构(如果适用)。
- -使用Spring的@Async进行异步处理.
-所有生成的代码都需要加上java注释,注意父级maven依赖,尽量使用lombok的getter和setter
-工程依赖的包使用的版本号都使用父项目中定义的版本,如果父项目不存在则空
-
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9627411
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,41 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+/weight-loss-camp-service-api/target/
+/.vscode/
+/.idea/
+/logs/
+/.idea
+/.vscode
+/logs
+/.cursor
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 13566b8..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 96e90e7..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 20ec4b5..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 514d7a6..0000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index f10d084..0000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index a8fc129..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index c72515b..0000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- // 使用 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/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index f2dadba..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "maven.view": "hierarchical",
- "java.configuration.updateBuildConfiguration": "automatic",
- "cSpell.words": [
- "Appender",
- "Appenders",
- "baomidou",
- "Hikari",
- "ibatis",
- "jdbc",
- "jsqlparser",
- "mybatis",
- "Nacos",
- "projectlombok",
- "springframework",
- "wjbl",
- "xiaoymin",
- "zaxxer"
- ],
- "java.compile.nullAnalysis.mode": "automatic",
- "java.format.settings.url": ".vscode/java-formatter.xml"
-}
diff --git a/pom.xml b/pom.xml
index 3b6212d..e68d7c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,7 @@
weight-loss-camp-api-base
weight-loss-camp-api-data
weight-loss-camp-service-api
+ weight-loss-camp-work-api
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..b3df4a2
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,10 @@
+## weight-loss-camp-api-base
+基础功能服务
+## weight-loss-camp-api-data
+数据库连接服务
+
+## weight-loss-camp-service-api
+基础服务接口
+
+## weight-loss-camp-work-api
+工作端api
\ No newline at end of file
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/constant/WebParamConstant.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/constant/WebParamConstant.class
index 914678d..8780cc1 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/constant/WebParamConstant.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/constant/WebParamConstant.class differ
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 ad92df0..34c5ef8 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/core/ApiResult.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiResult.class
index 327e5ec..334c751 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiResult.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/ApiResult.class differ
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/IdParam.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/IdParam.class
index fb162b1..e571993 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/IdParam.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/IdParam.class differ
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/PageParam.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/PageParam.class
index 943035e..97c22ea 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/PageParam.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/core/PageParam.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 192b910..da66522 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/exception/ApiException.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/exception/ApiException.class
index 8baf578..1a234b2 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/exception/ApiException.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/exception/ApiException.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 a677c00..30565b0 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/filter/WebParamFilter.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebParamFilter.class
index 5bf895d..7d98861 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebParamFilter.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/filter/WebParamFilter.class differ
diff --git a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/util/ApiAssert.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/util/ApiAssert.class
index 57235c2..a93f1d0 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/util/ApiAssert.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/util/ApiAssert.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 f9322e8..022dd39 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-base/target/classes/com/wjbl/weightlosscamp/api/base/web/WebContextHolder.class b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/WebContextHolder.class
index 0488af9..8302227 100644
Binary files a/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/WebContextHolder.class and b/weight-loss-camp-api-base/target/classes/com/wjbl/weightlosscamp/api/base/web/WebContextHolder.class differ
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 e7173ee..951d0d1 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-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusConfig.class b/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusConfig.class
index 3cdc51f..d638c6f 100644
Binary files a/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusConfig.class and b/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusConfig.class differ
diff --git a/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusFieldFillConfig.class b/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusFieldFillConfig.class
index 14d89df..573222e 100644
Binary files a/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusFieldFillConfig.class and b/weight-loss-camp-api-data/target/classes/com/wjbl/weightlosscamp/api/data/config/MybatisPlusFieldFillConfig.class differ
diff --git a/weight-loss-camp-service-api/pom.xml b/weight-loss-camp-service-api/pom.xml
index e38e40f..21ba0c0 100644
--- a/weight-loss-camp-service-api/pom.xml
+++ b/weight-loss-camp-service-api/pom.xml
@@ -55,5 +55,20 @@
com.alibaba.fastjson2
fastjson2
+
+
+
+ com.baomidou
+ mybatis-plus-generator
+ test
+
+
+ org.freemarker
+ freemarker
+ test
+
+
+
+
\ No newline at end of file
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/module/camp/controller/CampInfoController.java
similarity index 89%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/controller/CampInfoController.java
index 189283d..f763e36 100644
--- 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/module/camp/controller/CampInfoController.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.controller;
+package com.wjbl.weightlosscamp.service.api.module.camp.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -9,8 +9,8 @@ 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 com.wjbl.weightlosscamp.service.api.module.camp.dto.CampInfoDTO;
+import com.wjbl.weightlosscamp.service.api.module.camp.service.CampInfoService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
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/module/camp/dto/CampClassroomDTO.java
similarity index 90%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/dto/CampClassroomDTO.java
index 41b633d..ecab267 100644
--- 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/module/camp/dto/CampClassroomDTO.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.dto;
+package com.wjbl.weightlosscamp.service.api.module.camp.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
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/module/camp/dto/CampInfoDTO.java
similarity index 92%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/dto/CampInfoDTO.java
index 7d0d553..93363e5 100644
--- 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/module/camp/dto/CampInfoDTO.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.dto;
+package com.wjbl.weightlosscamp.service.api.module.camp.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
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/module/camp/entity/CampClassroom.java
similarity index 90%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/entity/CampClassroom.java
index e5f2a9d..0a17580 100644
--- 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/module/camp/entity/CampClassroom.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.entity;
+package com.wjbl.weightlosscamp.service.api.module.camp.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
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/module/camp/entity/CampClassroomImage.java
similarity index 89%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/entity/CampClassroomImage.java
index 25767b4..0af9436 100644
--- 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/module/camp/entity/CampClassroomImage.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.entity;
+package com.wjbl.weightlosscamp.service.api.module.camp.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
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/module/camp/entity/CampImage.java
similarity index 89%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampImage.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/entity/CampImage.java
index 0c57b93..61885f6 100644
--- 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/module/camp/entity/CampImage.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.entity;
+package com.wjbl.weightlosscamp.service.api.module.camp.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
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/module/camp/entity/CampInfo.java
similarity index 91%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/entity/CampInfo.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/entity/CampInfo.java
index 0721358..41e936e 100644
--- 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/module/camp/entity/CampInfo.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.entity;
+package com.wjbl.weightlosscamp.service.api.module.camp.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
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/module/camp/mapper/CampClassroomImageMapper.java
similarity index 60%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/mapper/CampClassroomImageMapper.java
index 99a733a..6b275e9 100644
--- 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/module/camp/mapper/CampClassroomImageMapper.java
@@ -1,7 +1,7 @@
-package com.wjbl.weightlosscamp.service.api.mapper;
+package com.wjbl.weightlosscamp.service.api.module.camp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.wjbl.weightlosscamp.service.api.entity.CampClassroomImage;
+import com.wjbl.weightlosscamp.service.api.module.camp.entity.CampClassroomImage;
import org.apache.ibatis.annotations.Mapper;
/**
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/module/camp/mapper/CampClassroomMapper.java
similarity index 60%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/mapper/CampClassroomMapper.java
index 8a4fa69..a3dd043 100644
--- 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/module/camp/mapper/CampClassroomMapper.java
@@ -1,7 +1,7 @@
-package com.wjbl.weightlosscamp.service.api.mapper;
+package com.wjbl.weightlosscamp.service.api.module.camp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.wjbl.weightlosscamp.service.api.entity.CampClassroom;
+import com.wjbl.weightlosscamp.service.api.module.camp.entity.CampClassroom;
import org.apache.ibatis.annotations.Mapper;
/**
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/module/camp/mapper/CampImageMapper.java
similarity index 60%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/mapper/CampImageMapper.java
index ebb475f..b15feb6 100644
--- 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/module/camp/mapper/CampImageMapper.java
@@ -1,7 +1,7 @@
-package com.wjbl.weightlosscamp.service.api.mapper;
+package com.wjbl.weightlosscamp.service.api.module.camp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.wjbl.weightlosscamp.service.api.entity.CampImage;
+import com.wjbl.weightlosscamp.service.api.module.camp.entity.CampImage;
import org.apache.ibatis.annotations.Mapper;
/**
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/module/camp/mapper/CampInfoMapper.java
similarity index 60%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/mapper/CampInfoMapper.java
index 6a21bb8..c2e699e 100644
--- 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/module/camp/mapper/CampInfoMapper.java
@@ -1,7 +1,7 @@
-package com.wjbl.weightlosscamp.service.api.mapper;
+package com.wjbl.weightlosscamp.service.api.module.camp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.wjbl.weightlosscamp.service.api.entity.CampInfo;
+import com.wjbl.weightlosscamp.service.api.module.camp.entity.CampInfo;
import org.apache.ibatis.annotations.Mapper;
/**
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/module/camp/service/CampInfoService.java
similarity index 80%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/CampInfoService.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/service/CampInfoService.java
index f181db2..2b7b85e 100644
--- 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/module/camp/service/CampInfoService.java
@@ -1,12 +1,12 @@
-package com.wjbl.weightlosscamp.service.api.service;
+package com.wjbl.weightlosscamp.service.api.module.camp.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;
+import com.wjbl.weightlosscamp.service.api.module.camp.dto.CampInfoDTO;
+import com.wjbl.weightlosscamp.service.api.module.camp.entity.CampInfo;
/**
* 营地信息服务接口
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/module/camp/service/impl/CampInfoServiceImpl.java
similarity index 86%
rename from weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.java
rename to weight-loss-camp-service-api/src/main/java/com/wjbl/weightlosscamp/service/api/module/camp/service/impl/CampInfoServiceImpl.java
index 1bc24d1..7315621 100644
--- 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/module/camp/service/impl/CampInfoServiceImpl.java
@@ -1,4 +1,4 @@
-package com.wjbl.weightlosscamp.service.api.service.impl;
+package com.wjbl.weightlosscamp.service.api.module.camp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -6,10 +6,10 @@ 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 com.wjbl.weightlosscamp.service.api.module.camp.dto.CampInfoDTO;
+import com.wjbl.weightlosscamp.service.api.module.camp.entity.CampInfo;
+import com.wjbl.weightlosscamp.service.api.module.camp.mapper.CampInfoMapper;
+import com.wjbl.weightlosscamp.service.api.module.camp.service.CampInfoService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
diff --git a/weight-loss-camp-service-api/src/test/java/Gen.java b/weight-loss-camp-service-api/src/test/java/Gen.java
new file mode 100644
index 0000000..2dd768a
--- /dev/null
+++ b/weight-loss-camp-service-api/src/test/java/Gen.java
@@ -0,0 +1,79 @@
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+import com.wjbl.weightlosscamp.api.base.entity.BaseEntity;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+public class Gen {
+
+ public static void main(String[] args) {
+ List tableNameList = Arrays.asList(
+ "qywx_approve_template_config"
+ );
+
+ gen("jfxly", "root", "123456", tableNameList, "com.wjbl.weightlosscamp.service.api.module.sys");
+
+
+ }
+
+ public static void gen(String dbName, String userName, String pwd, List tableNameList, String basePackage) {
+
+ String path = System.getProperty("user.dir");
+
+ System.out.println(path);
+ //E:\project\data_process\zhudehao\src\main\java
+
+ String url = "jdbc:mysql://localhost:3307/" + dbName + "?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai";
+ String username = userName;
+ String password = pwd;
+ FastAutoGenerator.create(url, username, password)
+ .globalConfig(builder -> {
+ builder.author("kevin") // 设置作者
+ .commentDate("yyyy-MM-dd")
+ .outputDir(path + File.separator + "weight-loss-camp-service-api" + "\\src\\main\\java")
+ .disableOpenDir()
+ .enableSpringdoc()
+ .dateType(DateType.ONLY_DATE)
+
+ //.enableSpringdoc()
+ ; // 指定输出目录
+ }).packageConfig(builder -> {
+ builder.parent(basePackage);
+ }).strategyConfig(builder -> {
+ builder
+ .addTablePrefix("tb_")
+ .addInclude(tableNameList)
+ .entityBuilder()
+ .enableFileOverride()
+ .enableLombok()
+ //enableTableFieldAnnotation()
+ .versionColumnName("revision")
+ .logicDeleteColumnName("deleted")
+ .superClass(BaseEntity.class)
+ .addSuperEntityColumns("id", "tenant_id", "created_by_id", "created_by", "created_time", "updated_by", "updated_by_id", "updated_time", "deleted", "revision")
+ .addIgnoreColumns("dev_remark")
+ //.enableActiveRecord()
+ .idType(IdType.ASSIGN_ID)
+ .controllerBuilder()
+ //.enableFileOverride()
+ .enableRestStyle()
+ .serviceBuilder()
+ .enableFileOverride()
+ .formatServiceFileName("%sService")
+ .formatServiceImplFileName("%sServiceImp")
+ .mapperBuilder()
+ .enableMapperAnnotation()
+ .enableBaseResultMap()
+ .enableBaseColumnList()
+ .enableFileOverride()
+ ;
+ })
+ .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
+ .execute();
+
+ }
+}
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 5b23492..308e8b6 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
deleted file mode 100644
index 44199ef..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/controller/CampInfoController.class and /dev/null 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
deleted file mode 100644
index bc164f6..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampClassroomDTO.class and /dev/null 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
deleted file mode 100644
index b893e1e..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/dto/CampInfoDTO.class and /dev/null 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
deleted file mode 100644
index 29463b6..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroom.class and /dev/null 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
deleted file mode 100644
index ba12cb3..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampClassroomImage.class and /dev/null 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
deleted file mode 100644
index 684d62b..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampImage.class and /dev/null 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
deleted file mode 100644
index 95864df..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/entity/CampInfo.class and /dev/null 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
deleted file mode 100644
index 1dce9ae..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomImageMapper.class and /dev/null 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
deleted file mode 100644
index 0e882a3..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampClassroomMapper.class and /dev/null 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
deleted file mode 100644
index aff8001..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampImageMapper.class and /dev/null 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
deleted file mode 100644
index d98a7c0..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/mapper/CampInfoMapper.class and /dev/null 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
deleted file mode 100644
index 3a368fa..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/CampInfoService.class and /dev/null 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
deleted file mode 100644
index 2a842e0..0000000
Binary files a/weight-loss-camp-service-api/target/classes/com/wjbl/weightlosscamp/service/api/service/impl/CampInfoServiceImpl.class and /dev/null differ
diff --git a/weight-loss-camp-work-api/pom.xml b/weight-loss-camp-work-api/pom.xml
new file mode 100644
index 0000000..88af3cf
--- /dev/null
+++ b/weight-loss-camp-work-api/pom.xml
@@ -0,0 +1,78 @@
+
+
+ 4.0.0
+
+
+ com.wjbl
+ weight-loss-camp
+ 1.0.0-SNAPSHOT
+
+
+ weight-loss-camp-work-api
+ jar
+ 营地服务应用API
+
+
+
+
+ com.wjbl
+ weight-loss-camp-api-base
+ ${project.version}
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.github.xiaoymin
+ knife4j-openapi3-jakarta-spring-boot-starter
+
+
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+ 1.37.0
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/WorkApiApplication.java b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/WorkApiApplication.java
new file mode 100644
index 0000000..7ca4afb
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/WorkApiApplication.java
@@ -0,0 +1,21 @@
+package com.wjbl.weightlosscamp;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 营地工作服务API启动类
+ *
+ * @author generated
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+@EnableFeignClients
+public class WorkApiApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(WorkApiApplication.class, args);
+ }
+}
\ No newline at end of file
diff --git a/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/client/ServiceFeignClient.java b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/client/ServiceFeignClient.java
new file mode 100644
index 0000000..8d1c27e
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/client/ServiceFeignClient.java
@@ -0,0 +1,25 @@
+package com.wjbl.weightlosscamp.service.api.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
+/**
+ * 服务Feign客户端
+ * 使用OpenFeign调用service-api服务
+ *
+ * @author generated
+ */
+@FeignClient(name = "weight-loss-camp-service-api", path = "/service-api")
+public interface ServiceFeignClient {
+
+ /**
+ * 示例方法:根据ID获取数据
+ *
+ * @param id 数据ID
+ * @return 返回数据字符串
+ */
+ @GetMapping("/example/{id}")
+ String getExampleDataById(@PathVariable("id") Long id);
+
+}
\ No newline at end of file
diff --git a/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/config/FeignConfig.java b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/config/FeignConfig.java
new file mode 100644
index 0000000..a5ba55e
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/config/FeignConfig.java
@@ -0,0 +1,149 @@
+package com.wjbl.weightlosscamp.service.api.config;
+
+import com.wjbl.weightlosscamp.api.base.constant.WebParamConstant;
+import feign.Logger;
+import feign.RequestInterceptor;
+import feign.Response;
+import feign.codec.Decoder;
+import feign.codec.Encoder;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Collection;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * Feign配置类
+ *
+ * @author generated
+ */
+@Slf4j
+@Configuration
+public class FeignConfig {
+
+ /**
+ * 配置Feign日志级别
+ */
+ @Bean
+ public Logger.Level feignLoggerLevel() {
+ return Logger.Level.FULL;
+ }
+
+ /**
+ * 请求拦截器,添加traceId用于链路追踪
+ */
+ @Bean
+ public RequestInterceptor requestInterceptor() {
+ return requestTemplate -> {
+ // 添加请求唯一标识
+ // 设置序列号
+
+ String seq = MDC.get(WebParamConstant.SEQ);
+
+ if (seq == null || seq.isEmpty()) {
+ seq = UUID.randomUUID().toString();
+ }
+
+ // 记录请求信息
+ String method = requestTemplate.method();
+ String url = requestTemplate.url();
+ Map> headers = requestTemplate.headers();
+
+ StringBuilder requestLog = new StringBuilder();
+ requestLog.append("\n================================ Feign请求开始 ================================\n");
+ requestLog.append("请求方式: ").append(method).append("\n");
+ requestLog.append("请求地址: ").append(url).append("\n");
+ requestLog.append("请求头: ").append(headers).append("\n");
+
+ // 获取请求体
+ if (requestTemplate.body() != null) {
+ String bodyStr = new String(requestTemplate.body(), StandardCharsets.UTF_8);
+ requestLog.append("请求参数: ").append(bodyStr).append("\n");
+ }
+
+ log.info(requestLog.toString());
+ };
+ }
+
+ /**
+ * 自定义Feign编码器,记录请求参数
+ */
+ @Bean
+ public Encoder loggingEncoder(Encoder defaultEncoder) {
+ return (object, bodyType, template) -> {
+ defaultEncoder.encode(object, bodyType, template);
+ if (object != null) {
+ log.info("请求参数对象: {}", object);
+ }
+ };
+ }
+
+ /**
+ * 自定义Feign解码器,记录响应结果
+ */
+ @Bean
+ public Decoder loggingDecoder(Decoder defaultDecoder) {
+ return (response, type) -> {
+ long startTime = System.currentTimeMillis();
+
+ // 克隆响应,因为响应体只能读取一次
+ Response clonedResponse = cloneResponse(response);
+
+ try {
+ // 记录响应信息
+ String responseBody = getResponseBody(clonedResponse);
+
+ StringBuilder responseLog = new StringBuilder();
+ responseLog.append("\n================================ Feign响应结果 ================================\n");
+ responseLog.append("响应状态: ").append(clonedResponse.status()).append("\n");
+ responseLog.append("响应头: ").append(clonedResponse.headers()).append("\n");
+ responseLog.append("响应体: ").append(responseBody).append("\n");
+ responseLog.append("处理时间: ").append(System.currentTimeMillis() - startTime).append("ms\n");
+ responseLog.append("================================ Feign请求结束 ================================\n");
+
+ log.info(responseLog.toString());
+
+ // 使用原始响应解码
+ return defaultDecoder.decode(response, type);
+ } catch (Exception e) {
+ log.error("记录Feign响应日志失败", e);
+ return defaultDecoder.decode(response, type);
+ }
+ };
+ }
+
+ /**
+ * 克隆响应对象
+ */
+ private Response cloneResponse(Response response) {
+ return Response.builder()
+ .status(response.status())
+ .reason(response.reason())
+ .headers(response.headers())
+ .body(response.body())
+ .request(response.request())
+ .build();
+ }
+
+ /**
+ * 获取响应体内容
+ */
+ private String getResponseBody(Response response) {
+ if (response.body() == null) {
+ return "(空响应体)";
+ }
+
+ try {
+ byte[] bodyData = feign.Util.toByteArray(response.body().asInputStream());
+ return new String(bodyData, StandardCharsets.UTF_8);
+ } catch (IOException e) {
+ log.error("读取响应体失败", e);
+ return "(响应体读取失败)";
+ }
+ }
+}
\ No newline at end of file
diff --git a/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/config/WebConfig.java b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/config/WebConfig.java
new file mode 100644
index 0000000..245f6ac
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/config/WebConfig.java
@@ -0,0 +1,16 @@
+package com.wjbl.weightlosscamp.service.api.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * Web配置类
+ *
+ * @author generated
+ */
+@Configuration
+public class WebConfig implements WebMvcConfigurer {
+
+ // Web相关配置,如拦截器、资源处理器等
+
+}
\ No newline at end of file
diff --git a/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/ExampleController.java b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/ExampleController.java
new file mode 100644
index 0000000..eb33637
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/java/com/wjbl/weightlosscamp/service/api/controller/ExampleController.java
@@ -0,0 +1,47 @@
+package com.wjbl.weightlosscamp.service.api.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.wjbl.weightlosscamp.service.api.client.ServiceFeignClient;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 示例控制器
+ *
+ * @author generated
+ */
+@Slf4j
+@RestController
+@RequestMapping("/example")
+public class ExampleController {
+
+ @Autowired
+ private ServiceFeignClient serviceFeignClient;
+
+ /**
+ * 示例方法:通过Feign调用服务API
+ *
+ * @param id 数据ID
+ * @return 返回数据字符串
+ */
+ @GetMapping("/{id}")
+ public String getExample(@PathVariable Long id) {
+ log.info("接收到获取示例数据请求, id={}", id);
+ return serviceFeignClient.getExampleDataById(id);
+ }
+
+ /**
+ * 健康检查接口
+ *
+ * @return 返回健康状态
+ */
+ @GetMapping("/health")
+ public String health() {
+ return "work-api服务运行正常!";
+ }
+}
\ No newline at end of file
diff --git a/weight-loss-camp-work-api/src/main/resources/application.yml b/weight-loss-camp-work-api/src/main/resources/application.yml
new file mode 100644
index 0000000..0e83d59
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/resources/application.yml
@@ -0,0 +1,48 @@
+server:
+ port: 9001
+ servlet:
+ context-path: /work-api
+
+spring:
+ application:
+ name: weight-loss-camp-work-api
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://localhost:3307/kevin?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: root
+ password: 123456
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 60.205.225.2:8848
+ group: weight-loss-camp
+ # OpenFeign配置
+ openfeign:
+ client:
+ config:
+ default:
+ connectTimeout: 5000
+ readTimeout: 5000
+ loggerLevel: FULL
+
+# 日志配置
+logging:
+ level:
+ com.wjbl.weight.loss.camp.service.api.apiservice: DEBUG
+
+# Knife4j配置
+knife4j:
+ enable: true
+ setting:
+ language: zh-CN
+
+# Sa-Token配置
+sa-token:
+ token-name: Authorization
+ token-prefix: Bearer
+ timeout: 2592000
+ active-timeout: -1
+ is-concurrent: true
+ is-share: false
+ token-style: uuid
+ is-log: true
diff --git a/weight-loss-camp-work-api/src/main/resources/log4j2.xml b/weight-loss-camp-work-api/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..1365781
--- /dev/null
+++ b/weight-loss-camp-work-api/src/main/resources/log4j2.xml
@@ -0,0 +1,48 @@
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{TraceId}] %-5level %logger{36} - %msg%n
+ logs/weight-loss-camp-work-api
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file