# Ebusiness **Repository Path**: loopisme/Ebusiness ## Basic Information - **Project Name**: Ebusiness - **Description**: 电商运营平台,搭建中 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-08-27 - **Last Updated**: 2026-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ebusiness > 本仓库包含 **两套相互独立的项目**,统一用一套 Docker Compose 环境启动。 | # | 项目 | 类型 | 目录 | 访问地址 | |---|---|---|---|---| | ① | **云枢镜 (YunShuJing)** | Spring Boot 3 + Vue 3 全栈 | `yunshujing/` | 前端 http://localhost:9800 · 后端 http://localhost:9801 | | ② | **拾光商城** | 纯静态 HTML 原型 | `prototype/` | http://localhost:8080 | --- ## 一、快速开始(Docker,推荐) ### 1. 准备环境变量 ```powershell cp .env.example .env ``` 不配置也能启动:AI 功能会退化(使用占位 Key),其余功能正常。**生产环境务必修改 `JWT_SECRET`。** ### 2. 构建并启动 ```powershell docker compose up -d --build ``` 首次构建较慢(Maven 拉依赖 + npm 装包),约 5~15 分钟。 ### 3. 确认状态 ```powershell docker compose ps ``` `yunshujing-backend` 的 STATUS 变为 `healthy` 后即可访问(首次启动 Flyway 会自动建表并写入种子数据,约需 1~2 分钟)。 | 服务 | 地址 | 说明 | |---|---|---| | 云枢镜前端 | http://localhost:9800 | 主系统入口,默认账号 `admin` / `yunshujing@123` | | 云枢镜后端 | http://localhost:9801 | Swagger: http://localhost:9801/swagger-ui.html | | 拾光商城原型 | http://localhost:8082 | 静态演示页(默认避让常被占用的 8080/8081) | ### 4. 常用命令 ```powershell docker compose logs -f backend # 看后端日志 docker compose restart backend # 重启单个服务 docker compose down # 停止(数据卷保留) docker compose down -v # 停止并删除数据卷 —— 会清空 SQLite 数据! docker compose up -d --build backend # 只重建后端 ``` ### 5. 数据持久化 SQLite 库与上传文件位于容器 `/app/data`,已挂载到命名卷 `yunshujing-data`: ``` /app/data/yunshujing.db ← 数据库(首次启动由 Flyway V1~V11 自动建表) /app/data/files/ ← 上传文件 ``` **只要不执行 `down -v`,数据就不会丢。** --- ## 二、本地开发(不使用 Docker) ### 2.1 云枢镜后端 ```bash cd yunshujing/backend mvn spring-boot:run # 或 mvn -DskipTests clean package 后 java -jar target/actp-yunshujing-backend.jar ``` - 端口 **9801**,数据库文件 `yunshujing/backend/data/yunshujing.db` - JDK 17 + Maven 3.9+ ### 2.2 云枢镜前端 ```bash cd yunshujing/frontend npm install npm run dev # 端口 9800,/api 由 vite 代理到 9801 npm run build:prod # 产物输出到 dist/ ``` > 注意:`src/utils/request.js` 的 API 基址默认为相对路径 `/api`,本地 dev 由 vite 代理转发,容器内由 nginx 转发。需要直连后端时用 `VITE_API_BASE_URL` 覆盖。 ### 2.3 拾光商城原型 直接双击 `prototype/index.html`,或: ```powershell cd prototype python -m http.server 8000 ``` --- ## 三、目录结构 ``` Ebusiness/ ├── docker-compose.yml # 一体化编排(backend + frontend + prototype) ├── .env.example # 环境变量模板(复制为 .env 使用) ├── README.md │ ├── yunshujing/ # 云枢镜:运营(ops) + 客服(cs) 系统 │ ├── backend/ # Spring Boot 3.5.14 + MyBatis-Plus + SQLite + Flyway │ │ ├── Dockerfile # maven 构建 -> temurin:17-jre 运行 │ │ ├── .dockerignore │ │ ├── pom.xml │ │ ├── data/ # 运行时数据(已 gitignore,容器内由 volume 挂载) │ │ └── src/ │ │ ├── main/java/com/yunshujing/{common,security,ops,cs} │ │ └── main/resources/{application.yml, db/migration, mapper, prompts} │ └── frontend/ # Vue 3.5 + Vite 6 + Element Plus + Pinia │ ├── Dockerfile # node 构建 -> nginx 托管 │ ├── nginx.conf # SPA 回退 + /api 反代到 backend:9801 │ └── src/{api,views,router,store,layout,utils} │ ├── prototype/ # 拾光商城静态原型 │ ├── Dockerfile # nginx 托管 │ ├── nginx.conf │ ├── index.html # 首页(AI 个性化推荐) │ ├── category.html # 全部商品 │ ├── product.html # 商品详情 │ ├── ai-recommend.html # AI 智能推荐(自然语言搜索 + 价格预测) │ ├── cart.html # 购物车 │ ├── profile.html # 个人中心 │ ├── orders.html # 我的订单 │ ├── recruit.html # 招商中心 │ ├── styles.html # 风格预览(4 种风格) │ ├── css/ js/ │ └── merchant-portal/ # 商家中心 11 个页面 │ └── docs/ # 文档 └── ops-搬运报告.md ``` --- ## 四、环境变量 | 变量 | 默认值 | 说明 | |---|---|---| | `OPENAI_API_KEY` | `sk-placeholder` | AI 功能密钥,不填则 AI 能力不可用 | | `OPENAI_BASE_URL` | `https://api.openai.com/v1` | AI 接口地址 | | `JWT_SECRET` | `yunshujing-dev-secret-...` | **生产必须修改**,至少 32 字节 | | `JAVA_OPTS` | `-Xms512m -Xmx1024m` | 后端 JVM 参数 | | `BACKEND_PORT` | `9801` | 后端宿主机端口 | | `FRONTEND_PORT` | `9800` | 前端宿主机端口 | | `PROTOTYPE_PORT` | `8080` | 原型宿主机端口 | --- ## 五、默认账号 | 账号 | 密码 | 角色 | |---|---|---| | `admin` | `yunshujing@123` | 超管 | | `student001` | `yunshujing@123` | 学生 | | `teacher001` | `yunshujing@123` | 教师 | --- ## 六、已知遗留问题 | 问题 | 位置 | 建议 | |---|---|---| | 残留 ACTP 启动类与注册中心注解 | `backend/src/main/java/com/yunshujing/{ops,cs}/ACTP*Application.java` | 删除,只保留 `YunShuJingApplication` | | `@FeignClient` 远程调用 | `backend/.../cs/feign/` | 改为本地 `@Service` 实现 | | MySQL 方言 SQL | 部分 Mapper XML(`GROUP_CONCAT`、`DATE_FORMAT` 等) | ✅ 已替换为 SQLite 等价写法(V6~V11 一并处理) | | 前端旧路径引用 | `@/api/mnyy`、`@/api/mnkf` | ✅ 已批量替换 | | ~~`backend/_excluded/` 废弃文件~~ | — | ✅ 已删除(git 历史可追溯) | | ~~`tools/` 一次性脚本~~ | — | ✅ 已删除(git 历史可追溯) | | ~~`data/yunshujing.db` 在版本库~~ | — | ✅ 已移出版本库(本地文件保留) | | 只读业务表数据为空 | `mnzb_*`、`mnyy_mgmt_*` 等 | 数据由原 ACTP 平台产生,如需展示需从原库导出导入 | | stub 接口待真实实现 | `OpsMgmtStubController`、`CsMiscStubController` | 返回空数据/501,页面可渲染;按业务需要逐步替换 | > 拾光商城原型的图片全部外链 `images.unsplash.com`,离线环境会缺图,不影响页面结构。