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 次删除

查看文件

@@ -20,6 +20,7 @@ class SyncSplitReceivers extends Command
->addOption('rule-origin', null, Option::VALUE_OPTIONAL, '01=接口发起(默认) 02=控台配置且提交接收方列表')
->addOption('huifu-id', null, Option::VALUE_OPTIONAL, '主商户汇付号,默认 platform_huifu_id 或插件 huifu_id')
->addOption('scene', null, Option::VALUE_OPTIONAL, '分账模式 scene,默认插件 split_config_scene(A5)')
->addOption('online-busi-type', null, Option::VALUE_OPTIONAL, '线上业务类型编码 online_busi_type(40%分账必填)')
->setDescription('Submit v2/merchant/split/config (01=open split; 02=with receiver list)');
}
@@ -44,6 +45,11 @@ class SyncSplitReceivers extends Command
$ruleOriginOpt = trim((string) $input->getOption('rule-origin'));
$ruleOrigin = $ruleOriginOpt !== '' ? $ruleOriginOpt : $service->resolveRuleOrigin([]);
$output->writeln('rule_origin: ' . $ruleOrigin . ($ruleOrigin === '01' ? '(接口发起,confirm 传 acct_split_bunch)' : '(控台配置,须带接收方列表)'));
$onlineBusiOpt = trim((string) $input->getOption('online-busi-type'));
$onlineBusiType = $onlineBusiOpt !== ''
? $onlineBusiOpt
: $service->resolveOnlineBusiType(['main_huifu_id' => $main], $main);
$output->writeln('online_busi_type: ' . ($onlineBusiType !== '' ? $onlineBusiType : '(未配置,40%分账将失败)'));
$dryRun = (bool) $input->getOption('dry-run');
$initOnly = (bool) $input->getOption('init-only');
@@ -51,8 +57,12 @@ class SyncSplitReceivers extends Command
'dry_run' => $dryRun,
'main_huifu_id' => $main,
'scene' => $scene,
'rule_origin' => $ruleOrigin,
'rule_origin' => $ruleOrigin,
'online_busi_type' => $onlineBusiType !== '' ? $onlineBusiType : null,
];
if ($onlineBusiType === '') {
unset($options['online_busi_type']);
}
try {
if ($initOnly || $ruleOrigin === '01') {