feat: 收益全额直入商城余额、存量结转与奖项名称全局规范化对齐

这个提交包含在:
chen
2026-09-19 11:49:57 +08:00
父节点 85947e43ae
当前提交 aca0d3c671
共有 83 个文件被更改,包括 4146 次插入 和 443 次删除

查看文件

@@ -50,6 +50,7 @@ class Reward extends Common
'reward_type_text' => '奖励类型',
'role_text' => '受益身份',
'amount' => '结算金额',
'wallet_type_text' => '入账账户',
'madow' => '马豆',
'base_amount' => '基数',
'status_text' => '状态',
@@ -83,6 +84,7 @@ class Reward extends Common
'reward_type_text' => $reward['reward_type_text'],
'role_text' => $reward['role_text'] ?? $reward['role'],
'amount' => $reward['amount'],
'wallet_type_text' => $reward['wallet_type_text'] ?? '商城余额',
'madow' => \addons\shopro\service\partner\IdentityService::formatMadow($reward['madow']),
'base_amount' => $reward['base_amount'],
'status_text' => $reward['status_text'],
@@ -102,6 +104,7 @@ class Reward extends Common
'reward_type_text' => '-',
'role_text' => '-',
'amount' => number_format($totalAmount, 2, '.', ''),
'wallet_type_text' => '现金直入余额',
'madow' => $formattedTotalMadow,
'base_amount' => '-',
'status_text' => '已汇总',
@@ -138,7 +141,8 @@ class Reward extends Common
'ext' => ['formula' => '手工补发', 'memo' => $params['memo'], 'manual' => 1],
'status' => 1,
]);
Wallet::change($params['user_id'], 'commission', $amount, 'reward_income', [
$walletType = PartnerConfig::rewardWalletType();
Wallet::change($params['user_id'], $walletType, $amount, 'reward_income', [
'partner_reward_id' => $row->id ?? 0,
'manual' => 1,
], $params['memo']);
@@ -162,7 +166,12 @@ class Reward extends Common
}
Db::transaction(function () use ($row, $memo) {
if ((float) $row->amount > 0 && $row->user_id > 0) {
Wallet::change($row->user_id, 'commission', -$row->amount, 'reward_back', [
$walletLog = \app\admin\model\shopro\user\WalletLog::where('user_id', $row->user_id)
->where('ext', 'like', '%"partner_reward_id":' . intval($row->id) . '%')
->order('id', 'desc')
->find();
$targetWallet = ($walletLog && $walletLog->type === 'commission') ? 'commission' : PartnerConfig::rewardWalletType();
Wallet::change($row->user_id, $targetWallet, -$row->amount, 'reward_back', [
'partner_reward_id' => $row->id,
], $memo);
}
@@ -217,6 +226,8 @@ class Reward extends Common
'user_nickname' => $r->user ? ($r->user->nickname ?: $r->user->mobile) : '平台/买家',
'role_text' => $r->role_text ?: $r->role,
'amount' => $r->amount,
'wallet_type' => $r->wallet_type,
'wallet_type_text' => $r->wallet_type_text,
'madow' => $r->madow,
'base_amount' => $r->base_amount,
'status' => $r->status,
@@ -259,4 +270,30 @@ class Reward extends Common
] : null,
]);
}
/**
* 全量结转收益预览试算
*/
public function transferAllCommissionPreview()
{
$service = new \addons\shopro\service\partner\WalletMigrationService();
$preview = $service->preview();
$this->success('获取成功', null, $preview);
}
/**
* 执行全量结转收益至商城余额
*/
public function transferAllCommission()
{
$isDryRun = (bool) $this->request->param('dry_run', false);
$confirm = (int) $this->request->param('confirm', 0);
if (!$isDryRun && $confirm !== 1) {
$this->error('操作属于高风险批量资金转移,请传递 confirm=1 确认执行');
}
$service = new \addons\shopro\service\partner\WalletMigrationService();
$result = $service->transferAll($isDryRun);
$this->success($isDryRun ? '试算成功' : '结转完成', null, $result);
}
}