|
|
@@ -0,0 +1,135 @@
|
|
|
+# 完全移除Transfer模块外部应用ID字段
|
|
|
+
|
|
|
+## 任务概述
|
|
|
+按照用户要求,完全移除Transfer模块中的外部应用ID(out_id)字段,因为它已经被开放接口ID(out_id2)替代,不做向后兼容。
|
|
|
+
|
|
|
+## 完成时间
|
|
|
+2025-06-18 19:17
|
|
|
+
|
|
|
+## 主要工作
|
|
|
+
|
|
|
+### 1. 数据迁移
|
|
|
+- 将现有的`out_id`数据迁移到`out_id2`字段
|
|
|
+- 执行SQL:`UPDATE kku_transfer_apps SET out_id2 = out_id WHERE out_id != 0 AND out_id2 = 0;`
|
|
|
+- 从数据库表中删除`out_id`字段:`ALTER TABLE kku_transfer_apps DROP COLUMN out_id;`
|
|
|
+
|
|
|
+### 2. 模型层修改
|
|
|
+**TransferApp.php**
|
|
|
+- 移除`@property int $out_id`注释
|
|
|
+- 从`$fillable`数组中移除`out_id`
|
|
|
+- 从`$casts`数组中移除`out_id`
|
|
|
+- 更新注释:`out_id2`改为"开放接口ID"
|
|
|
+
|
|
|
+**TransferOrder.php**
|
|
|
+- 更新注释:`out_id`改为"开放接口ID"(订单表保留此字段,但含义变更)
|
|
|
+
|
|
|
+### 3. DTO层修改
|
|
|
+**TransferAppDto.php**
|
|
|
+- 从构造函数中移除`out_id`参数
|
|
|
+- 从`fromModel`方法中移除`out_id`映射
|
|
|
+- 从`toArray`方法中移除`out_id`字段
|
|
|
+
|
|
|
+### 4. 后台管理界面修改
|
|
|
+**TransferAppHelper.php**
|
|
|
+- 从Grid列表中移除"外部应用ID"列
|
|
|
+- 从Show页面中移除"外部应用ID"字段
|
|
|
+- 从Form表单中移除"外部应用ID"输入框
|
|
|
+- 更新字段说明:
|
|
|
+ - `out_id2`: "开放接口ID,用于API对接"
|
|
|
+ - `out_id3`: "第三方平台ID,用于平台集成"
|
|
|
+
|
|
|
+### 5. 业务逻辑修改
|
|
|
+**TransferLogic.php**
|
|
|
+- 创建订单时使用`$app->out_id2 ?? 0`替代`$app->out_id`
|
|
|
+- 查询订单时使用`$app->out_id2 ?? 0`替代`$app->out_id`
|
|
|
+
|
|
|
+**BusinessIdValidator.php**
|
|
|
+- 验证业务ID时使用`$app->out_id2 ?? 0`替代`$app->out_id`
|
|
|
+
|
|
|
+### 6. 文档更新
|
|
|
+**DATABASE.md**
|
|
|
+- 移除`out_id`字段的表结构定义
|
|
|
+- 更新字段说明,移除外部应用ID相关描述
|
|
|
+- 更新索引说明:`idx_out_id`改为`idx_out_id2`
|
|
|
+
|
|
|
+**optimization.sql**
|
|
|
+- 更新索引创建语句:`idx_transfer_apps_out_id2`
|
|
|
+
|
|
|
+## 验证结果
|
|
|
+
|
|
|
+### 数据库验证
|
|
|
+```sql
|
|
|
+-- 验证数据迁移成功
|
|
|
+SELECT id, keyname, out_id2, out_id3 FROM kku_transfer_apps;
|
|
|
+```
|
|
|
+结果:
|
|
|
+- test_app: out_id2=0, out_id3=0
|
|
|
+- urs: out_id2=1, out_id3=0
|
|
|
+
|
|
|
+### 后台界面验证
|
|
|
+- ✅ 应用列表页面正确显示"开放接口ID"和"三方平台ID"列
|
|
|
+- ✅ 外部应用ID字段完全移除
|
|
|
+- ✅ 编辑页面"外部应用配置"标签页只显示两个字段:
|
|
|
+ - 开放接口ID(用于API对接)
|
|
|
+ - 三方平台ID(用于平台集成)
|
|
|
+- ✅ 创建、编辑、查看功能正常工作
|
|
|
+
|
|
|
+### 功能验证
|
|
|
+- ✅ 应用管理页面:http://kku_laravel.local.gd/admin/transfer/apps
|
|
|
+- ✅ 应用编辑页面:http://kku_laravel.local.gd/admin/transfer/apps/1/edit
|
|
|
+- ✅ 表单提交和数据保存正常
|
|
|
+- ✅ 业务逻辑正确使用开放接口ID
|
|
|
+
|
|
|
+## 技术要点
|
|
|
+
|
|
|
+### 字段含义变更
|
|
|
+- **移除前**:
|
|
|
+ - `out_id`: 外部应用ID(主要)
|
|
|
+ - `out_id2`: 开放接口ID(次要)
|
|
|
+ - `out_id3`: 三方平台ID(可选)
|
|
|
+
|
|
|
+- **移除后**:
|
|
|
+ - `out_id2`: 开放接口ID(主要,用于API对接)
|
|
|
+ - `out_id3`: 三方平台ID(用于平台集成)
|
|
|
+
|
|
|
+### 数据兼容性
|
|
|
+- 现有数据已迁移到`out_id2`字段
|
|
|
+- 订单表的`out_id`字段保留,但现在存储的是开放接口ID值
|
|
|
+- 业务逻辑统一使用`out_id2`作为开放接口ID
|
|
|
+
|
|
|
+### 代码变更模式
|
|
|
+```php
|
|
|
+// 修改前
|
|
|
+'out_id' => $app->out_id,
|
|
|
+
|
|
|
+// 修改后
|
|
|
+'out_id' => $app->out_id2 ?? 0,
|
|
|
+```
|
|
|
+
|
|
|
+## 影响范围
|
|
|
+- ✅ 数据库结构:移除字段,数据已迁移
|
|
|
+- ✅ 模型定义:更新属性和类型转换
|
|
|
+- ✅ DTO对象:移除相关字段
|
|
|
+- ✅ 后台界面:完全移除外部应用ID
|
|
|
+- ✅ 业务逻辑:统一使用开放接口ID
|
|
|
+- ✅ 文档说明:更新字段定义
|
|
|
+
|
|
|
+## 文件变更清单
|
|
|
+- 修改:`app/Module/Transfer/Models/TransferApp.php`
|
|
|
+- 修改:`app/Module/Transfer/Models/TransferOrder.php`
|
|
|
+- 修改:`app/Module/Transfer/Dtos/TransferAppDto.php`
|
|
|
+- 修改:`app/Module/Transfer/AdminControllers/Helper/TransferAppHelper.php`
|
|
|
+- 修改:`app/Module/Transfer/Logics/TransferLogic.php`
|
|
|
+- 修改:`app/Module/Transfer/Services/TransferService.php`
|
|
|
+- 修改:`app/Module/Transfer/Validators/BusinessIdValidator.php`
|
|
|
+- 修改:`app/Module/Transfer/Docs/DATABASE.md`
|
|
|
+- 修改:`app/Module/Transfer/Database/optimization.sql`
|
|
|
+
|
|
|
+## 后续建议
|
|
|
+1. 监控系统运行,确保业务逻辑正常
|
|
|
+2. 如有其他模块引用外部应用ID,需要同步更新
|
|
|
+3. 考虑添加数据验证,确保开放接口ID的唯一性
|
|
|
+4. 可以考虑为开放接口ID添加更严格的业务规则
|
|
|
+
|
|
|
+## 完成状态
|
|
|
+✅ 外部应用ID字段已完全移除,系统正常运行,后台管理功能完整
|