4.6 KiB
4.6 KiB
UrbanLifeline 到 Pigx 迁移文档总览
📋 文档清单
本目录包含了 UrbanLifeline 系统迁移到 Pigx 平台所需的全部技术文档。
核心文档
| 文档名称 | 文件路径 | 说明 |
|---|---|---|
| 需求文档 | requirements.md | 定义迁移需求,明确创建 pigx-dify 模块 |
| 设计文档 | design.md | 技术设计方案,包含 pigx-dify 模块架构 |
| 任务清单 | tasks.md | 详细的迁移任务列表,包含 AI 模块迁移步骤 |
技术指南
| 文档名称 | 文件路径 | 用途 |
|---|---|---|
| 权限映射表 | permission-mapping.md | 权限标识从 urbanLifeline 到 pigx 的映射对照 |
| 权限注解转换指南 | permission-annotation-guide.md | @PreAuthorize 到 @pms.hasPermission 的转换方法 |
| 用户服务配置指南 | security-config-guide.md | SecurityUtils 和 RemoteUserService 的使用说明 |
| 数据库迁移脚本 | database-migration-script.md | PostgreSQL 到 MySQL 的完整迁移 SQL |
| 租户隔离指南 | tenant-isolation-guide.md | 多租户字段添加和隔离实现方案 |
| Dify模块架构 | pigx-dify-architecture.md | 新建 pigx-dify 模块的详细架构设计 |
🎯 迁移要点总结
1. 核心变更
- ✅ 创建独立的 pigx-dify 模块承载 AI 功能
- ✅ 保留原有 Dify API 集成方式
- ✅ 权限体系完全适配 pigx(@pms.hasPermission)
- ✅ 所有业务表添加 tenant_id 实现多租户隔离
- ✅ 数据库从 PostgreSQL 迁移到 MySQL
2. 模块分布
| 模块 | 目标位置 | 状态 |
|---|---|---|
| 工单 (workcase) | pigx-app-server-biz | 待迁移 |
| 招标 (bidding) | pigx-app-server-biz | 待迁移 |
| 平台管理 (platform) | pigx-app-server-biz | 待迁移 |
| AI功能 (ai) | pigx-dify(新建) | 待迁移 |
| 消息 (message) | pigx-app-server-biz | 待迁移 |
3. 关键技术适配
权限转换
// 原系统
@PreAuthorize("hasAuthority('workcase:ticket:create')")
// 新系统
@PreAuthorize("@pms.hasPermission('workcase_ticket_add')")
用户信息获取
// 原系统
JwtUtils.getUserId()
// 新系统
SecurityUtils.getUser().getId()
响应格式
// 原系统
ResultDomain.success(data)
// 新系统
R.ok(data)
📝 使用指南
第一步:理解需求和设计
- 阅读 requirements.md 了解迁移需求
- 阅读 design.md 理解技术方案
- 查看 pigx-dify-architecture.md 了解 AI 模块设计
第二步:准备迁移
- 使用 tasks.md 作为任务清单
- 参考 permission-mapping.md 准备权限映射
- 阅读 database-migration-script.md 准备数据库
第三步:执行迁移
- 按照 permission-annotation-guide.md 转换权限注解
- 根据 security-config-guide.md 配置用户服务
- 使用 tenant-isolation-guide.md 实现租户隔离
第四步:验证测试
- 验证权限控制正确性
- 测试租户数据隔离
- 确认 Dify 集成正常
- 检查所有功能模块
🔧 工具和脚本
批量权限转换
# 权限注解批量替换
find . -name "*.java" -exec sed -i \
's/@PreAuthorize("hasAuthority(\x27\([^:]*\):\([^:]*\):\([^x27]*\)\x27)")/@PreAuthorize("@pms.hasPermission(\x27\1_\2_\3\x27)")/g' {} \;
数据库迁移
-- 执行顺序
1. 创建 MySQL 数据库结构
2. 添加 tenant_id 字段
3. 迁移业务数据
4. 建立用户映射关系
5. 验证数据完整性
📊 迁移进度跟踪
使用 tasks.md 中的任务清单跟踪进度:
- 基础设施准备
- 权限体系迁移
- 数据库迁移
- 后端代码迁移
- 前端页面迁移
- 集成测试
- 上线部署
🚨 重要提醒
- 数据备份:迁移前必须完整备份所有数据
- 权限测试:每个模块迁移后都要测试权限控制
- 租户隔离:确保所有查询都包含租户条件
- Dify配置:保存好 Dify API Key 和配置信息
- 回滚方案:准备好回滚脚本和流程
📞 支持与反馈
如有问题,请参考相应的技术指南文档,或联系技术支持团队。
最后更新时间:2024年