# Nanxiislet Admin Backend 南溪小岛管理后台 Spring Boot 后端服务 ## 技术栈 - **框架**: Spring Boot 3.3.4 - **Java 版本**: JDK 21 - **数据库**: MySQL 8.0+ - **缓存**: Redis - **ORM**: MyBatis-Plus 3.5.7 - **认证**: Sa-Token 1.39.0 - **API 文档**: Knife4j 4.5.0 (OpenAPI 3) - **工具库**: Hutool、Lombok、EasyExcel ## 项目结构 ``` src/main/java/com/nanxiislet/admin/ ├── common/ # 公共模块 │ ├── base/ # 基础类 │ ├── exception/ # 异常处理 │ └── result/ # 响应结果 ├── config/ # 配置类 ├── controller/ # 控制器 ├── dto/ # 数据传输对象 │ ├── auth/ # 认证相关 │ └── query/ # 查询条件 ├── entity/ # 实体类 ├── mapper/ # MyBatis Mapper └── service/ # 服务层 └── impl/ # 服务实现 ``` ## 功能模块 ### 认证管理 - 用户登录/登出 - 验证码 - 获取当前用户信息 ### 用户管理 - 用户 CRUD - 密码重置/修改 - 用户状态管理 ### 平台管理 - 项目管理 - 服务器管理 - 域名管理 ### 财务管理 - 收入管理 - 支出管理 - 预算管理 - 报销管理 - 发票管理 - 结算管理 ### 仪表盘 - 统计数据 - 快速概览 ## 快速开始 ### 1. 环境要求 - JDK 21+ - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ ### 2. 数据库初始化 执行 `src/main/resources/db/init.sql` 脚本创建数据库和表。 ```bash mysql -h 192.168.9.100 -u root -p < src/main/resources/db/init.sql ``` ### 3. 配置修改 编辑 `src/main/resources/application.yml`,修改数据库和 Redis 连接信息。 ### 4. 启动项目 ```bash mvn spring-boot:run ``` 或打包后运行: ```bash mvn package -DskipTests java -jar target/nanxiislet-admin-1.0.0-SNAPSHOT.jar ``` ### 5. 访问 API 文档 启动后访问: http://localhost:8080/api/doc.html ## 默认账户 - 用户名: `admin` - 密码: `admin123` ## API 说明 ### 认证接口 | 方法 | 路径 | 说明 | | ---- | --------------- | ---------------- | | GET | /auth/captcha | 获取验证码 | | POST | /auth/login | 用户登录 | | POST | /auth/logout | 用户登出 | | GET | /auth/user-info | 获取当前用户信息 | ### 用户管理 | 方法 | 路径 | 说明 | | ------ | -------------------------------- | -------- | | GET | /system/user/list | 用户列表 | | GET | /system/user/{id} | 用户详情 | | POST | /system/user | 新增用户 | | PUT | /system/user/{id} | 更新用户 | | DELETE | /system/user/{id} | 删除用户 | | POST | /system/user/{id}/reset-password | 重置密码 | | POST | /system/user/change-password | 修改密码 | ### 请求头 需要登录的接口请在请求头中携带 Token: ``` Authorization: Bearer {token} ``` ## 响应格式 ```json { "code": 200, "message": "操作成功", "data": {}, "timestamp": 1704540000000 } ``` ## License MIT License