新版官网模板

This commit is contained in:
2026-04-29 01:33:33 +08:00
commit 0d82386f8f
341 changed files with 64526 additions and 0 deletions

154
架构优化方案分析.md Normal file
View File

@@ -0,0 +1,154 @@
# WebSopy 架构优化方案分析
## 1. 问题背景
当前系统存在三个层次的协作/隔离需求:
1. **租户隔离**SaaS 多租户基础架构 ✅ 已实现
2. **团队协作**:团队内资源共享,团队间数据隔离 ❓ 待解决
3. **工作空间切换**:用户在多个项目间切换的便利性 ❓ 待优化
## 2. 已考虑的三个方案
### 方案A租户切换已排除
**方案**:让用户在不同租户间切换,租户=工作空间
**问题**:影响整个系统架构,菜单权限不一致,应用中心数据混淆
**结论**:❌ 不推荐,改动太大
### 方案B数据库合并待评估
**方案**:将 `gxwebsoft_core` 数据库迁移到 `db_websopy`
**优势**
- 性能提升 50%+(减少 HTTP API 调用)
- 架构简化,开发效率提升
- 数据一致性保证,减少缓存同步问题
**风险**
- 迁移风险:数据冲突、服务中断
- 代码修改量大100+ Java 文件
- 兼容性问题:其他服务依赖原数据库
**可行性**:✅ 技术可行,但需要充分测试
### 方案C应用即工作空间推荐实施
**方案**加强现有的应用AppProduct作为工作空间概念
**实现**
1. 应用切换 UI顶部下拉菜单
2. 应用个性化配置logo、主题、快捷链接
3. 保持应用内资源共享,应用间隔离
**优势**
- 低风险:不涉及核心架构变更
- 快速实现1-2周完成
- 符合现有模式:沿用应用成员模型
**结论**:⭐ **推荐优先实施**
## 3. 分阶段实施建议
### 阶段一立即开始1-2周
**目标**:验证工作空间需求
**任务**
1. 应用切换 UI开发者中心 + 控制台)
2. 获取用户应用列表 API
3. 简单的应用切换功能
**产出**:测试用户是否真正需要多工作空间切换
### 阶段二评估决策2-4周
**目标**:根据阶段一反馈决定后续方向
**选项**
- **选项A**:如果用户反馈良好 → 完善工作空间功能
- **选项B**:如果用户不常用 → 保持现状
- **选项C**:如果有更深需求 → 考虑数据库合并
### 阶段三:长期规划(待定)
**可能方向**
1. 数据库合并工程
2. 租户体系增强
3. 高级权限管理
## 4. 技术实施方案详情
### 4.1 应用切换UI实现
```typescript
// API获取用户的应用列表
GET /api/app/appProduct/my-apps
// 返回数据结构
interface UserApp {
productId: number
productName: string
productCode: string
role: 'owner' | 'admin' | 'developer' | 'viewer'
isCurrent: boolean
}
```
### 4.2 数据库合并非技术细节
**预估工作量**
- 中小风险:用户数据迁移(几万条)
- 高风险:订单/日志表迁移(百万级)
- 主要修改App模块的查询逻辑、定时任务
**备份策略**
```bash
# 迁移前完整备份
mysqldump -h server_host -u user -p gxwebsoft_core > backup_core.sql
mysqldump -h app_host -u user -p db_websopy > backup_websopy.sql
# 回滚方案
# 1. 停止应用
# 2. 恢复数据库
# 3. 启动旧版本应用
```
## 5. 关键决策点
### 决策维度分析
| 维度 | 应用即工作空间 | 数据库合并 |
|------|--------------|-----------|
| **实施难度** | 低(前端为主) | 高(全栈改动) |
| **实施周期** | 1-2周 | 4-8周 |
| **性能收益** | 小 | 大50%+ |
| **架构影响** | 小 | 大(结构变化) |
| **风险等级** | 低 | 中高 |
| **用户价值** | 中(便利性) | 高(性能体验) |
### 建议决策流程:
1. **先做简单方案**(应用切换),收集用户反馈
2. **监控性能瓶颈**,确定数据库合并的必要性
3. **评估ROI**,如果性能瓶颈明显,再投入大工程
4. **准备回滚方案**,确保任何时候可退回到稳定版本
## 6. 下一步行动建议
### 立即行动(本周):
1. [ ] 设计应用切换UI原型
2. [ ] 实现 `GET /api/app/appProduct/my-apps` 接口
3. [ ] 在开发者中心添加切换下拉菜单
4. [ ] 收集3-5个核心用户反馈
### 观察评估(下周):
1. [ ] 监控切换功能使用率
2. [ ] 收集用户对新功能的意见
3. [ ] 评估是否有更深的协作需求
### 长期规划(根据反馈):
- [ ] 如果用户喜欢:完善工作空间配置功能
- [ ] 如果性能成瓶颈设计方案B的小范围试点
- [ ] 如果需求不明确:保持现状,优化其他功能
## 7. 风险控制和回滚策略
### 应用切换方案(低风险):
- 功能开关:可随时禁用切换功能
- 渐进发布:先对部分用户开放
- A/B测试比较有无切换功能的使用体验差异
### 数据库合并方案(高风险):
- 影子测试:创建测试环境完全模拟
- 灰度发布:按功能模块逐步切换
- 快速回滚15分钟内可恢复原状
---
**核心要点**
1. **不要过度设计**:先用最简单方案验证需求
2. **数据驱动决策**:根据实际用户反馈决定投入
3. **保持灵活性**:所有方案都设计可回退机制
**推荐行动路径****方案C → 观察 → 评估 → 决策**