# 删除推广订单功能计划 ## 目标 删除后台以及后端中promotion(推广订单)相关功能,但**保留推广数据分析和推广链接管理**功能。 ## 功能区分 ### ✅ 需要保留的功能 1. **推广链接管理** - 创建推广链接 - 更新推广链接 - 删除推广链接 - 获取推广链接列表 - 获取推广链接详情 - 记录链接点击 2. **推广数据分析** - 获取推广总统计 - 获取推广历史记录 ### ❌ 需要删除的功能 1. **推广订单功能** - AdminPromotionOrder 模型及相关代码 - 订单管理中的 IsPromotion 字段 - 订单创建/更新/删除中的推广订单逻辑 - 前端订单管理中的推广订单字段 --- ## 详细删除计划 ### 阶段一:后端代码清理 #### 1.1 删除推广订单模型文件 - [ ] 删除 `ycc-proxy-server/app/main/model/adminPromotionOrderModel.go` - [ ] 删除 `ycc-proxy-server/app/main/model/adminPromotionOrderModel_gen.go` - [ ] 确认 `ycc-proxy-server/deploy/script/gen_models.ps1` 中 `admin_promotion_order` 已被注释(第57行,已确认已注释) #### 1.2 从 ServiceContext 中移除推广订单模型 - [ ] 从 `ycc-proxy-server/app/main/api/internal/svc/servicecontext.go` 中删除: - `AdminPromotionOrderModel` 字段声明 - `AdminPromotionOrderModel` 初始化代码 #### 1.3 修改订单管理相关逻辑 **文件:`ycc-proxy-server/app/main/api/internal/logic/admin_order/admincreateorderlogic.go`** - [ ] 删除 `IsPromotion` 字段处理逻辑(第75-87行) - [ ] 删除 `AdminPromotionOrderModel` 的引用 **文件:`ycc-proxy-server/app/main/api/internal/logic/admin_order/adminupdateorderlogic.go`** - [ ] 删除推广订单状态处理逻辑(第79-101行) - [ ] 删除 `AdminPromotionOrderModel` 的引用 **文件:`ycc-proxy-server/app/main/api/internal/logic/admin_order/admindeleteorderlogic.go`** - [ ] 删除删除推广订单记录的逻辑(第44-51行) - [ ] 删除 `AdminPromotionOrderModel` 的引用 **文件:`ycc-proxy-server/app/main/api/internal/logic/admin_order/admingetorderlistlogic.go`** - [ ] 删除 `IsPromotion` 查询条件(第57-59行) - [ ] 删除判断是否为推广订单的逻辑(第277-280行) - [ ] 删除返回结果中的 `IsPromotion` 字段赋值 **文件:`ycc-proxy-server/app/main/api/internal/logic/admin_order/admingetorderdetaillogic.go`** - [ ] 删除判断是否为推广订单的逻辑(第43-47行) - [ ] 删除返回结果中的 `IsPromotion` 字段赋值(第121行) #### 1.4 修改 API 定义文件 **文件:`ycc-proxy-server/app/main/api/desc/admin/order.api`** - [ ] 从 `AdminGetOrderListReq` 中删除 `IsPromotion` 字段(第56行) - [ ] 从 `AdminGetOrderListResp` 的 `OrderItem` 中删除 `IsPromotion` 字段(第83行) - [ ] 从 `AdminGetOrderDetailResp` 中删除 `IsPromotion` 字段(第105行) - [ ] 从 `AdminCreateOrderReq` 中删除 `IsPromotion` 字段(第119行) - [ ] 从 `AdminUpdateOrderReq` 中删除 `IsPromotion` 字段(第137行) #### 1.5 修改 Types 定义 **文件:`ycc-proxy-server/app/main/api/internal/types/types.go`** - [ ] 从 `AdminGetOrderListReq` 中删除 `IsPromotion` 字段 - [ ] 从 `AdminGetOrderListResp` 的 `OrderItem` 中删除 `IsPromotion` 字段 - [ ] 从 `AdminGetOrderDetailResp` 中删除 `IsPromotion` 字段 - [ ] 从 `AdminCreateOrderReq` 中删除 `IsPromotion` 字段 - [ ] 从 `AdminUpdateOrderResp` 中删除 `IsPromotion` 字段 #### 1.6 重新生成代码 - [ ] 运行 `goctl api go -api desc/admin/order.api -dir . -style gozero` - [ ] 检查生成的代码是否正确 --- ### 阶段二:前端代码清理 #### 2.1 修改订单管理页面 **文件:`ycc-proxy-admin/apps/web-antd/src/views/order/order/data.ts`** - [ ] 删除推广订单列定义(第110-121行) - [ ] 删除表单中的推广订单字段(第224-225行) **文件:`ycc-proxy-admin/apps/web-antd/src/api/order/order.ts`** - [ ] 从接口类型定义中删除 `is_promotion` 字段(第19行) #### 2.2 检查其他前端文件 - [ ] 搜索前端代码中是否还有其他地方引用了 `is_promotion` 或 `IsPromotion` - [ ] 删除所有相关引用 --- ### 阶段三:数据库清理(可选) #### 3.1 数据库表处理 - [ ] 确认是否删除 `admin_promotion_order` 表 - 如果保留历史数据,可以保留表但不使用 - 如果需要完全清理,可以执行删除表的SQL #### 3.2 数据库迁移脚本(如需要) - [ ] 创建迁移脚本,删除 `admin_promotion_order` 表(如果决定删除) --- ### 阶段四:验证和测试 #### 4.1 功能验证 - [ ] 验证推广链接管理功能正常 - [ ] 验证推广数据分析功能正常 - [ ] 验证订单创建功能正常(不再有推广订单选项) - [ ] 验证订单更新功能正常(不再有推广订单选项) - [ ] 验证订单列表查询功能正常(不再显示推广订单字段) - [ ] 验证订单详情查看功能正常(不再显示推广订单字段) #### 4.2 代码检查 - [ ] 运行 `go build` 确保后端代码编译通过 - [ ] 运行前端构建确保前端代码正常 - [ ] 检查是否有编译错误或警告 - [ ] 检查是否有未使用的导入 --- ## 注意事项 1. **保留的功能不受影响** - 推广链接管理(`AdminPromotionLink`)完全保留 - 推广数据分析(`AdminPromotionLinkStatsTotal`, `AdminPromotionLinkStatsHistory`)完全保留 - 记录链接点击功能完全保留 2. **数据库表处理** - `admin_promotion_order` 表可以保留(用于历史数据),但不再使用 - 或者完全删除该表(需要确认是否有历史数据需要保留) 3. **代码生成** - 修改 `.api` 文件后需要重新生成代码 - 确保生成的代码与手动修改的代码一致 4. **向后兼容** - 如果前端已经部署,需要确保前端和后端同时更新 - 或者先更新后端,保持向后兼容一段时间 --- ## 执行顺序建议 1. **第一步**:修改后端 API 定义文件(`.api` 文件) 2. **第二步**:重新生成后端代码 3. **第三步**:手动修改后端逻辑代码(删除推广订单相关逻辑) 4. **第四步**:修改前端代码 5. **第五步**:测试验证 6. **第六步**:清理数据库(如需要) --- ## 文件清单 ### 需要修改的后端文件 1. `ycc-proxy-server/app/main/api/desc/admin/order.api` 2. `ycc-proxy-server/app/main/api/internal/types/types.go` 3. `ycc-proxy-server/app/main/api/internal/logic/admin_order/admincreateorderlogic.go` 4. `ycc-proxy-server/app/main/api/internal/logic/admin_order/adminupdateorderlogic.go` 5. `ycc-proxy-server/app/main/api/internal/logic/admin_order/admindeleteorderlogic.go` 6. `ycc-proxy-server/app/main/api/internal/logic/admin_order/admingetorderlistlogic.go` 7. `ycc-proxy-server/app/main/api/internal/logic/admin_order/admingetorderdetaillogic.go` 8. `ycc-proxy-server/app/main/api/internal/svc/servicecontext.go` 9. `ycc-proxy-server/app/main/model/vars.go`(如需要) ### 需要删除的后端文件 1. `ycc-proxy-server/app/main/model/adminPromotionOrderModel.go` 2. `ycc-proxy-server/app/main/model/adminPromotionOrderModel_gen.go` ### 需要修改的前端文件 1. `ycc-proxy-admin/apps/web-antd/src/views/order/order/data.ts` 2. `ycc-proxy-admin/apps/web-antd/src/api/order/order.ts` ### 需要保留的文件(推广链接和数据分析) 1. `ycc-proxy-server/app/main/api/desc/admin/promotion.api` ✅ 2. `ycc-proxy-server/app/main/api/internal/logic/admin_promotion/*` ✅ 3. `ycc-proxy-server/app/main/api/internal/handler/admin_promotion/*` ✅ 4. `ycc-proxy-server/app/main/model/adminPromotionLinkModel*` ✅ 5. `ycc-proxy-server/app/main/model/adminPromotionLinkStats*` ✅ 6. `ycc-proxy-server/app/main/api/internal/service/adminPromotionLinkStatsService.go` ✅ 7. `ycc-proxy-admin/apps/web-antd/src/views/promotion/*` ✅ 8. `ycc-proxy-admin/apps/web-antd/src/api/promotion/*` ✅ --- ## 完成标志 - [ ] 所有后端代码修改完成 - [ ] 所有前端代码修改完成 - [ ] 代码编译通过 - [ ] 功能测试通过 - [ ] 推广链接管理功能正常 - [ ] 推广数据分析功能正常 - [ ] 订单管理功能正常(无推广订单相关功能) - [ ] 无编译错误和警告