feat(partner): 全系统收益与分润用词脱敏改造(统一采用奖励规范)
这个提交包含在:
@@ -3,7 +3,7 @@
|
||||
namespace addons\shopro\service\partner;
|
||||
|
||||
/**
|
||||
* 创客极差:水位差,不活跃不抬 seen
|
||||
* 创客进阶奖:梯度进阶,不活跃不占基数
|
||||
*/
|
||||
class MakerDiffReward
|
||||
{
|
||||
@@ -20,16 +20,16 @@ class MakerDiffReward
|
||||
$role = 'maker';
|
||||
$cap = (float) ($bonus[$node['level']] ?? 0);
|
||||
if (!$active->isActive($node['agent'] ?? $node)) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $node['user_id'], 'maker_diff', $role, 'inactive_30d', '创客 30 日无自购,不占水位');
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $node['user_id'], 'maker_diff', $role, 'inactive_30d', '创客 30 日无自购,不占进阶基数');
|
||||
continue;
|
||||
}
|
||||
if ($cap <= $seen) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $node['user_id'], 'maker_diff', $role, 'cap_not_higher', "水位 {$seen},等级基数 {$cap}");
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $node['user_id'], 'maker_diff', $role, 'cap_not_higher', "当前基数 {$seen},等级基数 {$cap}");
|
||||
continue;
|
||||
}
|
||||
$pay = round($cap - $seen, 2);
|
||||
PartnerRewardService::account($order, $buyerId, $node['user_id'], 'maker_diff', $role, $pay, $cap, [
|
||||
'formula' => "极差 {$cap} - {$seen} = {$pay}",
|
||||
'formula' => "创客进阶 {$cap} - {$seen} = {$pay}",
|
||||
'seen_before' => $seen,
|
||||
'cap' => $cap,
|
||||
'level' => $node['level'],
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace addons\shopro\service\partner;
|
||||
|
||||
/**
|
||||
* 创客平级(逐代 10% 递减级联,最低发放不能少于 0.10 元截断)/ 被超越 5%(只一层)
|
||||
* 创客协同(逐代 10% 递减级联,最低发放不能少于 0.10 元截断)/ 创客卓越 5%(只一层)
|
||||
*/
|
||||
class MakerPeerReward
|
||||
{
|
||||
@@ -59,7 +59,7 @@ class MakerPeerReward
|
||||
'maker_peer',
|
||||
'maker',
|
||||
'inactive_30d',
|
||||
"平级创客(第{$gen}代) 30 日无自购"
|
||||
"协同创客(第{$gen}代) 30 日无自购"
|
||||
);
|
||||
} else {
|
||||
PartnerRewardService::account(
|
||||
@@ -72,7 +72,7 @@ class MakerPeerReward
|
||||
$currentBase,
|
||||
[
|
||||
'generation' => $gen,
|
||||
'formula' => "平级(第{$gen}代) {$currentBase} × " . ($peerRate * 100) . "% = {$amount}",
|
||||
'formula' => "创客协同(第{$gen}代) {$currentBase} × " . ($peerRate * 100) . "% = {$amount}",
|
||||
'from_user_id' => $sourceUserId,
|
||||
'level' => $item['level'],
|
||||
]
|
||||
@@ -103,14 +103,14 @@ class MakerPeerReward
|
||||
}
|
||||
$amount = round((float) $highest['cap'] * $overRate, 2);
|
||||
if (!$active->isActive($lower['agent'] ?? $lower)) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $lower['user_id'], 'maker_overtaken', 'maker', 'inactive_30d', '被超越创客 30 日无自购');
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $lower['user_id'], 'maker_overtaken', 'maker', 'inactive_30d', '卓越创客 30 日无自购');
|
||||
return;
|
||||
}
|
||||
if ($amount < $minAmount) {
|
||||
return;
|
||||
}
|
||||
PartnerRewardService::account($order, $buyerId, $lower['user_id'], 'maker_overtaken', 'maker', $amount, $highest['cap'], [
|
||||
'formula' => "超越奖 最高水位 {$highest['cap']} × " . ($overRate * 100) . "% = {$amount}",
|
||||
'formula' => "创客卓越 最高基数 {$highest['cap']} × " . ($overRate * 100) . "% = {$amount}",
|
||||
'from_user_id' => $highest['user_id'],
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -77,46 +77,46 @@ class PartnerConfig
|
||||
public static function rewardTypeMap()
|
||||
{
|
||||
return [
|
||||
'push3' => '推三返一',
|
||||
'maker_diff' => '创客极差奖',
|
||||
'maker_peer' => '创客平级奖',
|
||||
'maker_overtaken' => '创客超越奖',
|
||||
'team_venue' => '酒道馆团队奖',
|
||||
'team_county' => '区县团队奖',
|
||||
'venue_peer' => '酒道馆平级奖',
|
||||
'county_peer' => '区县平级奖',
|
||||
'venue_share' => '酒道馆平台均分',
|
||||
'county_share' => '区县平台均分',
|
||||
'madow_share' => '每日分红马豆',
|
||||
'voucher_grant' => '兑换券发放',
|
||||
'voucher_release' => '兑换券释放',
|
||||
'voucher_consume' => '兑换券消费抵扣',
|
||||
'voucher_consume_refund' => '兑换券退款退还',
|
||||
'push3' => '推荐开拓奖',
|
||||
'maker_diff' => '创客进阶奖',
|
||||
'maker_peer' => '创客协同奖',
|
||||
'maker_overtaken' => '创客卓越奖',
|
||||
'team_venue' => '酒道馆运营奖',
|
||||
'team_county' => '区县统筹奖',
|
||||
'venue_peer' => '酒道馆协同奖',
|
||||
'county_peer' => '区县协同奖',
|
||||
'venue_share' => '酒道馆加权奖励',
|
||||
'county_share' => '区县加权奖励',
|
||||
'madow_share' => '每日贡献马豆',
|
||||
'voucher_grant' => '消费补贴发放',
|
||||
'voucher_release' => '消费补贴到账',
|
||||
'voucher_consume' => '消费券抵扣',
|
||||
'voucher_consume_refund' => '消费券退款退还',
|
||||
];
|
||||
}
|
||||
|
||||
public static function skipReasonText($code, $forUser = false)
|
||||
{
|
||||
$inner = [
|
||||
'no_parent' => '无直推上级',
|
||||
'self_buy' => '自购',
|
||||
'no_parent' => '无推荐上级',
|
||||
'self_buy' => '本人自购',
|
||||
'inactive_30d' => '受益人 30 日无自购',
|
||||
'not_maker' => '不是创客',
|
||||
'not_venue' => '不是酒道馆',
|
||||
'not_county' => '不是区县代理',
|
||||
'cap_not_higher' => '等级未超过水位',
|
||||
'not_maker' => '不是创客身份',
|
||||
'not_venue' => '不是酒道馆身份',
|
||||
'not_county' => '不是区县代理身份',
|
||||
'cap_not_higher' => '等级未超过基数水位',
|
||||
'already_settled' => '幂等跳过',
|
||||
'partner_goods_off' => '商品未参与',
|
||||
'partner_off' => '结算未开启',
|
||||
];
|
||||
$user = [
|
||||
'no_parent' => '暂无推荐人,不产生推三返一',
|
||||
'self_buy' => '自己下单不产生推三返一',
|
||||
'inactive_30d' => '需 30 日内有本人订单才能领取',
|
||||
'no_parent' => '暂无推荐人,不计提推荐开拓奖',
|
||||
'self_buy' => '本人下单不计提推荐开拓奖',
|
||||
'inactive_30d' => '需 30 日内有本人订单才能领取奖励',
|
||||
'not_maker' => '',
|
||||
'not_venue' => '',
|
||||
'not_county' => '',
|
||||
'cap_not_higher' => '平级不发极差,走平级奖',
|
||||
'cap_not_higher' => '同阶不计进阶差额,享受协同奖励',
|
||||
'already_settled' => '',
|
||||
'partner_goods_off' => '',
|
||||
'partner_off' => '',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace addons\shopro\service\partner;
|
||||
|
||||
/**
|
||||
* 酒道馆 / 区县平级 10% 逐代递减级联,最低发放不能少于 0.10 元截断
|
||||
* 酒道馆 / 区县协同奖 10% 逐代递减级联,最低发放不能少于 0.10 元截断
|
||||
*/
|
||||
class PeerShareReward
|
||||
{
|
||||
@@ -62,7 +62,7 @@ class PeerShareReward
|
||||
$type,
|
||||
$role,
|
||||
'inactive_30d',
|
||||
"{$label}平级(第{$gen}代) 30 日无自购"
|
||||
"{$label}协同(第{$gen}代) 30 日无自购"
|
||||
);
|
||||
} else {
|
||||
PartnerRewardService::account(
|
||||
@@ -75,7 +75,7 @@ class PeerShareReward
|
||||
$currentBase,
|
||||
[
|
||||
'generation' => $gen,
|
||||
'formula' => "{$label}平级(第{$gen}代) {$currentBase} × " . ($rate * 100) . "% = {$amount}",
|
||||
'formula' => "{$label}协同(第{$gen}代) {$currentBase} × " . ($rate * 100) . "% = {$amount}",
|
||||
'from_user_id' => $sourceUserId,
|
||||
]
|
||||
);
|
||||
|
||||
@@ -5,26 +5,26 @@ namespace addons\shopro\service\partner;
|
||||
use app\admin\model\shopro\commission\Agent as AgentModel;
|
||||
|
||||
/**
|
||||
* 推三返一:398/400/600 循环,计到直推上级,自购不发
|
||||
* 推荐开拓奖:398/400/600 循环,计到推荐人,自购不发
|
||||
*/
|
||||
class Push3Reward
|
||||
{
|
||||
public function run($order, $buyerId, $parent, ActiveService $active)
|
||||
{
|
||||
if (!$parent) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, 0, 'push3', 'taster', 'no_parent', '无直推上级');
|
||||
PartnerRewardService::writeSkip($order, $buyerId, 0, 'push3', 'taster', 'no_parent', '暂无推荐人,不计提推荐开拓奖');
|
||||
return;
|
||||
}
|
||||
if (intval($parent['user_id']) === intval($buyerId)) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $parent['user_id'], 'push3', 'taster', 'self_buy', '自购不产生推三返一');
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $parent['user_id'], 'push3', 'taster', 'self_buy', '本人下单不计提推荐开拓奖');
|
||||
return;
|
||||
}
|
||||
if (intval($parent['level']) < 1) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $parent['user_id'], 'push3', 'taster', 'no_parent', '直推上级不是品酒师/创客');
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $parent['user_id'], 'push3', 'taster', 'no_parent', '推荐上级未开通身份');
|
||||
return;
|
||||
}
|
||||
if (!$active->isActive($parent['agent'] ?? $parent)) {
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $parent['user_id'], 'push3', 'taster', 'inactive_30d', '直推上级 30 日无自购');
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $parent['user_id'], 'push3', 'taster', 'inactive_30d', '需 30 日内有本人订单才能领取奖励');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class Push3Reward
|
||||
$amount = $amounts[($seq - 1) % 3];
|
||||
|
||||
PartnerRewardService::account($order, $buyerId, $agent->user_id, 'push3', 'taster', $amount, $amount, [
|
||||
'formula' => "直推第{$seq}单,循环第" . ((($seq - 1) % 3) + 1) . "档 +{$amount}",
|
||||
'formula' => "推荐开拓第{$seq}单,循环第" . ((($seq - 1) % 3) + 1) . "档 +{$amount}",
|
||||
'seq' => $seq,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace addons\shopro\service\partner;
|
||||
|
||||
/**
|
||||
* 团队拆 100:无馆有县=100;有馆有县=50+50;有馆无县=50
|
||||
* 统筹运营奖励:无馆有县=100;有馆有县=50+50;有馆无县=50
|
||||
*/
|
||||
class TeamSplitReward
|
||||
{
|
||||
@@ -26,7 +26,7 @@ class TeamSplitReward
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $venue['user_id'], 'team_venue', 'venue', 'inactive_30d', '酒道馆 30 日无自购');
|
||||
} else {
|
||||
PartnerRewardService::account($order, $buyerId, $venue['user_id'], 'team_venue', 'venue', $venueSplit, $venueSplit, [
|
||||
'formula' => "酒道馆团队拆分 {$venueSplit}",
|
||||
'formula' => "酒道馆运营奖 {$venueSplit}",
|
||||
]);
|
||||
$result['venue'] = ['user_id' => $venue['user_id'], 'amount' => $venueSplit, 'index' => $venue['index']];
|
||||
}
|
||||
@@ -38,7 +38,7 @@ class TeamSplitReward
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $county['user_id'], 'team_county', 'county', 'inactive_30d', '区县 30 日无自购');
|
||||
} else {
|
||||
PartnerRewardService::account($order, $buyerId, $county['user_id'], 'team_county', 'county', $amount, $amount, [
|
||||
'formula' => $venue ? "区县团队拆分 {$amount}(馆上)" : "无馆区县全额 {$amount}",
|
||||
'formula' => $venue ? "区县统筹奖 {$amount}(馆上)" : "区县统筹奖 {$amount}(直达)",
|
||||
]);
|
||||
$result['county'] = ['user_id' => $county['user_id'], 'amount' => $amount, 'index' => $county['index']];
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户