|
@@ -14,7 +14,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
|
|
|
|
|
## 技术栈
|
|
## 技术栈
|
|
|
|
|
|
|
|
-- **后端**: Java 8 / Spring Boot 1.5.9 / Gradle 多模块构建
|
|
|
|
|
|
|
+- **后端**: Java 8 / Spring Boot 1.5.9 / Maven 单体项目
|
|
|
- **数据库**: MySQL(`crrc` 库)
|
|
- **数据库**: MySQL(`crrc` 库)
|
|
|
- **ORM**: MyBatis(XML 映射文件位于 `src/main/resources/mapper/`)
|
|
- **ORM**: MyBatis(XML 映射文件位于 `src/main/resources/mapper/`)
|
|
|
- **测试**: JUnit 4 + Spring Boot Test
|
|
- **测试**: JUnit 4 + Spring Boot Test
|
|
@@ -23,56 +23,55 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
- **短信服务**: 阿里云短信 API
|
|
- **短信服务**: 阿里云短信 API
|
|
|
- **缓存**: Redis(数据大屏统计缓存)
|
|
- **缓存**: Redis(数据大屏统计缓存)
|
|
|
|
|
|
|
|
-## 项目结构(CRRC 多模块模式)
|
|
|
|
|
|
|
+## 项目结构(Maven 单体项目)
|
|
|
|
|
|
|
|
-项目采用 Gradle 多模块结构,每个模块独立 `build.gradle` 和 `gradlew`,根目录无 `settings.gradle`:
|
|
|
|
|
|
|
+项目采用 Maven 构建,单体 Spring Boot 应用,所有模块在同一项目中:
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
service/
|
|
service/
|
|
|
-├── com.fenzhitech.crrc.service-common/ # 共享库(DTO/VO/常量),只读,修改需走返工流程
|
|
|
|
|
-├── com.fenzhitech.crrc.service-user/ # 用户模块
|
|
|
|
|
-├── com.fenzhitech.crrc.service-bill/ # 账单模块
|
|
|
|
|
-├── com.fenzhitech.crrc.service-message/ # 消息模块
|
|
|
|
|
-├── com.fenzhitech.crrc.service-*/ # 其他业务模块
|
|
|
|
|
-├── com.fenzhitech.crrc.gateway-pc/ # PC 网关
|
|
|
|
|
-├── com.fenzhitech.crrc.gateway-mobile/ # 移动端网关
|
|
|
|
|
-└── com.fenzhitech.crrc.gateway-management/# 管理端网关
|
|
|
|
|
-```
|
|
|
|
|
-
|
|
|
|
|
-每个模块内部结构:
|
|
|
|
|
-```
|
|
|
|
|
-com.fenzhitech.crrc.service-xxx/
|
|
|
|
|
-├── build.gradle
|
|
|
|
|
-├── gradlew
|
|
|
|
|
-├── src/main/java/ # 业务代码
|
|
|
|
|
-├── src/main/resources/ # 配置 + MyBatis XML
|
|
|
|
|
-└── src/test/java/ # 测试代码
|
|
|
|
|
|
|
+├── pom.xml # Maven 构建配置
|
|
|
|
|
+└── src/main/
|
|
|
|
|
+ ├── java/com/fenzhitech/crrc/
|
|
|
|
|
+ │ ├── controller/wx/ # 小程序端接口(/api/wx/*)
|
|
|
|
|
+ │ ├── controller/admin/ # 后台管理端接口(/api/admin/*)
|
|
|
|
|
+ │ ├── service/ # 业务逻辑层
|
|
|
|
|
+ │ ├── mapper/ # MyBatis Mapper 接口
|
|
|
|
|
+ │ ├── entity/ # 数据库实体
|
|
|
|
|
+ │ ├── dto/ # 数据传输对象
|
|
|
|
|
+ │ ├── vo/ # 视图对象
|
|
|
|
|
+ │ ├── config/ # 配置类
|
|
|
|
|
+ │ ├── interceptor/ # 拦截器(JWT 认证)
|
|
|
|
|
+ │ ├── util/ # 工具类
|
|
|
|
|
+ │ └── task/ # 定时任务
|
|
|
|
|
+ └── resources/
|
|
|
|
|
+ ├── application.properties # 应用配置
|
|
|
|
|
+ └── mapper/ # MyBatis XML 映射文件
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
## 常用命令
|
|
## 常用命令
|
|
|
|
|
|
|
|
-编译验证(必须进入具体模块目录执行):
|
|
|
|
|
|
|
+编译验证:
|
|
|
```bash
|
|
```bash
|
|
|
-cd com.fenzhitech.crrc.service-xxx
|
|
|
|
|
-./gradlew compileJava
|
|
|
|
|
|
|
+cd service
|
|
|
|
|
+mvn compile
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-依赖链编译(修改 service-common 后,先编译公共库再编译业务模块):
|
|
|
|
|
|
|
+运行测试:
|
|
|
```bash
|
|
```bash
|
|
|
-cd com.fenzhitech.crrc.service-common && ./gradlew compileJava
|
|
|
|
|
-cd com.fenzhitech.crrc.service-bill && ./gradlew compileJava
|
|
|
|
|
|
|
+cd service
|
|
|
|
|
+mvn test
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-运行测试:
|
|
|
|
|
|
|
+打包:
|
|
|
```bash
|
|
```bash
|
|
|
-cd com.fenzhitech.crrc.service-xxx
|
|
|
|
|
-./gradlew test
|
|
|
|
|
|
|
+cd service
|
|
|
|
|
+mvn package -DskipTests
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
启动服务:
|
|
启动服务:
|
|
|
```bash
|
|
```bash
|
|
|
-cd com.fenzhitech.crrc.service-xxx
|
|
|
|
|
-./gradlew bootRun
|
|
|
|
|
|
|
+cd service
|
|
|
|
|
+mvn spring-boot:run
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
## API 设计规范
|
|
## API 设计规范
|
|
@@ -133,18 +132,10 @@ backport/xxx-description # 回溯分支
|
|
|
|
|
|
|
|
## 关键约束
|
|
## 关键约束
|
|
|
|
|
|
|
|
-- `service-common` 是共享库,修改公共 DTO/VO/常量后需优先编译验证,且修改需走返工流程
|
|
|
|
|
- MyBatis XML 中参数必须使用 `#{}` 语法,禁止 `${}`(防 SQL 注入)
|
|
- MyBatis XML 中参数必须使用 `#{}` 语法,禁止 `${}`(防 SQL 注入)
|
|
|
-- 网关层(`gateway-pc`、`gateway-mobile`、`gateway-management`)的免登录/免权限路径配置需在新增公开接口时同步检查
|
|
|
|
|
-- 多模块间 Feign 调用路径和包名需与 `SERVICE_NAME` / `SERVICE_CONTEXT_PATH` 常量一致
|
|
|
|
|
|
|
+- 拦截器的免登录/免权限路径配置需在新增公开接口时同步检查
|
|
|
- 测试目录为标准 `src/test/java/`,不得在 `src/main/` 下创建测试文件
|
|
- 测试目录为标准 `src/test/java/`,不得在 `src/main/` 下创建测试文件
|
|
|
|
|
|
|
|
-## 历史遗留拼写(不要误报)
|
|
|
|
|
-
|
|
|
|
|
-- `contanst`(非 `constant`)— 常量/枚举包名
|
|
|
|
|
-- `bootstrapt`(非 `bootstrap`)— `service-file` 模块启动包名
|
|
|
|
|
-- `annotion`(非 `annotation`)— 框架注解包名
|
|
|
|
|
-
|
|
|
|
|
## 文档目录
|
|
## 文档目录
|
|
|
|
|
|
|
|
| 文档 | 路径 | 说明 |
|
|
| 文档 | 路径 | 说明 |
|