# 审计之家 · 在线客服系统 · 后端服务 > 基于若依框架(RuoYi)+ Java 17 + WebSocket 构建的即时通讯后端服务 --- ## 📐 系统架构概述 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ 在线客服系统总体架构 │ ├──────────────────┬──────────────────────┬───────────────────────────────────┤ │ 微信小程序端 │ PC 平台坐席端 │ PC 商家端 │ │ pages/chat/ │ pc-web-preview/ │ merchant-chat-pc/ │ │ chat.vue │ ChatWorkbench.vue │ Chat.vue │ ├──────────┬────────┴──────────┬───────────┴─────────┬─────────────────────────┤ │ │ HTTP REST API │ │ │ │ │ WebSocket │ │ │ │ ▼ ▼ ▼ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Spring Boot 后端服务 │ │ │ │ (RuoYi Framework + JDK 17) │ │ │ ├──────────────────────────────────────────────────┤ │ │ │ • 消息服务 (WebSocket + MySQL 持久化) │ │ │ │ • 会话管理服务 │ │ │ │ • 文件上传服务 (MinIO/本地) │ │ │ │ • 坐席管理服务 │ │ │ │ • 订单集成服务 │ │ │ │ • 倒计时业务服务 │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────┼───────────────┐ │ │ ▼ ▼ ▼ │ │ MySQL Redis MinIO │ │ (主数据库) (缓存+会话) (文件存储) │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 🖥️ 技术栈 | 层 | 技术 | 版本 | 说明 | |---|---|---|---| | 后端框架 | Spring Boot | 2.7.x | 基础 Web 框架 | | 开发语言 | Java | JDK 17 | 主开发语言 | | 权限框架 | RuoYi | 3.8.x | 若依企业级快速开发框架 | | 实时通信 | Spring WebSocket | — | 双向实时消息推送 | | 消息代理 | STOMP over WebSocket | — | 消息协议 | | 主数据库 | MySQL | 8.0 | 核心业务数据存储 | | 缓存数据库 | Redis | 7.x | 会话状态、消息队列缓存 | | 文件存储 | MinIO | 最新稳定版 | 图片/附件存储 | | ORM | MyBatis Plus | 3.5.x | 数据库操作 | | 连接池 | Druid | 1.2.x | 数据库连接池 | | API 文档 | Knife4j (Swagger) | 3.x | 在线 API 文档 | | 构建工具 | Maven | 3.8.x | 项目构建 | --- ## 📁 项目结构 ``` backend-service/ ├── README.md # 本文档 ├── docs/ │ ├── API接口文档.md # 完整 REST API 说明 │ ├── WebSocket消息协议.md # WS 消息格式说明 │ ├── 数据库设计.sql # 建表 SQL │ └── 部署运行指南.md # 环境搭建与运行说明 └── ruoyi-chat/ # 若依子模块(聊天业务) ├── pom.xml └── src/main/java/com/ruoyi/chat/ ├── config/ # WebSocket/Redis 配置 ├── controller/ # REST 控制器 ├── domain/ # 实体类 ├── dto/ # 数据传输对象 ├── mapper/ # MyBatis Mapper ├── service/ # 业务逻辑层 └── websocket/ # WebSocket 处理器 ``` --- ## 🚀 快速开始 > 详细步骤请参阅 `docs/部署运行指南.md` ```bash # 1. 确认 JDK 版本 java -version # 需要 JDK 17 # 2. 启动 MySQL(确认数据库已创建并执行 SQL 脚本) # 3. 启动 Redis redis-server # 4. 启动 MinIO(可选,使用本地存储可跳过) minio server /data # 5. 进入项目目录运行 cd ruoyi-chat mvn spring-boot:run # 6. 查看 API 文档 # 浏览器打开: http://localhost:8080/doc.html ```