# 开发交接-当前进度说明 ## 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 / 菜单升级脚本,并按当前协作方式由用户本地完成编译验证