- 项目文档:PRD、SRS、架构设计文档、前后端详细设计文档、架构设计规范 - 数据库脚本:用户创建和数据库初始化脚本 - 后端框架:Spring Boot 3.2 + MyBatis-Plus 3.5 基础架构 - 公共组件:统一返回结果、分页封装、全局异常处理 - 基础功能:链路追踪、API日志、健康检查接口 - 配置文件:application.yml.example 配置模板 - 开发规范:遵循架构设计规范,data目录存放MyBatis-Plus文件
163 lines
4.0 KiB
Markdown
163 lines
4.0 KiB
Markdown
# 工作日志服务平台 - 后端 API
|
|
|
|
## 项目说明
|
|
|
|
工作日志服务平台后端 API,基于 Spring Boot 3.2 + MyBatis-Plus 构建。
|
|
|
|
## 技术栈
|
|
|
|
- **框架**: Spring Boot 3.2.2
|
|
- **数据库**: MySQL 8.0
|
|
- **缓存**: Redis 7.x
|
|
- **ORM**: MyBatis-Plus 3.5.5
|
|
- **工具库**: Hutool 5.8.25
|
|
- **API 文档**: SpringDoc OpenAPI 2.3.0
|
|
|
|
## 环境要求
|
|
|
|
- JDK 21
|
|
- Maven 3.6+
|
|
- MySQL 8.0
|
|
- Redis 7.x
|
|
|
|
## 快速开始
|
|
|
|
### 1. 数据库初始化
|
|
|
|
#### 步骤1: 创建数据库用户 (需要 root 权限)
|
|
|
|
```bash
|
|
cd /home/along/MyCode/wanjiabuluo/worklog
|
|
mysql -u root -p < sql/create_user.sql
|
|
```
|
|
|
|
执行后会创建:
|
|
- 用户: `worklog`
|
|
- 密码: `Wlog@123`
|
|
- 权限: worklog 数据库的所有权限
|
|
|
|
#### 步骤2: 初始化数据库结构和数据
|
|
|
|
```bash
|
|
mysql -u worklog -p < sql/init_database.sql
|
|
```
|
|
|
|
输入密码: `Wlog@123`
|
|
|
|
这将创建:
|
|
- 数据库: `worklog`
|
|
- 表: `sys_user`, `log_template`, `work_log`
|
|
- 初始数据: 默认管理员账号 (admin/admin123)
|
|
|
|
### 2. 配置文件
|
|
|
|
项目已包含开发环境配置文件:
|
|
- `src/main/resources/application.yml` - 主配置
|
|
- `src/main/resources/application-dev.yml` - 开发环境配置
|
|
- `src/main/resources/logback-spring.xml` - 日志配置
|
|
|
|
数据库连接配置 (application-dev.yml):
|
|
```yaml
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://localhost:3306/worklog?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai
|
|
username: worklog
|
|
password: Wlog@123
|
|
```
|
|
|
|
Redis 配置:
|
|
```yaml
|
|
spring:
|
|
data:
|
|
redis:
|
|
host: localhost
|
|
port: 6379
|
|
password: zjf@123456
|
|
```
|
|
|
|
### 3. 编译项目
|
|
|
|
```bash
|
|
cd worklog-api
|
|
mvn clean compile
|
|
```
|
|
|
|
### 4. 运行项目
|
|
|
|
```bash
|
|
mvn spring-boot:run
|
|
```
|
|
|
|
或者打包后运行:
|
|
|
|
```bash
|
|
mvn clean package
|
|
java -jar target/worklog-api-1.0.0.jar
|
|
```
|
|
|
|
### 5. 访问服务
|
|
|
|
- **健康检查**: http://localhost:8080/api/v1/health
|
|
- **API 文档**: http://localhost:8080/swagger-ui.html
|
|
|
|
## 项目结构
|
|
|
|
```
|
|
src/main/java/com/wjbl/worklog/
|
|
├── WorklogApplication.java # 启动类
|
|
├── config/ # 配置类
|
|
│ ├── MybatisPlusConfig.java # MyBatis-Plus 配置
|
|
│ ├── TraceInterceptor.java # 链路追踪拦截器
|
|
│ ├── ApiLogAspect.java # API 日志切面
|
|
│ └── WebMvcConfig.java # Web MVC 配置
|
|
├── controller/ # 控制器
|
|
│ └── HealthController.java # 健康检查接口
|
|
├── service/ # 业务服务层
|
|
│ └── impl/
|
|
├── data/ # 数据访问层 (MyBatis-Plus)
|
|
│ ├── entity/ # 实体类
|
|
│ ├── mapper/ # Mapper 接口
|
|
│ └── service/ # DataService (数据服务)
|
|
│ └── impl/
|
|
├── dto/ # 数据传输对象
|
|
├── vo/ # 视图对象
|
|
├── enums/ # 枚举类
|
|
└── common/ # 公共组件
|
|
├── Result.java # 统一返回结果
|
|
├── PageResult.java # 分页结果
|
|
└── exception/ # 异常处理
|
|
├── BusinessException.java
|
|
└── GlobalExceptionHandler.java
|
|
```
|
|
|
|
## 日志
|
|
|
|
日志文件位于 `logs/` 目录:
|
|
- `app.log` - 应用日志
|
|
- `sql.log` - SQL 执行日志
|
|
|
|
所有日志都包含链路追踪信息 (traceId, spanId)。
|
|
|
|
## 开发规范
|
|
|
|
1. **目录结构**: 严格遵循架构设计规范,MyBatis-Plus 相关文件放在 `data` 目录
|
|
2. **DataService 命名**: XxxDataService / XxxDataServiceImpl
|
|
3. **分层职责**: Controller → Service → DataService → Mapper
|
|
4. **主键策略**: VARCHAR(20) 存储雪花算法 ID
|
|
5. **统一返回**: 使用 Result<T> 封装响应
|
|
|
|
## 测试账号
|
|
|
|
- **管理员账号**: admin
|
|
- **管理员密码**: admin123
|
|
|
|
## 下一步
|
|
|
|
阶段一基础框架已完成,接下来将开发:
|
|
1. 认证授权模块 (登录/登出)
|
|
2. 人员管理模块
|
|
3. 模板管理模块
|
|
4. 工作日志模块
|
|
|
|
详见开发计划文档。
|