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