Files
chuanggao-website/技术资产参考文档.md

221 lines
6.6 KiB
Markdown
Raw Normal View History

2026-05-12 16:53:18 +08:00
# 萨格官网技术资产参考文档
> 本文档用于指导创高家具官网(新项目)的开发,基于萨格官网现有技术架构整理。
---
## 一、技术栈总览
| 层级 | 技术选型 | 关键路径 |
|------|----------|----------|
| 前端 | 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*
*基于项目:萨格官网(工控行业)*
*目标项目:创高官网(家具行业)*