Files
xxk-proxy/原系统说明书.md
2026-06-11 10:31:24 +08:00

611 lines
17 KiB
Markdown
Raw Permalink 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.
# 开发交接-当前进度说明
## 1. 当前阶段结论
本项目已完成“代理平台后端一期主骨架”的第一阶段建设,当前进度已经从纯需求设计推进到:
- 数据库设计已落文档和 SQL
- `proxy` 业务域已建立
- 商品、钱包、订单、静态资产、动态通道、分销等核心实体已建立
- 后台基础管理 API 已补齐第一批
- 订单创建、余额支付、按商品类型分流开通的主链路已搭建
- `IPNux` 已接入第一批真实接口
- 静态代理管理、动态通道管理的后台接口已搭建
- 代理平台后台前端已接入一批正式化页面
当前代码已经具备继续联调和继续扩展的基础,但还不算“可直接上线”状态。
补充说明:
- 已完成会员认证策略中心、认证审核闭环、强制认证场景校验
- 已完成订单异常补偿第一阶段闭环:
- 支付、上游开通、退款改为分阶段提交
- 上游开通失败后自动进入补偿
- 支持补偿状态跟踪、补偿记录落表、人工重试补偿
- 已完成补偿记录排查视角增强:
- 补偿记录详情已联动订单操作日志
- 补偿记录详情已联动钱包流水并高亮当前退款流水
- 订单、静态资产、动态通道已可联动跳转到上游请求日志页
- 已启动会员前台独立站首版骨架:
- 新建 `member-web` 独立 Vue3 目录
- 已拆出官网营销布局与会员控制台布局
- 已接入会员登录态、钱包、订单、静态代理、动态通道、实名认证基础页面
## 2. 已完成内容
### 2.1 需求与设计文档
已完成以下设计文档:
- `需求设计-静态住宅IP代理分销平台-v1.md`
- `需求设计-静态+动态住宅IP代理分销平台-v2.md`
- `数据库详细设计-代理平台-v1.md`
主要结论:
- 一期同时支持静态住宅 IP 和动态住宅 IP
- 一期先做后端
- 静态 IP 按国家定价
- 静态/动态都按时长倍率销售,天数为 30 的整数倍
- 动态 IP 按固定流量套餐售卖
- 一期支付只做余额支付
- 一期充值只做后台加款
- 分销佣金按“开通成功金额”计算
- 一期只接 `IPNux`,但架构保留多上游扩展
### 2.2 数据库设计与 SQL
已完成 SQL 文件:
- `java/sql/mysql/xxk_proxy_platform_v1.sql`
当前已设计的核心表包括:
- `xxk_upstream_provider`
- `xxk_product`
- `xxk_product_static_country_price`
- `xxk_product_duration_multiplier`
- `xxk_product_dynamic_plan`
- `xxk_user_profile`
- `xxk_wallet_account`
- `xxk_wallet_flow`
- `xxk_proxy_order`
- `xxk_proxy_order_item`
- `xxk_static_proxy_asset`
- `xxk_static_proxy_whitelist`
- `xxk_dynamic_channel`
- `xxk_dynamic_channel_traffic_log`
- `xxk_dynamic_proxy_generate_log`
- `xxk_distribution_relation`
- `xxk_distribution_config`
- `xxk_distribution_commission`
- `xxk_upstream_request_log`
- `xxk_order_operate_log`
说明:
- 后续对静态/动态管理做更深扩展时,可能还需要补充字段或索引
- 当前 `xxk_product` 已补充 `IPNux` 上游所需关键参数:
- `proxies_type`
- `proxies_format`
- `purpose_web`
- `protocols_type`
- `udp_status`
### 2.3 后端业务域已建立
已新增业务域:
- `java/src/main/java/com/youlai/boot/proxy`
当前已包含:
- `controller`
- `converter`
- `enums`
- `integration`
- `mapper`
- `model/entity`
- `model/form`
- `model/query`
- `model/vo`
- `service`
- `service/impl`
### 2.4 已完成的核心实体
已完成主要实体类:
- `Product`
- `ProductStaticCountryPrice`
- `ProductDurationMultiplier`
- `ProductDynamicPlan`
- `UpstreamProvider`
- `UserProfile`
- `WalletAccount`
- `WalletFlow`
- `ProxyOrder`
- `ProxyOrderItem`
- `StaticProxyAsset`
- `StaticProxyWhitelist`
- `DynamicChannel`
- `DynamicChannelTrafficLog`
- `DynamicProxyGenerateLog`
- `DistributionRelation`
- `DistributionConfig`
- `DistributionCommission`
### 2.5 已完成的基础后台管理 API
目前已经完成第一批后台管理接口骨架:
- 上游供应商管理
- 商品管理
- 静态国家定价管理
- 动态流量套餐管理
- 时长倍率管理
- 钱包账户列表
- 钱包后台加款
对应控制器:
- `UpstreamProviderController`
- `ProductController`
- `ProductStaticCountryPriceController`
- `ProductDynamicPlanController`
- `ProductDurationMultiplierController`
- `WalletAccountController`
### 2.6 已完成的订单主流程
当前订单主链已接通基础业务编排:
- 创建订单
- 按商品类型计算销售价
- 余额支付
- 扣减钱包余额
- 写入钱包流水
- 支付成功后调用上游开通
- 根据商品类型分流:
- 静态 IP 开通
- 动态通道开通
- 开通成功后回写本地资源表
- 更新订单状态
对应核心类:
- `ProxyOrderController`
- `ProxyOrderService`
- `ProxyOrderServiceImpl`
### 2.7 已完成的 IPNux 对接能力
已接入 IPNux 公共请求支持:
- `IPNuxApiSupport`
已实现的 IPNux 能力:
#### 静态 IP
- 开通下单 `OpenApiPurchaseNewOrder`
- 列表查询 `OpenApiNodeList`
- 续费 `OpenApiNoneRenew`
- 自动续费 `SetAutoRenew`
- 节点改密 `OpenApiEditNodeUserAndPass`
- 新增白名单 `OpenApiAddWhite`
- 删除白名单 `OpenApiDelWhite`
#### 动态 IP
- 创建通道 `OpenApiCreateChannel`
- 通道列表 `OpenApiSubUsers`
- 更新通道 `OpenApiEditChannel`
- 查询流量 `OpenApiGetUseTraffic`
- 生成代理出口 `OpenApiGenerateCustomEndpoints`
### 2.8 已完成的资源管理接口
#### 静态代理管理
已完成:
- 静态代理分页列表
- 静态代理续费
- 静态代理改密
- 静态代理自动续费开关
- 静态代理白名单新增
- 静态代理白名单删除
对应控制器:
- `StaticProxyAssetController`
对应服务:
- `StaticProxyAssetService`
- `StaticProxyAssetServiceImpl`
#### 动态通道管理
已完成:
- 动态通道分页列表
- 按供应商同步通道
- 更新通道
- 查询通道流量
- 生成动态代理出口
对应控制器:
- `DynamicChannelManageController`
对应服务:
- `DynamicChannelService`
- `DynamicChannelServiceImpl`
### 2.9 已完成的会员认证配置与审核闭环
已完成:
- 会员认证策略统一收口到 `member.verify.policy`
- 后台业务配置中心可配置:
- 是否开启认证
- 是否开启强制认证
- 强制认证场景
- 认证字段启用/必填/图片数量限制
- 会员认证提交与后台审核接口
- 会员认证记录快照落库
- 认证通过/驳回结果回写会员资料表
- 已接入强制认证场景校验:
- 会员下单
- 静态白名单新增
- 动态代理出口生成
对应 SQL
- `java/sql/mysql/xxk_member_verify_upgrade.sql`
- `java/sql/mysql/xxk_member_verify_menu_init.sql`
### 2.10 已完成的订单异常补偿第一阶段闭环
已完成:
- 订单支付、上游开通、退款补偿拆分为分阶段事务提交
- 上游开通失败后自动进入退款补偿流程
- 订单主表增加补偿状态、补偿说明、重试次数、最近补偿时间
- 新增订单补偿记录表,保留每次补偿尝试结果
- 退款增加幂等判断,已存在退款流水时自动补齐订单状态
- 新增后台“重试订单补偿”接口
- 新增订单补偿失败自动重试定时任务
- 补偿定时任务支持基础配置:
- 是否启用
- Cron 表达式
- 单次批量处理数
- 最大尝试次数
- 最小重试间隔分钟数
- 后台订单页已接入:
- 补偿状态筛选
- 补偿状态/补偿说明/重试次数展示
- 手动重试补偿入口
- 已新增订单补偿记录分页接口
- 已新增后台“订单补偿记录”页面
- 已支持从订单页直接跳转到对应订单的补偿记录页
对应 SQL
- `java/sql/mysql/xxk_proxy_order_compensation_upgrade.sql`
- `java/sql/mysql/xxk_proxy_order_compensation_record_menu_upgrade.sql`
### 2.11 已完成的会员管理认证状态接入
已完成:
- 会员列表支持按认证状态筛选
- 会员列表增加认证状态、实名信息、最近提交/通过时间展示
- 会员编辑页增加认证概况区域
- 可从会员管理页直接跳转到认证审核页
- 认证审核页支持按 `memberUserId` 过滤,承接会员页跳转
- 后台手工新增会员时同步初始化 `MemberProfile`
### 2.12 已完成的上游请求日志与失败排查基础能力
已完成:
- `IPNuxApiSupport` 统一记录所有 IPNux 请求日志
- 记录内容包括:
- 请求地址
- 请求头
- 请求体
- 响应体
- HTTP 状态码
- 业务码
- 成功标记
- 耗时
- 错误信息
- 后台新增上游请求日志分页查询接口
- 后台新增上游请求日志详情接口
- 后台新增“上游请求日志”排查页面
- 日志按业务类型区分静态开通、白名单、动态通道、流量查询、动态出口生成等请求
- 上游日志关键字查询已扩展到请求体、响应体、请求头
- 已支持从以下页面联动跳转到上游日志页:
- 订单管理
- 静态代理管理
- 动态通道管理
- 上游日志页已支持承接路由查询参数自动筛选
对应 SQL
- `java/sql/mysql/xxk_proxy_upstream_request_log_menu_upgrade.sql`
### 2.13 已完成的补偿记录联动排查能力
已完成:
- 补偿记录详情抽屉已支持联动查询订单操作日志
- 补偿记录详情抽屉已支持联动查询钱包流水
- 补偿记录详情可高亮当前补偿关联退款流水
- 联动接口复用补偿记录页权限,无需新增额外菜单
- 当前作为最小可用排查中枢,暂未单独拆订单操作日志页和钱包流水页
### 2.14 已完成的会员前台独立站首版骨架
已完成:
- 新建独立目录 `member-web`
- 基于 Vue3 + Vite + TypeScript 搭建会员前台骨架
- 已拆分两套前端布局:
- 官网营销布局
- 会员控制台布局
- 已接入会员登录态基础能力:
- 账号密码登录
- 短信验证码登录
- 当前会员信息获取
- 令牌自动续期基础逻辑
- 已完成首批前台页面骨架:
- 首页
- 套餐购买页
- 帮助中心
- 登录页
- 控制台首页
- 我的订单
- 静态代理
- 动态通道
- 我的钱包
- 实名认证
- 已直接对接现有会员接口:
- 登录
- 钱包概况
- 订单分页
- 静态代理分页
- 动态通道分页
- 认证策略 / 当前认证信息 / 认证提交
当前说明:
- 套餐购买页当前为前台正式化展示骨架,尚未接真实商品价格接口
- 下一步需要补会员侧商品、国家价格、时长倍率、动态套餐接口,才能形成完整购买闭环
## 3. 当前代码状态
### 3.1 已经具备的能力
当前代码已经具备:
- 商品配置
- 静态国家价格配置
- 动态流量套餐配置
- 时长倍率配置
- 钱包加款
- 创建订单
- 余额支付
- 调用 IPNux 开通
- 开通后本地落资产/通道
- 静态代理基础管理
- 动态通道基础管理
- 订单补偿记录排查与补偿执行追踪
- 上游请求日志联动排查
### 3.2 当前仍属于“开发中”的部分
虽然主骨架已经有了,但仍有以下现实情况:
- AI 侧本轮未执行真实编译校验
- 未做完整联调验证
- 菜单 SQL 已有基础版本,但后续新增功能仍需继续补升级脚本
- 后台前端已接入一批页面,但分销等页面仍未补齐
- 未做补偿定时任务、同步任务、统计/看板类日志任务
- 未做完整分销佣金结算逻辑
### 3.3 当前环境限制
当前开发环境里:
- 用户本地已经可以正常执行 SQL 与编译
- AI 侧默认不主动执行编译,若后续需要可按需再做编译排错
所以下次继续开发时,建议继续沿用“本地编译 + 我负责改代码与排错”的协作方式。
## 4. 待完成内容
以下内容按优先级分组。
### 4.1 高优先级
#### A. 菜单权限与初始化数据
当前代理平台基础菜单 SQL 已存在,会员认证菜单和上游请求日志菜单升级 SQL 也已补齐。
后续仍需要随着新功能继续补菜单/按钮升级 SQL,例如:
- 订单补偿记录页及按钮权限
- 上游日志和订单/资产/通道联动入口权限
- 分销管理相关菜单及按钮权限
- 后续会员前台独立系统的后台配置菜单
建议新增:
- 按功能增量维护菜单升级 SQL
- 需要时补一份演示角色授权 SQL
#### B. 订单异常补偿后续增强
当前已经完成自动退款、补偿状态、补偿记录、人工重试和定时自动重试。
后续还建议继续补:
- 更细的告警通知(如补偿失败短信/站内消息/日志告警)
#### C. 真实联调校验
当前虽然已经接入 `IPNux` 接口,但还需要做真实联调:
- 静态下单时 `buyData` 是否接受 `country_code`
- `purpose_web` 字段真实类型
- 成功码集合是否稳定
- `SetAutoRenew` 请求字段是否完全一致
- 动态通道创建后的返回字段结构
- 通道流量字段 `UseTrafficGb` / `TotalTrafficGb` 真实格式
### 4.2 中优先级
#### A. 分销佣金逻辑补全
当前只做了表结构和订单中的邀请人字段预留,还没有真正写佣金计算与确认。
需要补:
- 下单时读取分销配置
- 开通成功后生成一级佣金
- 开通成功后生成二级佣金
- 退款或失败时佣金失效
- 佣金流水查询接口
#### B. 静态代理更多管理能力
当前已做基础管理,但还可继续补:
- 静态代理详情页接口
- 批量续费
- 批量自动续费开关
- 批量改密
- 静态资产同步任务
- 静态代理详情接口 `OpenApiNodeDetail`
#### C. 动态代理更多管理能力
当前已做基础管理,但还可继续补:
- 动态通道详情接口
- 动态通道周期性同步任务
- 动态流量时间序列展示接口
- 代理生成结果结构化解析
- 动态端点生成日志查询接口
### 4.3 后续阶段
#### A. 前端后台对接
当前 `ui` 目录已经接入了代理平台一批后台页面,并且已经做过一轮去示例化和正式化处理。
建议后续新增:
- 订单管理页面
- 分销管理页面
- 会员前台独立站点(后续阶段再拆)
#### B. 定时任务
后续建议补充:
- 静态资产同步任务
- 动态通道同步任务
- 到期提醒任务
- 自动续费任务
- 失败补偿任务
#### C. 上游日志后续增强
当前已经补了统一请求日志记录与基础排查页面。
后续建议继续补:
- 失败日志快捷筛选与看板统计
- 脱敏规则细化(不同字段不同脱敏级别)
- 长响应体压缩或分片策略
## 5. 关键代码位置索引
### 5.1 数据库与文档
- `数据库详细设计-代理平台-v1.md`
- `java/sql/mysql/xxk_proxy_platform_v1.sql`
### 5.2 订单主流程
- `java/src/main/java/com/youlai/boot/proxy/controller/ProxyOrderController.java`
- `java/src/main/java/com/youlai/boot/proxy/service/ProxyOrderService.java`
- `java/src/main/java/com/youlai/boot/proxy/service/impl/ProxyOrderServiceImpl.java`
### 5.3 IPNux 对接
- `java/src/main/java/com/youlai/boot/proxy/integration/ipnux/IPNuxApiSupport.java`
- `java/src/main/java/com/youlai/boot/proxy/integration/ipnux/IPNuxStaticProxyClient.java`
- `java/src/main/java/com/youlai/boot/proxy/integration/ipnux/IPNuxDynamicProxyClient.java`
- `java/src/main/java/com/youlai/boot/proxy/integration/core/impl/UpstreamProviderFacadeImpl.java`
### 5.4 静态代理管理
- `java/src/main/java/com/youlai/boot/proxy/controller/StaticProxyAssetController.java`
- `java/src/main/java/com/youlai/boot/proxy/service/impl/StaticProxyAssetServiceImpl.java`
### 5.5 动态通道管理
- `java/src/main/java/com/youlai/boot/proxy/controller/DynamicChannelManageController.java`
- `java/src/main/java/com/youlai/boot/proxy/service/impl/DynamicChannelServiceImpl.java`
### 5.6 商品和价格管理
- `java/src/main/java/com/youlai/boot/proxy/controller/ProductController.java`
- `java/src/main/java/com/youlai/boot/proxy/controller/ProductStaticCountryPriceController.java`
- `java/src/main/java/com/youlai/boot/proxy/controller/ProductDynamicPlanController.java`
- `java/src/main/java/com/youlai/boot/proxy/controller/ProductDurationMultiplierController.java`
### 5.7 钱包管理
- `java/src/main/java/com/youlai/boot/proxy/controller/WalletAccountController.java`
- `java/src/main/java/com/youlai/boot/proxy/service/impl/WalletAccountServiceImpl.java`
### 5.8 会员前台独立站
- `member-web/package.json`
- `member-web/src/router/index.ts`
- `member-web/src/layouts/MarketingLayout.vue`
- `member-web/src/layouts/ConsoleLayout.vue`
- `member-web/src/views/marketing/HomeView.vue`
- `member-web/src/views/marketing/PricingView.vue`
- `member-web/src/views/account/LoginView.vue`
- `member-web/src/views/console/DashboardView.vue`
- `member-web/src/views/console/VerifyView.vue`
## 6. 下次继续开发建议顺序
下次继续开发,建议按下面顺序推进:
1. 先做 IPNux 真实联调修正
2. 再补更细的补偿告警通知
3. 再做上游日志失败筛选、统计看板与脱敏细化
4. 再补分销佣金结算逻辑
5. 最后再做会员前台认证提交页面和会员端独立前端
如果要直接接着当前进度往下做,建议优先从“IPNux 真实联调修正”开始。
## 7. 继续开发时的提醒
- 当前很多接口骨架已经有了,不要重复新建第二套目录或第二套业务域
- 后续扩展尽量沿用 `proxy` 业务域
- 商品上游参数不要再拆散,统一由 `xxk_product` 承载
- 静态与动态的交易层可以统一,但资源层不要强行合并
- 继续开发前优先同步最新 SQL / 菜单升级脚本,并按当前协作方式由用户本地完成编译验证