Aitori 后台管理服务,基于 Spring Boot 3.5.5 + Java 21 构建,提供用户管理、AI 订单、相册、风格模版、积分体系、订阅配置等业务的后端 API,并通过 Redis Pub/Sub 监听工作流任务回调,实现异步结果处理。
| 类别 | 技术 |
|---|---|
| 语言 / 框架 | Java 21 / Spring Boot 3.5.5 |
| ORM | MyBatis-Plus 3.5.12 |
| 认证 | Sa-Token 1.44.0 |
| 数据库 | MySQL |
| 缓存 / 消息 | Redis(Lettuce 连接池 + Pub/Sub) |
| API 文档 | Knife4j 4.5.0 + SpringDoc OpenAPI 2.8.9 |
| HTTP 客户端 | Forest 1.8.0 |
| 分布式锁 | ShedLock 7.3.0 |
| 对象存储 | Google Cloud Storage |
| 视频处理 | FFmpeg(运行时依赖) |
| 监控 | Micrometer + Prometheus |
| 并发模型 | Java 21 虚拟线程 |
com.aitori
├── annotation/ # 自定义注解(日志、响应包装控制)
├── aop/log/ # AOP 操作日志切面
├── client/ # 外部 HTTP 客户端接口
├── config/ # 配置类(Redis、MyBatis-Plus、Knife4j、虚拟线程等)
├── constants/ # 常量定义
├── controller/ # REST API 控制器
├── dto/ # 统一响应包装 R<T>
├── entity/ # 实体、VO、Request 对象
├── exception/ # 全局异常处理
├── listener/ # Redis 消息监听器
├── mapper/ # MyBatis-Plus Mapper 接口与 XML
├── service/ # 业务逻辑接口与实现
└── utils/ # 工具类(Google Storage、JWT、视频缩略图)
| 模块 | 路径前缀 | 说明 |
|---|---|---|
| 登录 | /v2/admin/login |
验证码、登录认证 |
| Dashboard | /v2/dashboard |
数据总览、趋势、任务概览 |
| 用户管理 | /v2/user |
用户列表、状态管理 |
| 用户反馈 | /v2/user/feedback |
反馈列表 |
| 用户消息 | /v2/user/message |
消息列表 |
| 用户问卷 | /v2/user/survey |
问卷列表 |
| 邀请记录 | /v2/user/invite |
邀请记录 |
| 兑换记录 | /v2/user/redemption/record |
兑换记录 |
| 积分流水 | /v2/user/points/record |
积分流水查询 |
| 积分订单 | /v2/user/points/order |
积分订单 |
| 订阅订单 | /v2/user/subscribe/order |
订阅订单 |
| 订单 V2 | /v2/ai/order/v2 |
AI 订单管理 |
| 相册 | /v2/ai/album |
相册管理 |
| 订阅配置 | /v2/ai/subscribe |
订阅套餐 CRUD |
| 模块管理 | /v2/module |
模块 CRUD + 排序 |
| 标签管理 | /v2/tag |
标签 CRUD |
| 风格管理 | /v2/style |
风格模版 CRUD |
| 积分来源配置 | /v2/points/config |
积分来源 CRUD |
| 积分产品 | /v2/points/product |
积分产品 CRUD |
| 兑换码 | /v2/redemption/code |
兑换码 CRUD + 批量生成 |
| 订阅广告 | /v2/subscribe/action |
订阅广告 CRUD |
| 问卷 | /v2/survey |
问卷列表 |
| 文件上传 | /google/upload/img |
上传至 Google Cloud Storage |
| 变量名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
ACTIVE_ENV |
否 | dev |
Spring Profile |
MYSQL_HOST |
否 | 127.0.0.1 |
MySQL 地址 |
MYSQL_PROT |
否 | 3306 |
MySQL 端口 |
MYSQL_DATABASE |
否 | aitori |
数据库名 |
MYSQL_USERNAME |
否 | root |
数据库用户 |
MYSQL_PASSWORD |
是 | - | 数据库密码 |
REDIS_HOST |
否 | 127.0.0.1 |
Redis 地址 |
REDIS_PORT |
否 | 6379 |
Redis 端口 |
REDIS_PASSWORD |
是 | - | Redis 密码 |
KNIFE4J_PASSWORD |
否 | Goodsense1 |
API 文档访问密码 |
# 编译打包
mvn clean package -DskipTests
# 运行
java -jar target/aitori-bi-v2-1.2.1.jar
服务启动后:
80808090(Actuator / Prometheus)http://localhost:8080/doc.html# 构建镜像
docker build -t aitori-bi-v2 .
# 运行容器
docker run -d \
-p 8080:8080 \
-p 8090:8090 \
-e MYSQL_HOST=your-mysql-host \
-e MYSQL_PASSWORD=your-password \
-e REDIS_HOST=your-redis-host \
-e REDIS_PASSWORD=your-redis-password \
aitori-bi-v2
详细接口文档位于 doc/ 目录下,按模块拆分:
LOGIN_API.md - 登录认证USER_API.md - 用户管理AI_ORDER_V2_API.md - AI 订单 V2AI_ALBUM_API.md - 相册管理STYLE_API.md - 风格管理MODULE_API.md - 模块管理TAG_API.md - 标签管理doc/ 目录