aitori-bi-v2 重构版本

ChenYu d539620d0c feat(build): 添加字体配置支持 há 7 meses atrás
doc 81e02eb49a first commit há 7 meses atrás
docs 81e02eb49a first commit há 7 meses atrás
src d12e6f2add 添加日志信息 há 7 meses atrás
.DS_Store 81e02eb49a first commit há 7 meses atrás
.dockerignore bfa9d153a5 添加执行脚本 há 7 meses atrás
.gitignore 81e02eb49a first commit há 7 meses atrás
Dockerfile d539620d0c feat(build): 添加字体配置支持 há 7 meses atrás
README.md 81e02eb49a first commit há 7 meses atrás
build.sh a704a79fca fix(docker): 修复容器端口映射配置 há 7 meses atrás
pom.xml 81e02eb49a first commit há 7 meses atrás

README.md

Aitori BI V2

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、视频缩略图)

API 模块

模块 路径前缀 说明
登录 /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 文档访问密码

本地开发

前置依赖

  • JDK 21+
  • Maven 3.9+
  • MySQL 8.x
  • Redis 7.x
  • FFmpeg(用于视频缩略图生成)

启动

# 编译打包
mvn clean package -DskipTests

# 运行
java -jar target/aitori-bi-v2-1.2.1.jar

服务启动后:

  • 应用端口:8080
  • 管理端口:8090(Actuator / Prometheus)
  • API 文档:http://localhost:8080/doc.html

Docker 部署

# 构建镜像
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

API 文档

详细接口文档位于 doc/ 目录下,按模块拆分:

  • LOGIN_API.md - 登录认证
  • USER_API.md - 用户管理
  • AI_ORDER_V2_API.md - AI 订单 V2
  • AI_ALBUM_API.md - 相册管理
  • STYLE_API.md - 风格管理
  • MODULE_API.md - 模块管理
  • TAG_API.md - 标签管理
  • 更多文档请参阅 doc/ 目录