feat(shopro_huifu): 新增分账配置依赖检查命令并完善online_busi_type支持

- 新增ProbeSplitConfigDeps命令用于检查split/config提交前的依赖项
  (online_busi_type、运营媒介等)
- 在SyncSplitReceivers命令中添加--online-busi-type选项
- 更新QuerySplitConfig显示online_busi_type信息并调整后续步骤提示
- 完善HuifuMerchantSplitService中的online_busi_type解析逻辑
- 添加extended_material_list配置支持
- 在数据库升级脚本中增加新的配置项
```
这个提交包含在:
可乐加冰
2026-10-13 11:17:00 +08:00
父节点 ae5aac26ac
当前提交 7767298a43
共有 6 个文件被更改,包括 202 次插入 和 4 次删除

查看文件

@@ -100,13 +100,21 @@ class QuerySplitConfig extends Command
$output->writeln('delay_flag(延迟入账): ' . ($delay !== '' ? $delay : '(未返回)'));
$output->writeln('forced_delay_flag: ' . ($forced !== '' ? $forced : '(未返回)'));
} else {
$scan = HuifuClient::collectNestedKeys($bd, ['delay_flag', 'forced_delay_flag', 'rule_origin', 'div_flag']);
$scan = HuifuClient::collectNestedKeys($bd, [
'delay_flag', 'forced_delay_flag', 'rule_origin', 'div_flag', 'online_busi_type',
]);
if ($scan !== []) {
$output->writeln('详情嵌套: ' . json_encode($scan, JSON_UNESCAPED_UNICODE));
} else {
$output->writeln('未读到 delay_flag(可 --json 看 basicdata 全文)');
}
}
$busiType = trim((string) (HuifuClient::collectNestedKeys($bd, ['online_busi_type'])['online_busi_type'] ?? ''));
if ($busiType !== '') {
$output->writeln('online_busi_type(进件/业务资料): ' . $busiType);
} else {
$output->writeln('[提示] 40% 分账 split/config 须 online_busi_type,主商户详情未返回时可问汇付渠道或查 KYC 编码表');
}
if ($bCode !== '' && $bCode !== '00000000') {
$output->writeln('basicdata resp_code=' . $bCode . ' ' . ($bd['resp_desc'] ?? ''));
}
@@ -115,7 +123,7 @@ class QuerySplitConfig extends Command
}
$output->writeln('');
$output->writeln('下一步(汇付实施/工单):');
$output->writeln(' 1) php think shopro_huifu:sync-split-receivers(rule_origin=01 仅开通分账,不带接收方列表)');
$output->writeln(' 1) 配齐 online_busi_type + 运营媒介后 php think shopro_huifu:sync-split-receivers');
$output->writeln(' 2) 进件子户在 confirm 的 acct_split_bunch 中指定;若仍 22000002 再核控台分账关系/实施工单');
$output->writeln(' 3) 生效后再跑本命令,应出现 rule_origin;新订单测分账,勿重试 unconfirm_amt=0 的旧单');
$output->writeln('完整 JSON: php think shopro_huifu:query-split-config --json');