fix(partner): 修复paid_time获取器时间戳解析并完善上线前收益终审验收脚本

这个提交包含在:
chen
2026-09-26 14:25:06 +08:00
父节点 0525265074
当前提交 cd73e761a8
共有 3 个文件被更改,包括 22 次插入 和 5 次删除

查看文件

@@ -39,7 +39,15 @@ class Partner
$userId = $order['user_id'] ?? ($params['user']['id'] ?? 0);
if ($userId) {
// 自购与直推订单双向保活(自购更新买家,直推更新一级推荐人)
$paidTime = !empty($order['paid_time']) ? intval($order['paid_time']) : time();
$rawPaid = is_object($order) ? ($order->getData('paid_time') ?: $order['paid_time']) : ($order['paid_time'] ?? null);
if (is_numeric($rawPaid) && intval($rawPaid) > 100000000) {
$paidTime = intval($rawPaid);
} elseif (!empty($rawPaid)) {
$parsed = strtotime((string)$rawPaid);
$paidTime = ($parsed && $parsed > 100000000) ? $parsed : time();
} else {
$paidTime = time();
}
$service->touchOrderTimes($userId, $paidTime);
}
Queue::push('\addons\shopro\job\PartnerSettle@order', [

查看文件

@@ -36,7 +36,15 @@ class PartnerRewardService
$buyerId = intval($order['user_id']);
// 确保双向保活已更新(即使钩子丢失或补偿场景也能准确刷新)
$paidTime = !empty($order['paid_time']) ? intval($order['paid_time']) : time();
$rawPaid = is_object($order) ? ($order->getData('paid_time') ?: $order['paid_time']) : ($order['paid_time'] ?? null);
if (is_numeric($rawPaid) && intval($rawPaid) > 100000000) {
$paidTime = intval($rawPaid);
} elseif (!empty($rawPaid)) {
$parsed = strtotime((string)$rawPaid);
$paidTime = ($parsed && $parsed > 100000000) ? $parsed : time();
} else {
$paidTime = time();
}
$this->touchOrderTimes($buyerId, $paidTime);
$active = new ActiveService();

查看文件

@@ -345,7 +345,8 @@ class FullOrderRewardVerification
$this->assert($attached['days_remaining'] == 30, "买家 D 剩余天数满额显示 30 天 (实际: {$attached['days_remaining']})");
// 校验到期时间戳:订单支付时刻 + 30 * 86400 (方案 A 精确顺延)
$paidTimestamp = is_numeric($order->paid_time) ? intval($order->paid_time) : strtotime($order->paid_time);
$rawPaidOrder = is_object($order) ? ($order->getData('paid_time') ?: $order['paid_time']) : ($order['paid_time'] ?? null);
$paidTimestamp = (is_numeric($rawPaidOrder) && intval($rawPaidOrder) > 100000000) ? intval($rawPaidOrder) : strtotime((string)$rawPaidOrder);
$expectedExpire = $paidTimestamp + 30 * 86400;
$this->assert($attached['expire_time'] == $expectedExpire, "到期时间戳精确顺延720小时,绝无零点截断 (实际: {$attached['expire_time']}, 期望: {$expectedExpire})");
@@ -395,12 +396,12 @@ class FullOrderRewardVerification
$this->assert(bccomp((string)$freshC['commission'], '0.00', 2) === 0, "推荐人 C commission 保持为 0.00,绝不走废弃钱包");
// 校验钱包流水日志
$moneyLogC = Db::name('user_wallet_log')
$moneyLogC = Db::name('shopro_user_wallet_log')
->where('user_id', $chain['c']->id)
->where('wallet_type', 'money')
->order('id', 'desc')
->find();
$this->assert($moneyLogC !== null && floatval($moneyLogC['wallet']) == 600.00, "生成对应的 money 变动流水: 变更 +600.00, 备注: {$moneyLogC['memo']}");
$this->assert($moneyLogC !== null && floatval($moneyLogC['wallet']) == 600.00, "生成对应的 money 变动流水: 变更 +600.00, 备注: " . ($moneyLogC['memo'] ?? ''));
// 校验酒道馆/区县 A 的钱包增加 (50 + 50 + 均分)
$freshA = Db::name('user')->where('id', $chain['a']->id)->find();