221 lines
6.6 KiB
Markdown
221 lines
6.6 KiB
Markdown
|
|
# 萨格官网技术资产参考文档
|
|||
|
|
|
|||
|
|
> 本文档用于指导创高家具官网(新项目)的开发,基于萨格官网现有技术架构整理。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、技术栈总览
|
|||
|
|
|
|||
|
|
| 层级 | 技术选型 | 关键路径 |
|
|||
|
|
|------|----------|----------|
|
|||
|
|
| 前端 | Vue 3 + Vite + Element Plus + vue-i18n | 入口 `client/`,构建输出 `client/dist` |
|
|||
|
|
| 后端 | Spring Boot 3 + MyBatis + MySQL + Druid | 统一接口前缀 `/api`(context-path) |
|
|||
|
|
| 安全认证 | Sa-Token + Redis | 会话管理 |
|
|||
|
|
| 文件存储 | MinIO / 本地磁盘 | 推荐生产用 MinIO 独立 bucket |
|
|||
|
|
| 部署 | Nginx 反向代理 | `/`→前端静态文件,`/api`→后端服务 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、数据库规范
|
|||
|
|
|
|||
|
|
### 2.1 命名规范
|
|||
|
|
- **表前缀**:`f_`
|
|||
|
|
- **业务库名示例**:`wuhan_saga`(萨格)、`chuanggao_furniture`(创高家具)
|
|||
|
|
- **全量 DDL**:`server/src/main/resources/schema.sql`
|
|||
|
|
- **补丁脚本**:`database/` 目录
|
|||
|
|
|
|||
|
|
### 2.2 核心表分类
|
|||
|
|
|
|||
|
|
| 类型 | 表示例 | 说明 |
|
|||
|
|
|------|--------|------|
|
|||
|
|
| 公司信息 | `f_company` | 站点基础信息配置 |
|
|||
|
|
| 轮播管理 | `f_carousel` | 首页轮播图 |
|
|||
|
|
| 内容管理 | `f_news`、`f_news_cat` | 新闻及分类 |
|
|||
|
|
| 产品体系 | `f_product_cat`、`f_product`、`f_spare_part` | 产品分类/整线/单体/备件 |
|
|||
|
|
| 案例展示 | `f_case`、`f_case_cat` | 案例及分类 |
|
|||
|
|
| 技术文章 | `f_technology` | 技术文档 |
|
|||
|
|
| 媒体库 | `f_media_library` | 统一上传文件管理 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、多站点机制(Site Code)
|
|||
|
|
|
|||
|
|
### 3.1 设计目的
|
|||
|
|
通过 `site_code` 实现同一套代码服务不同品牌站点,数据逻辑隔离。
|
|||
|
|
|
|||
|
|
### 3.2 配置位置
|
|||
|
|
|
|||
|
|
**后端(application.yml)**
|
|||
|
|
```yaml
|
|||
|
|
app:
|
|||
|
|
portal:
|
|||
|
|
site-code: saga # 当前实例服务站点
|
|||
|
|
allowed-site-codes: # 允许前台访问的站点白名单
|
|||
|
|
- saga
|
|||
|
|
- cg
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**前端(.env.production)**
|
|||
|
|
```
|
|||
|
|
VITE_PORTAL_SITE_CODE=saga # 与后端 site-code 对齐
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.3 数据隔离方式
|
|||
|
|
- **共用表**(如新闻、分类):带 `site_code` 字段,查询时自动过滤
|
|||
|
|
- **独立表**(如公司信息、产品):每站一条记录,天然隔离
|
|||
|
|
|
|||
|
|
### 3.4 接口规范
|
|||
|
|
```
|
|||
|
|
前台只读接口:/portal/news、/portal/case、/portal/case/category
|
|||
|
|
管理端接口:/admin/**(需登录 Sa-Token)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、附件存储规范
|
|||
|
|
|
|||
|
|
### 4.1 存储模式
|
|||
|
|
|
|||
|
|
| 模式 | 配置项 | 说明 |
|
|||
|
|
|------|--------|------|
|
|||
|
|
| 本地磁盘 | `upload.storage=local` | 写入 `upload.path` 指定目录 |
|
|||
|
|
| MinIO | `upload.storage=minio` | 走 MinIO 对象存储 |
|
|||
|
|
|
|||
|
|
### 4.2 MinIO 配置(推荐生产用)
|
|||
|
|
```yaml
|
|||
|
|
upload:
|
|||
|
|
storage: minio
|
|||
|
|
|
|||
|
|
minio:
|
|||
|
|
endpoint: http://minio-server:9000
|
|||
|
|
access-key: ${MINIO_ACCESS_KEY}
|
|||
|
|
secret-key: ${MINIO_SECRET_KEY}
|
|||
|
|
bucket: saga-prod # 创高项目建议换独立 bucket
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.3 路径规范
|
|||
|
|
- 库中存储路径:`/uploads/分类/文件名`(如 `/uploads/news/2024/abc.jpg`)
|
|||
|
|
- 前端访问方式:通过 `/api` + 该路径(Nginx 反代到后端或 MinIO)
|
|||
|
|
- **注意**:不必把 MinIO 直出给浏览器,统一走 `/api` 保持灵活性
|
|||
|
|
|
|||
|
|
### 4.4 迁移脚本
|
|||
|
|
- 本地 uploads 同步到 MinIO:`scripts/sync-uploads-to-minio.ps1`
|
|||
|
|
- 部署文档:`server/deploy/MINIO_DEPLOY.md`
|
|||
|
|
- 配置示例:`server/deploy/minio-spring-config.example.yml`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、部署架构
|
|||
|
|
|
|||
|
|
### 5.1 Nginx 配置模板
|
|||
|
|
```nginx
|
|||
|
|
server {
|
|||
|
|
listen 80;
|
|||
|
|
server_name www.chuanggao.com;
|
|||
|
|
|
|||
|
|
# 前端静态资源
|
|||
|
|
location / {
|
|||
|
|
root /var/www/chuanggao-website/client/dist;
|
|||
|
|
try_files $uri $uri/ /index.html;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 后端 API
|
|||
|
|
location /api {
|
|||
|
|
proxy_pass http://localhost:8080/api;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.2 部署目录结构(建议)
|
|||
|
|
```
|
|||
|
|
/opt/chuanggao-website/
|
|||
|
|
├── client/dist/ # 前端构建产物
|
|||
|
|
├── server.jar # 后端可执行 jar
|
|||
|
|
├── upload/ # 本地存储模式用(如选 MinIO 可省略)
|
|||
|
|
└── logs/ # 应用日志
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、开发环境配置
|
|||
|
|
|
|||
|
|
### 6.1 前端代理(vite.config.ts)
|
|||
|
|
```typescript
|
|||
|
|
server: {
|
|||
|
|
proxy: {
|
|||
|
|
'/api': {
|
|||
|
|
target: 'http://localhost:8080',
|
|||
|
|
changeOrigin: true
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6.2 后端跨域(开发时)
|
|||
|
|
- 由 Vite 代理解决,后端无需额外 CORS 配置
|
|||
|
|
- 生产环境同域部署,无跨域问题
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、创高家具站适配清单(A方案:独立库)
|
|||
|
|
|
|||
|
|
### 7.1 必须修改的文件
|
|||
|
|
|
|||
|
|
| 文件路径 | 修改内容 |
|
|||
|
|
|----------|----------|
|
|||
|
|
| `server/pom.xml` | `artifactId` 改为 `chuanggao-furniture`,`name` 改为"创高家具官网" |
|
|||
|
|
| `server/src/main/resources/application.yml` | 库名 `chuanggao_furniture`、MinIO bucket `chuanggao-furniture-prod`、site-code `cg` |
|
|||
|
|
| `server/src/main/resources/schema.sql` | 新公司信息、家具分类种子数据(沙发/床垫/全屋等) |
|
|||
|
|
| `client/.env.production` | `VITE_PORTAL_SITE_CODE=cg` |
|
|||
|
|
| `client/index.html` | 页面标题改为"创高家具" |
|
|||
|
|
| `client/src/locales/zh-cn.ts` | 替换所有"萨格"专有文案 |
|
|||
|
|
| `client/src/views/home/` | 首页模块重组(轮播、品类入口、品牌故事、门店/活动) |
|
|||
|
|
|
|||
|
|
### 7.2 建议删减的模块(工控专用)
|
|||
|
|
- 技术文章模块(`f_technology`)
|
|||
|
|
- 工控案例体系(`f_case` 中的工业场景)
|
|||
|
|
- 复杂的备件体系(`f_spare_part` 简化)
|
|||
|
|
|
|||
|
|
### 7.3 建议新增的模块(家具专用)
|
|||
|
|
- 门店/卖场分布(新表 `f_store`)
|
|||
|
|
- 促销活动(新表 `f_promotion`)
|
|||
|
|
- 品牌合作展示(新表 `f_partner`)
|
|||
|
|
- 全屋定制方案(扩展产品体系)
|
|||
|
|
|
|||
|
|
### 7.4 品牌视觉调整
|
|||
|
|
- 主色从"工业蓝"改为"暖色/木色"(家具城常见风格)
|
|||
|
|
- Logo 替换为创高品牌标识
|
|||
|
|
- 首页布局弱化技术感,强化"舒适、品质、生活场景"
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、关键文档/脚本索引
|
|||
|
|
|
|||
|
|
| 用途 | 路径 |
|
|||
|
|
|------|------|
|
|||
|
|
| MinIO 部署指南 | `server/deploy/MINIO_DEPLOY.md` |
|
|||
|
|
| MinIO 配置示例 | `server/deploy/minio-spring-config.example.yml` |
|
|||
|
|
| 本地同步到 MinIO | `scripts/sync-uploads-to-minio.ps1` |
|
|||
|
|
| 数据库全量 DDL | `server/src/main/resources/schema.sql` |
|
|||
|
|
| 数据库补丁 | `database/` |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 九、决策确认(创高项目)
|
|||
|
|
|
|||
|
|
| 决策项 | 选择 |
|
|||
|
|
|--------|------|
|
|||
|
|
| 数据库方案 | **A方案:独立库**(新 schema,干净无历史数据) |
|
|||
|
|
| 仓库策略 | Fork 后独立维护(改 artifact、项目名、文案) |
|
|||
|
|
| 首页模块 | 轮播 + 品类入口 + 品牌故事 + 门店/活动 |
|
|||
|
|
| MinIO | 独立 bucket `chuanggao-furniture-prod` |
|
|||
|
|
| 双语支持 | 待定(先确认创高品牌定位) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*文档创建时间:2026-05-08*
|
|||
|
|
*基于项目:萨格官网(工控行业)*
|
|||
|
|
*目标项目:创高官网(家具行业)*
|