# DGTS-Distributed **Repository Path**: SxiHash/dgts-distributed ## Basic Information - **Project Name**: DGTS-Distributed - **Description**: 数据商品交易系统(分布式系统升级版) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Digital-Goods-Trading-System(DGTS)分布式数字商品交易系统 ## 项目介绍 基于 **Spring Cloud Alibaba + Vue 3 + Vite + MyBatis-Plus + Redis** 的数字商品交易系统。采用前后端分离 + 微服务架构,支持管理员、审核员、客服、用户等多角色参与,实现了数字商品(压缩包、图片、音频文件等)的发布、审核、交易、即时通讯全流程管理。 ## 技术栈 ### 后端微服务 | 服务 | 端口 | 说明 | |------|------|------| | gateway-service | 8080 | Spring Cloud Gateway 网关,统一路由、JWT 鉴权、跨域处理 | | user-service | 8082 | 用户服务:注册、登录、个人信息、实名认证 | | goods-service | 8083 | 商品服务:商品发布、分类、搜索、审核 | | order-service | 8081 | 订单服务:下单、支付、订单状态流转 | | cart-service | 8081 | 购物车服务:纯 Redis 存储,支持增删改查 | | chat-service | 8086 | 聊天服务:WebSocket 即时通讯、聊天室管理、消息已读 | | ai-service | 8089 | AI 服务:LangChain4j 智能客服、AI 助手配置 | | file-service | 8088 | 文件服务:本地/OSS 存储、图片上传、缩略图生成 | | points-service | - | 积分服务:积分账户、积分流水 | | social-service | - | 社交服务:收藏、订阅、反馈、举报、审核记录 | | business-service | - | 业务聚合服务:部分遗留业务接口 | | common / common-api | - | 公共模块、Feign 接口与降级定义 | ### 基础设施 - **Nacos** — 服务注册与配置中心 - **MySQL 8.0** — 关系型数据库 - **Redis** — 缓存、会话、购物车、消息队列、发布订阅 - **Nginx** — 反向代理、静态资源、WebSocket 转发 - **Docker & Docker Compose** — 容器化部署 ### 前端 - **Vue 3 + Vite** — 构建工具与框架 - **Vant 4** — 移动端 UI 组件库 - **Element Plus** — 管理端 UI 组件库 - **Axios** — HTTP 请求 - **Vue Router 4** — 路由管理 ## 系统架构 ``` ┌──────────────────────────────────────────────────────────────┐ │ Nginx (80) │ │ 静态资源 │ /api/ → Gateway │ /ws/ → Gateway │ └──────────────────────────────────────────────────────────────┘ │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌─────────────────┐ ┌──────────────┐ ┌──────────────┐ │ Vue 3 前端 │ │ Gateway │ │ Nacos │ │ (Vite 构建) │ │ (8080) │ │ (8848) │ └─────────────────┘ └──────────────┘ └──────────────┘ │ ┌─────────┬───────────┼───────────┬─────────┐ ▼ ▼ ▼ ▼ ▼ ┌────────┐ ┌───────┐ ┌──────────┐ ┌────────┐ ┌────────┐ │ user │ │ goods │ │ order │ │ chat │ │ file │ │ (8082) │ │(8083) │ │ (8081) │ │ (8086) │ │ (8088) │ └────────┘ └───────┘ └──────────┘ └────────┘ └────────┘ ▼ ▼ ▼ ▼ ▼ ┌──────────────────────────────────────────────────────┐ │ MySQL (3306) │ Redis (6379) │ └──────────────────────────────────────────────────────┘ ``` ## 功能模块 ### 用户端(移动端 H5) - **游客**:浏览商品、搜索、查看详情、注册/登录 - **普通用户**:个人信息、收藏、订阅、购物车、订单、私信、系统通知、反馈举报 - **认证用户**:发布商品、商品管理、查看买家订单、设置重复购买、AI 助手 ### 管理端(PC) - **管理员**:用户管理、商品审核、订单管理、分类管理、反馈管理、积分管理、文件/OSS 管理、通知发布、AI 服务配置 - **审核员**:商品审核(通过/驳回) - **客服**:处理用户反馈与举报 ### 核心特性 1. **即时通讯** — WebSocket 实时消息,Redis 双写缓存,已读/未读状态,AI 自动回复 2. **智能客服** — LangChain4j AI 助手,卖家离线时自动介入,支持 AI 服务管理后台配置 3. **微服务网关** — Spring Cloud Gateway 统一鉴权、路由、限流 4. **文件存储** — 支持本地磁盘 + 阿里云 OSS + 腾讯云 COS,图片自动缩略图 5. **积分系统** — 积分账户与流水记录 6. **容器化部署** — 一键 `docker-compose up` 启动全部服务 ## 项目结构 ``` Digital-Goods-Trading-System/ ├── backend/ # 后端微服务 │ ├── gateway-service/ # 网关 │ ├── user-service/ # 用户 │ ├── goods-service/ # 商品 │ ├── order-service/ # 订单 │ ├── cart-service/ # 购物车(Redis) │ ├── chat-service/ # 聊天/WebSocket │ ├── ai-service/ # AI 助手 │ ├── file-service/ # 文件/OSS │ ├── points-service/ # 积分 │ ├── social-service/ # 收藏/订阅/反馈 │ ├── business-service/ # 业务聚合 │ ├── common/ # 公共工具类 │ └── common-api/ # Feign 接口与 DTO ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── api/ # 接口封装 │ │ ├── views/ # 页面(mobile/admin/auditor/customer) │ │ ├── components/ # 公共组件 │ │ └── utils/ # 工具(WebSocket、事件总线等) │ └── vite.config.js ├── database/ # SQL 初始化脚本 ├── deploy/ # Docker Compose 部署 │ ├── docker-compose.yml │ ├── nginx/ │ └── mysql/init/ └── docs/ # 文档 ``` ## 快速开始 ### 方式一:Docker Compose 一键部署(推荐) ```bash cd deploy docker-compose up -d ``` 服务启动后访问: - 前端:`http://localhost` - Nacos:`http://localhost:8848/nacos` ### 方式二:本地开发 **环境要求** - JDK 17+ - Node.js 18+ - MySQL 8.0+ - Redis 6.0+ - Maven 3.6+ **1. 数据库** ```sql -- 执行 database/digital_goods_db.sql 与 database/file_service_db.sql ``` **2. 启动后端** ```bash cd backend mvn clean install -DskipTests # 依次启动各服务,或从 IDE 启动 ``` **3. 启动前端** ```bash cd frontend npm install npm run dev ``` ## WebSocket 连接 ``` ws://localhost/ws/chat?userId={userId} ``` 经由 Nginx → Gateway (8080) → chat-service (8086) ## 注意事项 - 密码使用 BCrypt (`$2a$` 前缀) 加密存储 - 购物车数据完全存储于 Redis Hash,不持久化到 MySQL - 聊天消息采用 MySQL + Redis 双写策略,首次加载走 Redis,历史消息兜底 MySQL - AI 自动回复仅在接收方离线时触发,且 `aiReply=1` 的消息不会再次触发 AI ## 许可证 MIT License