更新核验脚本

这个提交包含在:
可乐加冰
2026-09-29 11:44:50 +08:00
父节点 172bf1492b
当前提交 f1248a2cfd
共有 2 个文件被更改,包括 22 次插入 和 9 次删除

查看文件

@@ -122,6 +122,19 @@ function printSummary()
echo "\n【推断】\n";
echo " " . inferSplitPath($sc, $hf) . "\n";
echo "\n【汇付延时分账支付标记(delay_acct_flag)】\n";
$delayEnable = ($sc['delay_acct_enable'] ?? '0') === '1';
$delayAtPay = $delayEnable && (
in_array($sc['split_mode'] ?? '', ['huifu', 'both'], true)
|| ($sc['split_provider'] ?? 'auto') === 'huifu'
);
echo " delay_acct_enable(分账配置): " . ($delayEnable ? '1' : '0') . "\n";
echo " 下单时 delay_acct_flag=Y: " . ($delayAtPay ? '是(HuifuConfig::shouldDelayAcct)' : '否') . "\n";
if (($sc['split_enable'] ?? '0') === '1' && ($hf['miniprogram_channel'] ?? '') === 'huifu' && !$delayAtPay) {
echo " ⚠ 小程序走汇付但支付未开延时分账:延时分账确认(acct_split_bunch)可能无法成功\n";
echo " 建议: delay_acct_enable=1,且 split_mode=huifu/both 或 split_provider=huifu\n";
}
echo "\n【代码行为说明】\n";
echo " · 网关分账金额来自 commission/regional reward 或 split_rule\n";
echo " · 汇付:推广员/区域 huifu_id 收 div_amt,余款进 platform_huifu_id 或主商户 huifu_id\n";
@@ -131,7 +144,7 @@ function printSummary()
$since = time() - 90 * 86400;
$stats = Db::name('shopro_split_order')->alias('so')
->join('shopro_order o', 'o.id = so.order_id')
->where('o.paid_time', '>=', $since)
->where('o.paytime', '>=', $since)
->field('so.channel, so.status, COUNT(*) cnt, SUM(so.split_amount) split_sum')
->group('so.channel, so.status')
->select();
@@ -175,7 +188,7 @@ function printAnomalies()
) t GROUP BY order_id
) wl ON wl.order_id = so.order_id
WHERE so.status IN (2,3) AND so.split_amount > 0 AND wl.wallet_sum > 0
AND o.paid_time >= ?
AND o.paytime >= ?
ORDER BY so.id DESC
LIMIT 30
", [$since]);
@@ -204,7 +217,7 @@ function printAnomalies()
$missing = Db::name('shopro_order')->alias('o')
->where('o.pay_type', 'huifu_wechat')
->where('o.paid_time', '>=', $since)
->where('o.paytime', '>=', $since)
->whereNotExists(function ($q) {
$q->name('shopro_split_order')->alias('so')
->whereRaw('so.order_id = o.id')

查看文件

@@ -106,7 +106,7 @@ SELECT
ROUND(SUM(so.total_amount), 2) AS sum_order_pay
FROM fa_shopro_split_order so
INNER JOIN fa_shopro_order o ON o.id = so.order_id
WHERE o.paid_time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
WHERE o.paytime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
GROUP BY so.channel, so.status
ORDER BY so.channel, so.status;
@@ -117,8 +117,8 @@ SELECT
COUNT(*) AS order_cnt,
ROUND(SUM(pay_fee), 2) AS sum_pay_fee
FROM fa_shopro_order
WHERE status IN ('paid', 'completed', 'pending', 'nosend', 'nocomment')
AND paid_time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
WHERE status >= 1
AND paytime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
GROUP BY pay_type;
-- =============================================================================
@@ -270,7 +270,7 @@ LEFT JOIN (
) rr ON rr.order_id = o.id
LEFT JOIN fa_shopro_split_order so ON so.order_id = o.id AND so.channel = 'huifu'
WHERE o.pay_type = 'huifu_wechat'
AND o.paid_time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
AND o.paytime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
AND (IFNULL(cr.reward_cnt, 0) + IFNULL(rr.reward_cnt, 0)) > 0
AND (so.id IS NULL OR so.status IN (0, 4))
ORDER BY o.id DESC
@@ -310,7 +310,7 @@ LEFT JOIN fa_shopro_split_receiver sr ON sr.role_type = 'promoter'
AND sr.role_id = a.user_id AND sr.channel = 'huifu' AND sr.status = 'normal'
WHERE r.status >= 0
AND o.pay_type = 'huifu_wechat'
AND o.paid_time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
AND o.paytime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
AND sr.id IS NULL
LIMIT 30;
@@ -327,7 +327,7 @@ FROM fa_shopro_huifu_pay_ext pe
INNER JOIN fa_shopro_order o ON o.id = pe.order_id
LEFT JOIN fa_shopro_split_order so ON so.order_id = pe.order_id AND so.channel = 'huifu'
WHERE o.pay_type = 'huifu_wechat'
AND o.paid_time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
AND o.paytime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY))
ORDER BY pe.order_id DESC
LIMIT 30;