# 后端基础工程 ## 职责 提供 REST API、统一响应与异常处理、MyBatis-Plus 配置、MySQL 连接、钉钉用户上下文和跨域配置。业务模块以 `module` 为根目录逐步实现。 ## 目录 ```text src/main/java/com/sairui/ ├── common/ # 通用响应、异常和错误码 ├── config/ # MyBatis-Plus 与 Web 配置 ├── integration/ # 钉钉集成边界 ├── module/ # 业务模块 └── system/ # 系统健康检查 ``` ## 本地运行 1. 在 MySQL 8 中创建数据库:`CREATE DATABASE sairui DEFAULT CHARACTER SET utf8mb4;`。 2. 执行 `src/main/resources/db/schema/V1__base_schema.sql`。 3. 设置 `SAIRUI_DB_PASSWORD` 等环境变量,或创建不提交版本库的 `application-local.yml`。 4. 本地启动默认加载 `local` Profile;若需覆盖环境,可设置 `SPRING_PROFILES_ACTIVE`。PowerShell 也可显式执行:`mvn "-Dspring-boot.run.profiles=local" spring-boot:run`。 服务默认运行在 `http://localhost:8080`,可通过 `GET /api/v1/system/health` 验证。 ## 钉钉接入边界 当前 `DingTalkUserInterceptor` 仅接收经网关或本地调试环境传入的 `X-DingTalk-User-Id` 和 `X-DingTalk-User-Name`,并写入请求上下文。真实的钉钉免登、签名校验与组织同步将在“身份与权限”模块中实现;不得把前端传入 Header 直接作为生产环境身份凭证。