feat: 收益全额直入商城余额、存量结转与奖项名称全局规范化对齐
这个提交包含在:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户