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']];
|
||||
}
|
||||
|
||||
@@ -47,13 +47,13 @@ class Reward extends Common
|
||||
'user_nickname' => '受益人',
|
||||
'buyer_nickname' => '买家',
|
||||
'order_id' => '订单',
|
||||
'reward_type_text' => '奖项',
|
||||
'role_text' => '角色',
|
||||
'amount' => '金额',
|
||||
'reward_type_text' => '奖励类型',
|
||||
'role_text' => '合伙身份',
|
||||
'amount' => '结算金额',
|
||||
'madow' => '马豆',
|
||||
'base_amount' => '基数',
|
||||
'status_text' => '状态',
|
||||
'formula' => '公式',
|
||||
'formula' => '测算摘要',
|
||||
];
|
||||
$total = $this->model->sheepFilter()->count();
|
||||
if ($total <= 0) {
|
||||
@@ -61,7 +61,7 @@ class Reward extends Common
|
||||
}
|
||||
$export = new \addons\shopro\library\Export();
|
||||
$params = [
|
||||
'file_name' => '合伙股东收益流水',
|
||||
'file_name' => '合伙人服务收益结算台账',
|
||||
'cell_titles' => $cellTitles,
|
||||
'total' => $total,
|
||||
'is_sub_cell' => false,
|
||||
|
||||
@@ -21,7 +21,7 @@ class WalletLog extends Common
|
||||
const TYPE_MAP = [
|
||||
'money' => '余额',
|
||||
'score' => '积分',
|
||||
'commission' => '佣金'
|
||||
'commission' => '服务收益'
|
||||
];
|
||||
|
||||
protected $eventMap = [
|
||||
@@ -42,24 +42,24 @@ class WalletLog extends Common
|
||||
'recharge_gift' => '线上充值-赠送余额',
|
||||
'activity_gift' => '活动-赠送余额',
|
||||
'order_refund' => '订单退款-退还余额',
|
||||
'transfer_by_commission' => '佣金-转入到余额'
|
||||
'transfer_by_commission' => '服务收益-转入到余额'
|
||||
],
|
||||
'commission' => [
|
||||
'withdraw' => '提现',
|
||||
'withdraw_error' => '提现失败-返还佣金',
|
||||
'reward_income' => '佣金-收益',
|
||||
'reward_back' => '佣金-退还',
|
||||
'transfer_to_money' => '佣金-转出到余额',
|
||||
'push3' => '推三返一',
|
||||
'maker_diff' => '创客极差奖',
|
||||
'maker_peer' => '创客平级奖',
|
||||
'maker_overtaken' => '创客超越奖',
|
||||
'team_venue' => '酒道馆团队奖',
|
||||
'team_county' => '区县团队奖',
|
||||
'venue_peer' => '酒道馆平级奖',
|
||||
'county_peer' => '区县平级奖',
|
||||
'venue_share' => '酒道馆平台均分',
|
||||
'county_share' => '区县平台均分'
|
||||
'withdraw_error' => '提现失败-返还收益',
|
||||
'reward_income' => '服务收益-入账',
|
||||
'reward_back' => '服务收益-退还',
|
||||
'transfer_to_money' => '服务收益-转出到余额',
|
||||
'push3' => '推荐开拓奖',
|
||||
'maker_diff' => '创客进阶奖',
|
||||
'maker_peer' => '创客协同奖',
|
||||
'maker_overtaken' => '创客卓越奖',
|
||||
'team_venue' => '酒道馆运营奖',
|
||||
'team_county' => '区县统筹奖',
|
||||
'venue_peer' => '酒道馆协同奖',
|
||||
'county_peer' => '区县协同奖',
|
||||
'venue_share' => '酒道馆加权奖励',
|
||||
'county_share' => '区县加权奖励'
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<el-table-column label="一级(自购)佣金比例" min-width="160">
|
||||
<template #default="scope"> {{ scope.row.commission_rules?.commission_1 }}% </template>
|
||||
</el-table-column>
|
||||
<el-table-column label="极差基数" min-width="120">
|
||||
<el-table-column label="进阶奖励基数" min-width="120">
|
||||
<template #default="scope">
|
||||
<span v-if="Number(scope.row.level) >= 2">¥{{ state.makerBonus[scope.row.level] || state.makerBonus[String(scope.row.level)] || '-' }}</span>
|
||||
<span v-else>-</span>
|
||||
|
||||
@@ -898,7 +898,7 @@
|
||||
<el-form-item label="关系链最大深度">
|
||||
<el-input class="sa-w-360" v-model="form.model.partner_chain_max_depth" type="number"></el-input>
|
||||
</el-form-item>
|
||||
<div class="sa-title is-line">推三返一</div>
|
||||
<div class="sa-title is-line">推荐开拓奖</div>
|
||||
<el-form-item label="循环金额">
|
||||
<div class="sa-flex" style="gap:8px">
|
||||
<el-input class="sa-w-120" v-model="form.model.partner_push3_amounts[0]"></el-input>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
</el-container>
|
||||
|
||||
<!-- 日结预跑试算弹窗 (Dry Run) -->
|
||||
<el-dialog v-model="previewDialog.visible" title="日结分润试算 (Dry Run 预跑监控)" width="820px" destroy-on-close>
|
||||
<el-dialog v-model="previewDialog.visible" title="日结收益试算 (Dry Run 预跑监控)" width="820px" destroy-on-close>
|
||||
<div style="margin-bottom:16px;" class="sa-flex sa-row-between">
|
||||
<div class="sa-flex" style="gap:10px;">
|
||||
<span style="font-size:13px;color:#606266;">试算日期:</span>
|
||||
@@ -86,11 +86,11 @@
|
||||
<div style="font-size:16px;font-weight:bold;margin-top:2px;">¥ {{ previewDialog.result.gmv }}</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div style="font-size:12px;color:#909399;">当日即时奖 (推三/极差等)</div>
|
||||
<div style="font-size:12px;color:#909399;">当日即时奖励 (推荐/进阶等)</div>
|
||||
<div style="font-size:16px;font-weight:bold;color:#f56c6c;margin-top:2px;">¥ {{ previewDialog.result.financial?.instant_cash }}</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div style="font-size:12px;color:#909399;">日结均分现金 (馆/县)</div>
|
||||
<div style="font-size:12px;color:#909399;">日结加权现金 (馆/县)</div>
|
||||
<div style="font-size:16px;font-weight:bold;color:#f56c6c;margin-top:2px;">¥ {{ previewDialog.result.financial?.daily_cash }}</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
@@ -101,7 +101,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-if="previewDialog.result.financial?.is_alert" style="margin-top:8px;font-size:12px;color:#f56c6c;">
|
||||
⚠️ 注意:当日综合现金拨比超过 70% 财务风控警示线,建议关注极差/平级奖金释放与均分池规模。
|
||||
⚠️ 注意:当日综合现金拨比超过 70% 财务风控警示线,建议关注进阶/协同奖励释放与加权池规模。
|
||||
</div>
|
||||
<div style="margin-top:8px;font-size:12px;color:#67c23a;">
|
||||
💡 沉淀资金效益:因分母为0留存平台的酒道馆/区县资金为 <b>¥ {{ previewDialog.result.financial?.saved_cash }}</b>。
|
||||
@@ -112,33 +112,33 @@
|
||||
<el-row :gutter="16" style="margin-bottom:16px;">
|
||||
<el-col :span="8">
|
||||
<div style="background:#f4f4f5;padding:12px;border-radius:6px;">
|
||||
<div style="font-weight:600;font-size:13px;margin-bottom:6px;">酒道馆均分池</div>
|
||||
<div style="font-weight:600;font-size:13px;margin-bottom:6px;">酒道馆加权奖励池</div>
|
||||
<div style="font-size:12px;color:#606266;line-height:1.8;">
|
||||
奖池总额:¥ <b>{{ previewDialog.result.venue?.pool }}</b><br>
|
||||
合格人数:<b>{{ previewDialog.result.venue?.user_count }}</b> 人<br>
|
||||
人均分润:¥ <b>{{ previewDialog.result.venue?.each }}</b><br>
|
||||
人均奖励:¥ <b>{{ previewDialog.result.venue?.each }}</b><br>
|
||||
沉淀金额:¥ <b>{{ previewDialog.result.venue?.saved }}</b>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div style="background:#f4f4f5;padding:12px;border-radius:6px;">
|
||||
<div style="font-weight:600;font-size:13px;margin-bottom:6px;">区县代理均分池</div>
|
||||
<div style="font-weight:600;font-size:13px;margin-bottom:6px;">区县代理加权奖励池</div>
|
||||
<div style="font-size:12px;color:#606266;line-height:1.8;">
|
||||
奖池总额:¥ <b>{{ previewDialog.result.county?.pool }}</b><br>
|
||||
合格人数:<b>{{ previewDialog.result.county?.user_count }}</b> 人<br>
|
||||
人均分润:¥ <b>{{ previewDialog.result.county?.each }}</b><br>
|
||||
人均奖励:¥ <b>{{ previewDialog.result.county?.each }}</b><br>
|
||||
沉淀金额:¥ <b>{{ previewDialog.result.county?.saved }}</b>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div style="background:#f4f4f5;padding:12px;border-radius:6px;">
|
||||
<div style="font-weight:600;font-size:13px;margin-bottom:6px;">马豆分红池 (1:1 GMV)</div>
|
||||
<div style="font-weight:600;font-size:13px;margin-bottom:6px;">马豆贡献池 (1:1 GMV)</div>
|
||||
<div style="font-size:12px;color:#606266;line-height:1.8;">
|
||||
马豆总池:<b>{{ previewDialog.result.madow?.pool }}</b> 豆<br>
|
||||
合格人数:<b>{{ previewDialog.result.madow?.user_count }}</b> 人<br>
|
||||
人均分豆:<b>{{ previewDialog.result.madow?.each }}</b><br>
|
||||
人均马豆:<b>{{ previewDialog.result.madow?.each }}</b><br>
|
||||
即时汇率:<b>{{ previewDialog.result.rate }}</b>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -47,9 +47,9 @@
|
||||
<span v-else>{{ scope.row.order?.order_sn || scope.row.order_id }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="reward_type_text" label="奖项" min-width="120"></el-table-column>
|
||||
<el-table-column prop="role_text" label="角色" min-width="80"></el-table-column>
|
||||
<el-table-column label="金额" min-width="90">
|
||||
<el-table-column prop="reward_type_text" label="奖励类型" min-width="120"></el-table-column>
|
||||
<el-table-column prop="role_text" label="合伙身份" min-width="80"></el-table-column>
|
||||
<el-table-column label="结算金额" min-width="90">
|
||||
<template #default="scope"> {{ scope.row.amount }} </template>
|
||||
</el-table-column>
|
||||
<el-table-column label="马豆" min-width="110">
|
||||
@@ -63,11 +63,11 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="formula" label="公式摘要" min-width="200"></el-table-column>
|
||||
<el-table-column prop="formula" label="测算摘要" min-width="200"></el-table-column>
|
||||
<el-table-column label="操作" min-width="180" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.order_id > 0" type="primary" link @click="onOrderTree(scope.row)">整单透视</el-button>
|
||||
<el-button type="primary" link @click="onViewExt(scope.row)">查看公式</el-button>
|
||||
<el-button type="primary" link @click="onViewExt(scope.row)">测算明细</el-button>
|
||||
{if $auth->check('shopro/partner/reward/back')}
|
||||
<el-button v-if="scope.row.status==1 && !scope.row.settle_date" type="danger" link
|
||||
@click="onBack(scope.row)">退回</el-button>
|
||||
@@ -85,13 +85,13 @@
|
||||
</el-footer>
|
||||
</el-container>
|
||||
<sa-filter v-model="state.filter" @filter-change="onChangeFilter"></sa-filter>
|
||||
<el-dialog v-model="ext.visible" title="公式明细" width="520px">
|
||||
<el-dialog v-model="ext.visible" title="测算明细" width="520px">
|
||||
<pre style="white-space:pre-wrap">{{ ext.text }}</pre>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="reissue.visible" title="手工补发" width="480px">
|
||||
<el-form label-width="90px">
|
||||
<el-form-item label="用户ID"><el-input v-model="reissue.form.user_id"></el-input></el-form-item>
|
||||
<el-form-item label="奖项"><el-input v-model="reissue.form.reward_type" placeholder="如 push3"></el-input></el-form-item>
|
||||
<el-form-item label="奖励类型"><el-input v-model="reissue.form.reward_type" placeholder="如 push3"></el-input></el-form-item>
|
||||
<el-form-item label="金额"><el-input v-model="reissue.form.amount"></el-input></el-form-item>
|
||||
<el-form-item label="订单ID"><el-input v-model="reissue.form.order_id"></el-input></el-form-item>
|
||||
<el-form-item label="备注"><el-input v-model="reissue.form.memo" type="textarea"></el-input></el-form-item>
|
||||
@@ -101,7 +101,7 @@
|
||||
<el-button type="primary" @click="onReissue">确定</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="orderTreeDialog.visible" title="订单分润透视(利益分配树)" width="860px" destroy-on-close>
|
||||
<el-dialog v-model="orderTreeDialog.visible" title="订单服务收益透视(结算明细树)" width="860px" destroy-on-close>
|
||||
<div v-loading="orderTreeDialog.loading">
|
||||
<div style="background:#f8f9fa;padding:14px;border-radius:6px;margin-bottom:16px;">
|
||||
<el-row :gutter="16">
|
||||
@@ -127,36 +127,36 @@
|
||||
<el-divider style="margin:12px 0"></el-divider>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="8">
|
||||
<div style="color:#909399;font-size:12px;">本单现金分润总额</div>
|
||||
<div style="color:#909399;font-size:12px;">本单服务收益总额</div>
|
||||
<div style="font-weight:bold;font-size:18px;color:#f56c6c;margin-top:2px;">¥ {{ orderTreeDialog.data.summary?.total_cash || '0.00' }}</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div style="color:#909399;font-size:12px;">现金综合拨比率</div>
|
||||
<div style="color:#909399;font-size:12px;">综合结算拨比率</div>
|
||||
<div style="font-weight:bold;font-size:18px;margin-top:2px;" :style="{color: parseFloat(orderTreeDialog.data.summary?.payout_ratio || 0) > 70 ? '#e6a23c' : '#67c23a'}">
|
||||
{{ orderTreeDialog.data.summary?.payout_ratio || '0%' }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div style="color:#909399;font-size:12px;">分红马豆 (1:1 GMV)</div>
|
||||
<div style="color:#909399;font-size:12px;">贡献马豆 (1:1 GMV)</div>
|
||||
<div style="font-weight:bold;font-size:18px;color:#409eff;margin-top:2px;">{{ orderTreeDialog.data.summary?.total_madow || '0.00000000' }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-if="orderTreeDialog.data.voucher_plan" style="margin-top:12px;background:#fff;padding:8px 12px;border-radius:4px;border:1px dashed #dcdfe6;font-size:12px;color:#606266;">
|
||||
<span style="font-weight:600;color:#303133;">1.5倍兑换券履约计划:</span>
|
||||
<span style="font-weight:600;color:#303133;">1.5倍消费补贴履约计划:</span>
|
||||
总额 ¥ {{ orderTreeDialog.data.voucher_plan.total_amount }},已释放 ¥ {{ orderTreeDialog.data.voucher_plan.released_amount }} (已释放 {{ orderTreeDialog.data.voucher_plan.released_days }}/365天),状态:{{ orderTreeDialog.data.voucher_plan.status_text }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="font-weight:600;margin-bottom:8px;font-size:14px;">利益链分配明细</div>
|
||||
<div style="font-weight:600;margin-bottom:8px;font-size:14px;">服务收益分配明细</div>
|
||||
<el-table :data="orderTreeDialog.data.rewards || []" size="small" border stripe max-height="320">
|
||||
<el-table-column prop="role_text" label="受益角色" width="90"></el-table-column>
|
||||
<el-table-column prop="role_text" label="结算身份" width="90"></el-table-column>
|
||||
<el-table-column label="受益人" min-width="130">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.user_nickname }} (ID:{{ scope.row.user_id }})</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="reward_type_text" label="奖项" width="130"></el-table-column>
|
||||
<el-table-column label="现金金额" width="100">
|
||||
<el-table-column prop="reward_type_text" label="奖励类型" width="130"></el-table-column>
|
||||
<el-table-column label="结算金额" width="100">
|
||||
<template #default="scope">
|
||||
<span style="font-weight:600;color:#f56c6c;">¥ {{ scope.row.amount }}</span>
|
||||
</template>
|
||||
@@ -169,7 +169,7 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="formula" label="计算规则/说明" min-width="180"></el-table-column>
|
||||
<el-table-column prop="formula" label="测算规则/说明" min-width="180"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<template #footer>
|
||||
|
||||
@@ -49,22 +49,22 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
},
|
||||
'order.order_sn': { type: 'tinput', label: '订单号', placeholder: '请输入查询内容', value: '' },
|
||||
reward_type: {
|
||||
type: 'tselect', label: '奖项类型', value: '',
|
||||
type: 'tselect', label: '奖励类型', value: '',
|
||||
options: {
|
||||
data: [
|
||||
{ label: '推三返一', value: 'push3' },
|
||||
{ label: '创客极差奖', value: 'maker_diff' },
|
||||
{ label: '创客平级奖', value: 'maker_peer' },
|
||||
{ label: '创客超越奖', value: 'maker_overtaken' },
|
||||
{ label: '酒道馆团队奖', value: 'team_venue' },
|
||||
{ label: '区县团队奖', value: 'team_county' },
|
||||
{ label: '酒道馆平级奖', value: 'venue_peer' },
|
||||
{ label: '区县平级奖', value: 'county_peer' },
|
||||
{ label: '酒道馆平台均分', value: 'venue_share' },
|
||||
{ label: '区县平台均分', value: 'county_share' },
|
||||
{ label: '每日分红马豆', value: 'madow_share' },
|
||||
{ label: '兑换券发放', value: 'voucher_grant' },
|
||||
{ label: '兑换券释放', value: 'voucher_release' },
|
||||
{ label: '推荐开拓奖', value: 'push3' },
|
||||
{ label: '创客进阶奖', value: 'maker_diff' },
|
||||
{ label: '创客协同奖', value: 'maker_peer' },
|
||||
{ label: '创客卓越奖', value: 'maker_overtaken' },
|
||||
{ label: '酒道馆运营奖', value: 'team_venue' },
|
||||
{ label: '区县统筹奖', value: 'team_county' },
|
||||
{ label: '酒道馆协同奖', value: 'venue_peer' },
|
||||
{ label: '区县协同奖', value: 'county_peer' },
|
||||
{ label: '酒道馆加权奖励', value: 'venue_share' },
|
||||
{ label: '区县加权奖励', value: 'county_share' },
|
||||
{ label: '每日贡献马豆', value: 'madow_share' },
|
||||
{ label: '消费补贴发放', value: 'voucher_grant' },
|
||||
{ label: '消费补贴到账', value: 'voucher_release' },
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -161,7 +161,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
}
|
||||
function onBackOrder(row) {
|
||||
const { ElMessageBox } = ElementPlus
|
||||
ElMessageBox.confirm('将退回该订单全部即时奖并关闭兑换券计划。确定?', '整单退回', {
|
||||
ElMessageBox.confirm('将退回该订单全部即时奖励并关闭消费补贴计划。确定?', '整单退回', {
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
Fast.api.ajax({
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
>
|
||||
<template #rightBottom>
|
||||
<view class="ss-flex ss-row-between">
|
||||
<view class="commission-num">预计佣金:¥{{ item.commission }}</view>
|
||||
<view class="commission-num">预计收益:¥{{ item.commission }}</view>
|
||||
<button
|
||||
class="ss-reset-button share-btn ui-BG-Main-Gradient"
|
||||
@tap.stop="onShareGoods(item)"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<commission-info />
|
||||
<!-- 30 日活跃警示 -->
|
||||
<view v-if="userInfo?.active_30d === false || agentInfo?.active_30d === false" class="active-warn">
|
||||
<view class="warn-text">近 30 日暂无本人订单,推广与分红已暂停。</view>
|
||||
<view class="warn-text">近 30 日暂无本人订单,业务奖励已暂停。</view>
|
||||
<button class="ss-reset-button warn-btn" @tap="sheep.$router.go('/pages/index/index')">
|
||||
去首页
|
||||
</button>
|
||||
|
||||
@@ -20,14 +20,14 @@
|
||||
<s-empty
|
||||
v-if="state.inited && state.list.length === 0"
|
||||
icon="/static/data-empty.png"
|
||||
text="完成一笔订单后,次日 00:30 起参与分红。"
|
||||
text="完成一笔订单后,次日 00:30 起参与马豆核算。"
|
||||
></s-empty>
|
||||
|
||||
<view v-if="state.list.length > 0">
|
||||
<view class="wallet-list ss-flex border-bottom" v-for="(item, index) in state.list" :key="item.id || index">
|
||||
<view class="list-content">
|
||||
<view class="title-box ss-flex ss-row-between ss-m-b-12">
|
||||
<text class="title">每日分红马豆</text>
|
||||
<text class="title">每日贡献马豆</text>
|
||||
<view class="money">
|
||||
<text class="add">+{{ item.madow || item.amount || '0' }}</text>
|
||||
</view>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
<view class="header-box ss-flex ss-row-center ss-col-center">
|
||||
<view class="card-box ui-BG-Main ui-Shadow-Main">
|
||||
<view class="card-head ss-flex ss-col-center">
|
||||
<view class="card-title">本月已入账现金(元)</view>
|
||||
<view class="card-title">本月已结算收益(元)</view>
|
||||
</view>
|
||||
<view class="money-num ss-m-t-24">{{ state.overview.month_income || '0.00' }}</view>
|
||||
<view class="card-sub ss-m-t-20">
|
||||
本月未发放 {{ state.overview.skip_count || 0 }} 笔
|
||||
本月未达成 {{ state.overview.skip_count || 0 }} 笔
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -24,7 +24,7 @@
|
||||
<s-empty
|
||||
v-if="state.inited && state.pagination.total === 0"
|
||||
icon="/static/data-empty.png"
|
||||
text="暂无收益记录,邀请好友下单后将在此展示。"
|
||||
text="暂无收益记录,推荐好友下单后将在此展示。"
|
||||
></s-empty>
|
||||
|
||||
<view v-if="state.pagination.total > 0">
|
||||
@@ -85,7 +85,7 @@
|
||||
时间:{{ state.current.createtime }}
|
||||
</view>
|
||||
<view class="detail-row ss-m-b-12" v-if="state.current.formula">
|
||||
公式:{{ state.current.formula }}
|
||||
测算:{{ state.current.formula }}
|
||||
</view>
|
||||
<view class="skip-text" v-if="state.current.skip_reason_text">
|
||||
{{ state.current.skip_reason_text }}
|
||||
@@ -105,11 +105,11 @@
|
||||
|
||||
const tabMaps = [
|
||||
{ name: '全部', value: 'all' },
|
||||
{ name: '推三返一', value: 'push3' },
|
||||
{ name: '开拓奖', value: 'push3' },
|
||||
{ name: '创客', value: 'maker' },
|
||||
{ name: '酒道馆', value: 'venue' },
|
||||
{ name: '区县', value: 'county' },
|
||||
{ name: '均分', value: 'share' },
|
||||
{ name: '加权奖励', value: 'share' },
|
||||
];
|
||||
|
||||
const emptyPagination = {
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
</view>
|
||||
<view v-else class="status-pill pill-gray">
|
||||
<text class="status-dot dot-gray"></text>
|
||||
<text>已暂停分红</text>
|
||||
<text>奖励已暂停</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -268,7 +268,7 @@
|
||||
<view class="metrics-grid ss-flex ss-col-center ss-row-between ss-m-t-20">
|
||||
<view class="metric-col ss-flex-col ss-col-center">
|
||||
<view class="metric-val">{{ item.child_user_count_1 || 0 }}</view>
|
||||
<view class="metric-lbl">直推裂变(人)</view>
|
||||
<view class="metric-lbl">推荐好友(人)</view>
|
||||
</view>
|
||||
<view class="metric-divider"></view>
|
||||
<view class="metric-col ss-flex-col ss-col-center">
|
||||
@@ -285,7 +285,7 @@
|
||||
<view class="metric-val">
|
||||
{{ item.agent?.direct_order_seq !== undefined ? '第' + item.agent.direct_order_seq + '单' : '--' }}
|
||||
</view>
|
||||
<view class="metric-lbl">推三返一序号</view>
|
||||
<view class="metric-lbl">开拓循环序号</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
? '正常领取中'
|
||||
: state.currentMember.active_status === 'expiring'
|
||||
? '临期预警(剩' + state.currentMember.days_remaining + '天)'
|
||||
: '已暂停分红与计奖'
|
||||
: '业务奖励已暂停'
|
||||
}}
|
||||
</text>
|
||||
</view>
|
||||
@@ -443,7 +443,7 @@
|
||||
</text>
|
||||
</view>
|
||||
<view class="detail-line ss-flex ss-row-between ss-m-t-12">
|
||||
<text class="line-label">推三返一序号:</text>
|
||||
<text class="line-label">推荐开拓序号:</text>
|
||||
<text class="line-val">
|
||||
{{ state.currentMember.agent?.direct_order_seq !== undefined ? '当前第 ' + state.currentMember.agent.direct_order_seq + ' 单' : '0 单' }}
|
||||
</text>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
<view class="ss-flex">
|
||||
<view class="loading-money">
|
||||
<view class="loading-money-title">待入账佣金</view>
|
||||
<view class="loading-money-title">待结算收益</view>
|
||||
<view class="loading-money-num">{{
|
||||
state.showMoney ? agentInfo.pending_reward || '0.00' : '*****'
|
||||
}}</view>
|
||||
@@ -86,7 +86,7 @@
|
||||
>
|
||||
<view class="ss-p-x-20 ss-p-y-30">
|
||||
<view class="model-title ss-m-b-30 ss-m-l-20">转余额</view>
|
||||
<view class="model-subtitle ss-m-b-100 ss-m-l-20">将您的佣金转到余额中继续消费</view>
|
||||
<view class="model-subtitle ss-m-b-100 ss-m-l-20">将您的服务收益转入商城余额继续消费</view>
|
||||
<view class="input-box ss-flex ss-col-center border-bottom ss-m-b-70 ss-m-x-20">
|
||||
<view class="unit">¥</view>
|
||||
<uni-easyinput
|
||||
|
||||
在新工单中引用
屏蔽一个用户