|
|
@@ -13,68 +13,87 @@ ChronicDiseaseApp/
|
|
|
│ ├── main/ # 主源代码
|
|
|
│ │ ├── java/ # Java源代码
|
|
|
│ │ │ └── work/baiyun/chronicdiseaseapp/ # 主包
|
|
|
-│ │ │ ├── SpringAPP.java # Spring Boot主启动类
|
|
|
+│ │ │ ├── SpringAPP.java # Spring Boot 主启动类(@EnableKnife4j)
|
|
|
│ │ │ ├── common/ # 通用类
|
|
|
-│ │ │ │ ├── Page.java # 分页类
|
|
|
+│ │ │ │ ├── Page.java # 分页类(PageHelper 封装)
|
|
|
│ │ │ │ └── R.java # 统一响应类
|
|
|
│ │ │ ├── config/ # 配置类
|
|
|
│ │ │ │ ├── AuthInterceptor.java # 认证拦截器
|
|
|
-│ │ │ │ ├── CorsConfig.java # CORS配置
|
|
|
-│ │ │ │ ├── Knife4jConfig.java # Knife4j配置
|
|
|
-│ │ │ │ ├── MybatisPlusConfig.java # MyBatis-Plus配置
|
|
|
-│ │ │ │ ├── RestTemplateConfig.java # RestTemplate配置
|
|
|
-│ │ │ │ ├── WebMvcConfig.java # Web MVC配置
|
|
|
+│ │ │ │ ├── CorsConfig.java # CORS 配置
|
|
|
+│ │ │ │ ├── Knife4jConfig.java # Knife4j 配置
|
|
|
+│ │ │ │ ├── MybatisPlusConfig.java # MyBatis-Plus 配置
|
|
|
+│ │ │ │ ├── RestTemplateConfig.java # RestTemplate 配置
|
|
|
+│ │ │ │ ├── WebMvcConfig.java # Web MVC 配置(拦截器注册)
|
|
|
│ │ │ │ └── WeChatProperties.java # 微信配置属性
|
|
|
│ │ │ ├── controller/ # 控制器层
|
|
|
│ │ │ │ ├── GeoController.java # 地理位置控制器
|
|
|
-│ │ │ │ └── WeChatController.java # 微信控制器
|
|
|
+│ │ │ │ ├── WeChatController.java # 微信控制器
|
|
|
+│ │ │ │ ├── BloodGlucoseDataController.java # 血糖数据控制器
|
|
|
+│ │ │ │ ├── BloodPressureDataController.java # 血压数据控制器
|
|
|
+│ │ │ │ ├── HeartRateDataController.java # 心率数据控制器
|
|
|
+│ │ │ │ └── PhysicalDataController.java # 体征数据控制器
|
|
|
│ │ │ ├── enums/ # 枚举类
|
|
|
│ │ │ │ ├── ExceptionResultCode.java # 异常结果码枚举
|
|
|
│ │ │ │ ├── FailResultCode.java # 失败结果码枚举
|
|
|
│ │ │ │ ├── Gender.java # 性别枚举
|
|
|
│ │ │ │ ├── PermissionGroup.java # 权限组枚举
|
|
|
-│ │ │ │ └── SuccessResultCode.java # 成功结果码枚举
|
|
|
+│ │ │ │ ├── SuccessResultCode.java # 成功结果码枚举
|
|
|
+│ │ │ │ └── BloodGlucoseType.java # 血糖类型枚举
|
|
|
│ │ │ ├── exception/ # 异常处理
|
|
|
-│ │ │ │ ├── CustomException.java # 自定义异常
|
|
|
-│ │ │ │ └── CustomExceptionHandler.java # 异常处理器
|
|
|
-│ │ │ ├── handler/ # 处理器
|
|
|
-│ │ │ │ ├── CustomMetaObjectHandler.java # MyBatis元对象处理器
|
|
|
-│ │ │ │ ├── GenderTypeHandler.java # 性别类型处理器
|
|
|
-│ │ │ │ └── PermissionGroupTypeHandler.java # 权限组类型处理器
|
|
|
-│ │ │ ├── mapper/ # 数据访问层
|
|
|
+│ │ │ │ ├── CustomException.java # 自定义异常(RuntimeException)
|
|
|
+│ │ │ │ └── CustomExceptionHandler.java # 全局异常处理器
|
|
|
+│ │ │ ├── handler/ # MyBatis 处理器
|
|
|
+│ │ │ │ ├── CustomMetaObjectHandler.java # 元对象处理
|
|
|
+│ │ │ │ ├── GenderTypeHandler.java # 性别类型处理
|
|
|
+│ │ │ │ └── PermissionGroupTypeHandler.java # 权限组类型处理
|
|
|
+│ │ │ ├── mapper/ # 数据访问层(Mapper 接口)
|
|
|
│ │ │ │ ├── SysUserMapper.java # 系统用户Mapper
|
|
|
│ │ │ │ ├── UserInfoMapper.java # 用户信息Mapper
|
|
|
-│ │ │ │ └── UserTokenMapper.java # 用户令牌Mapper
|
|
|
+│ │ │ │ ├── UserTokenMapper.java # 用户令牌Mapper
|
|
|
+│ │ │ │ ├── BloodGlucoseDataMapper.java # 血糖数据Mapper
|
|
|
+│ │ │ │ ├── BloodPressureDataMapper.java# 血压数据Mapper
|
|
|
+│ │ │ │ ├── HeartRateDataMapper.java # 心率数据Mapper
|
|
|
+│ │ │ │ └── PhysicalDataMapper.java # 体征数据Mapper
|
|
|
│ │ │ ├── model/ # 数据模型
|
|
|
│ │ │ │ ├── bo/ # 业务对象
|
|
|
-│ │ │ │ ├── po/ # 持久化对象
|
|
|
+│ │ │ │ ├── po/ # 持久化对象(实体)
|
|
|
│ │ │ │ │ ├── BaseEntity.java # 基础实体
|
|
|
│ │ │ │ │ ├── UserInfo.java # 用户信息实体
|
|
|
-│ │ │ │ │ └── UserToken.java # 用户令牌实体
|
|
|
-│ │ │ │ └── vo/ # 视图对象
|
|
|
+│ │ │ │ │ ├── UserToken.java # 用户令牌实体
|
|
|
+│ │ │ │ │ ├── BloodGlucoseData.java # 血糖实体
|
|
|
+│ │ │ │ │ ├── BloodPressureData.java# 血压实体
|
|
|
+│ │ │ │ │ ├── HeartRateData.java # 心率实体
|
|
|
+│ │ │ │ │ └── PhysicalData.java # 体征实体
|
|
|
+│ │ │ │ └── vo/ # 视图/请求响应对象
|
|
|
│ │ │ │ ├── GetOpenidRequest.java # 获取OpenID请求
|
|
|
│ │ │ │ ├── QueryUserRequest.java # 查询用户请求
|
|
|
│ │ │ │ ├── QueryUserResponse.java # 查询用户响应
|
|
|
-│ │ │ │ └── UpdateUserInfoRequest.java # 更新用户信息请求
|
|
|
-│ │ │ ├── service/ # 服务层
|
|
|
+│ │ │ │ ├── UpdateUserInfoRequest.java # 更新用户信息请求
|
|
|
+│ │ │ │ ├── AuthPrincipal.java # 鉴权主体(userId, role)
|
|
|
+│ │ │ │ └── 各类数据请求/响应 VO(如 BloodPressureDataResponse 等)
|
|
|
+│ │ │ ├── service/ # 服务接口
|
|
|
│ │ │ │ ├── TokenService.java # 令牌服务接口
|
|
|
│ │ │ │ ├── UserService.java # 用户服务接口
|
|
|
│ │ │ │ ├── WeChatService.java # 微信服务接口
|
|
|
│ │ │ │ └── impl/ # 服务实现
|
|
|
│ │ │ │ ├── TokenServiceImpl.java # 令牌服务实现
|
|
|
│ │ │ │ ├── UserServiceImpl.java # 用户服务实现
|
|
|
-│ │ │ │ └── ... # 其他服务实现
|
|
|
+│ │ │ │ ├── BloodGlucoseDataServiceImpl.java # 血糖服务实现
|
|
|
+│ │ │ │ ├── BloodPressureDataServiceImpl.java# 血压服务实现
|
|
|
+│ │ │ │ ├── HeartRateDataServiceImpl.java # 心率服务实现
|
|
|
+│ │ │ │ └── PhysicalDataServiceImpl.java # 体征服务实现
|
|
|
│ │ │ └── util/ # 工具类
|
|
|
-│ │ │ └── TokenUtil.java # 令牌工具类
|
|
|
+│ │ │ ├── TokenUtil.java # 令牌工具类
|
|
|
+│ │ │ └── SecurityUtils.java # 安全相关辅助方法
|
|
|
│ │ └── resources/ # 资源文件
|
|
|
-│ │ ├── application.yml # 应用配置文件
|
|
|
-│ │ ├── logback-spring.xml # 日志配置文件
|
|
|
-│ │ └── cert/ # 证书文件
|
|
|
-│ │ ├── fullchain.pem # 证书链
|
|
|
-│ │ └── privkey.pem # 私钥
|
|
|
+│ │ ├── application.yml # 应用配置
|
|
|
+│ │ ├── logback-spring.xml # 日志配置
|
|
|
+│ │ └── cert/ # 证书
|
|
|
+│ │ ├── fullchain.pem # 证书链(仓库副本 — 生产请使用安全注入)
|
|
|
+│ │ └── privkey.pem # 私钥(不要在公共仓库中保存)
|
|
|
│ └── test/ # 测试代码
|
|
|
-│ └── java/ # 测试Java代码(目前为空)
|
|
|
-├── target/ # 编译输出目录
|
|
|
+│ └── java/ # 测试Java代码(当前为空)
|
|
|
+├── target/ # 编译输出目录(忽略提交)
|
|
|
│ ├── classes/ # 编译后的类文件
|
|
|
│ ├── generated-sources/ # 生成的源代码
|
|
|
│ ├── generated-test-sources/ # 生成的测试源代码
|
|
|
@@ -82,8 +101,8 @@ ChronicDiseaseApp/
|
|
|
├── docs/ # 文档目录
|
|
|
│ ├── ReadME.md # 项目说明文档
|
|
|
│ └── DevRule/ # 开发规范目录
|
|
|
-├── logs/ # 日志目录
|
|
|
-└── cert/ # 证书目录(根目录副本)
|
|
|
+├── logs/ # 运行时日志目录
|
|
|
+└── cert/ # 仓库证书副本(生产环境请使用密钥管理)
|
|
|
```
|
|
|
|
|
|
## 包结构说明
|
|
|
@@ -166,3 +185,18 @@ Maven编译后的输出目录,包含编译后的类文件、生成的源代码
|
|
|
|
|
|
- **logs/**: 运行时日志文件存放目录
|
|
|
- **cert/**: 证书文件存放目录(根目录副本,与resources下的cert目录内容相同)
|
|
|
+
|
|
|
+## 关于 `target`、`logs` 与 `cert`
|
|
|
+
|
|
|
+- `target/`:为 Maven 构建输出目录,应在 `.gitignore` 中忽略,不提交到版本控制。
|
|
|
+- `logs/`:运行时日志目录,通常为部署所在机器的本地目录;如需要在容器或云环境下运行,请将日志重定向到标准输出或使用集中化日志(例如 ELK、Azure Monitor 等)。
|
|
|
+- `cert/`:仓库中存在证书副本(resources 下有 `cert/`),生产密钥和证书应通过安全密钥管理器(例如 Vault、Azure KeyVault)或 CI/CD 的机密存储注入,避免在公共或共享仓库中保存私钥。
|
|
|
+
|
|
|
+## 测试约定
|
|
|
+
|
|
|
+- `src/test/java/`:存放单元测试和集成测试代码。当前目录为空,建议引入基础单元测试(示例:服务层的 `TokenService` / `UserService` 单元测试)并在 CI 中运行。
|
|
|
+
|
|
|
+## 版本控制建议
|
|
|
+
|
|
|
+- 将 `target/`、`logs/`、以及 IDE 特有的配置目录(例如 `.idea/`)加入 `.gitignore`。
|
|
|
+- 对于敏感证书/私钥,使用外部机密管理或将其放在部署时注入的位置,不直接放在仓库中。
|