# 工作日志服务平台 - 后端 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 封装响应 ## 测试账号 - **管理员账号**: admin - **管理员密码**: admin123 ## 下一步 阶段一基础框架已完成,接下来将开发: 1. 认证授权模块 (登录/登出) 2. 人员管理模块 3. 模板管理模块 4. 工作日志模块 详见开发计划文档。