Files
ycc-proxy-server/删除推广订单功能计划.md
2025-12-02 19:57:10 +08:00

214 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 删除推广订单功能计划
## 目标
删除后台以及后端中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/*`
---
## 完成标志
- [ ] 所有后端代码修改完成
- [ ] 所有前端代码修改完成
- [ ] 代码编译通过
- [ ] 功能测试通过
- [ ] 推广链接管理功能正常
- [ ] 推广数据分析功能正常
- [ ] 订单管理功能正常(无推广订单相关功能)
- [ ] 无编译错误和警告