2026-06-22
2026-06-22 daniel 工作日志
Section titled “2026-06-22 daniel 工作日志”fomoadmin 管理后台 全天主线 FEAT-016 NovaPay 收款码后台配合 QA / 后端 zz / 合约 bob 多方反馈做问题定位与收口。承接 06-18 NovaPay 链上写交互打磨,今日聚焦四件事:① 让利 / 支付币种「链上改后后台不同步」 —— 按合约工程师 bob 架构原则改为前端链上直读最新值,并定位 + 修复读 RPC 节点失效(多节点 fallback);② 编辑历史适配 BE 按字段拆条的配置变更 diff;③ 详情抽屉内容超长无法滚动;④ 多方问题定位(企业码签发逻辑梳理、审核拒绝记录纠偏、链上「变化前旧值」归属澄清)。
FEAT-016 让利 / 支付币种「链上改后不同步」修复(本日重点)
Section titled “FEAT-016 让利 / 支付币种「链上改后不同步」修复(本日重点)”4fc57a9:风控管理让利 / 支付币种改前端链上直读最新值 —— 用户在用户端链上改了让利(20%→60%)/ 支付币种后,后台risk/lst(读eb_payfi_code快照)仍显示创建时的旧值。按合约工程师 bob 架构原则「链上可改配置前端直读链上最新、不依赖 BE 同步快照」:payfi.js新增getQRCodeFullInfoABI +resolveQRCodeConfigs(按 qrCodeId multicall 批量读链上discountRate/acceptedTokens,走 http RPC,码不存在 / 失败回退 BE 值);codes.vue在解析符号前用链上最新值覆盖让利 / 支付币种,企业级码仍按 100% 锁定展示。a0a34e2:链上读 RPC 改 fallback 多节点故障转移 —— 上一改动落地后实测让利仍显示旧值 20%。用 viem 脚本定位:NP-MER-0012 = 链上 qrCodeId 48、链上真值 60%,但onchainClient用的data-seed-prebsc-1-s1节点fetch failed/ 限流,resolveQRCodeConfigs的 multicall 失败被 catch 吞、静默回退 BE 旧值。onchainClienttransport 改 viemfallback([...]):更稳的 publicnode 优先、data-seed 作备用,显式VITE_BSC_RPC仍最优先;单节点不可达自动切换。全局只读 RPC 韧性提升(符号解析 / 让利 / 支付币种链上直读一并受益),主网同配备用节点。
FEAT-016 详情交互与编辑历史
Section titled “FEAT-016 详情交互与编辑历史”5f4f583:详情抽屉内容超长无法滚动 —— EP 1.2.0-beta.6 的el-drawer__body默认不开纵向滚动,风控历史(状态变更 + 编辑历史)/ 申请详情(审核历史)超长时底部被裁、无法滑动。codes.vue风控历史抽屉 +applications.vue申请详情抽屉统一加:deep(.el-drawer__body){overflow-y:auto}。全后台审计确认右侧抽屉仅此 2 处,均已处理(其余详情为整页路由、天然可滚动)。765add3:编辑历史适配 BE 按字段拆条的配置变更 —— BEcode/edit-log改为按字段返回field_name=discount_rate/pay_tokens/...+old/new(config仅兜底)。FIELD_LABEL补中文映射(让利 / 支付币种 / 定投币 / GV 接收地址 / 收款地址),未识别字段原样显示英文;新增fmtEditValue让利old/new按 bp→百分比格式化(兼容 BE 直接给 “60%”),编辑历史可显示「让利 20% → 60%」。
跨端问题定位与协作(无 commit)
Section titled “跨端问题定位与协作(无 commit)”- 企业码链上签发逻辑梳理给 zz —— 解释申请审核「链上签发」流程:状态机 1 审核中 → 2 待签发 → 3 已签发;签发前前端先链上读
getThirdPartyQRCode(owner)做「一地址一码」兜底,命中即拦截提示「已签发 #N」;BE 监听器抓ThirdPartyQRCodeCreated推 2→3 回填 qrCodeId。澄清「已签发」判定直读链上、不看 DB,定位 NP-APP-0003 提示 #46 的成因(owner 地址链上已有码 / 脏测试数据)。 - 让利 / 支付币种不同步 + 编辑历史缺记录 → 给 zz 接口缺口清单 —— 定位根因:合约事件
QRCodeUpdated只带 qrCodeId、不带 diff,BE 监听器没回读链上最新配置更新eb_payfi_code、也没生成 old→new。提出risk/lst回读同步字段 +code/edit-log按字段拆条 diff 的诉求;后经 bob 架构原则调整为「当前值前端直读、历史 diff 归 BE 日志」,zz 据此完成两接口改造。 - 审核「不通过」记录纠偏 —— QA 反馈企业码详情审核历史缺拒绝记录。先判为单快照覆盖丢历史;后据列表两条同企业记录(NP-APP-0005 已拒绝 / 0006 重提已签发)纠正:重提 = 新建记录,拒绝以
status=9独立保留,FE 对status=9已渲染「审核拒绝 + 原因」,无缺数据 bug,撤回原 review_logs 数组诉求。 - 链上「变化前旧值」归属澄清 —— 编辑历史 old→new 的旧值链上无历史(事件不带 diff、
getQRCodeFullInfo只返当前值),只能由 BE 用改前eb_payfi_code快照 diff 得出,前端仅渲染。
- 链上可改配置前端直读最新(bob 原则):让利 / 支付币种 / 定投币 / GV / 收款地址等「当前值」前端直读链上(
getQRCodeFullInfo),不依赖 BE 同步快照;BE 同步后的值作新鲜兜底,双保险。 - 历史 diff(旧值)归 BE 日志、前端取不到:链上无配置历史、事件不带 diff,编辑历史「20%→60%」的旧值只能 BE 给,前端不做链上派生。
- 只读 RPC 多节点 fallback:固定 data-seed 公共节点实测会
fetch failed/ 限流,导致链上读整体失败、静默回退旧值;改fallback([...])故障转移、reliable 节点优先,保障前端直读可靠。 - 审核拒绝 = 独立
status=9记录、重提 = 新建:拒绝记录不丢,QA 误看了直接通过的那条记录;FE 已正确渲染拒绝态,无需 BE 做审核流水数组。
code/edit-log真实响应待验证:FE 的FIELD_LABEL映射与让利 bp→% 格式化按合理假设写就;待核对 BE 实际field_name字符串(是否discount_rate/ 驼峰)与old/new格式(bp"2000"vs"20%"、pay_tokens 地址 vs 符号),对不上再一行微调。- 前端链上直读依赖读 RPC 可达:已用多节点 fallback 缓解;若全部公共节点同时抽风,仍会回退 BE 值(现 BE 已同步、回退值也新鲜)。
- 企业级签发 / 风控链上写仍依赖管理员钱包在 QRCodeModule 的
restricted权限:未授权则createThirdPartyQRCode/setQRCodeEnabledrevert(AccessManagedUnauthorized),待 AccessManager 持权人授权后才能跑通 admin 端到端。
- 配合验证 BE
code/edit-log真实响应,按实际field_name/old-new格式微调FIELD_LABEL/fmtEditValue;如需 pay_tokens 地址→符号再补。 - 跟进 QA 对 NovaPay 风控管理(让利 / 支付币种链上直读、详情抽屉滚动、编辑历史)的复测反馈,按需收口。
- 待 zz 收口 016 后转入 FEAT-017 接口开发(第三方代币纳管 / 选币展示从 Mock 切真实接口)。