落地合伙股东收益体系,并纳入 sheep 用户端源码。

Co-authored-by: Cursor <cursoragent@cursor.com>
这个提交包含在:
chen
2026-09-17 07:47:35 +08:00
父节点 7747dfaa82
当前提交 251d62296e
共有 595 个文件被更改,包括 90234 次插入 和 105 次删除

查看文件

@@ -51,6 +51,11 @@ class Config extends Common
'name' => 'shopro/config/commission',
'status' => $this->auth->check('shopro/config/commission')
],
[
'label' => '合伙股东',
'name' => 'shopro/config/partner',
'status' => $this->auth->check('shopro/config/commission')
],
[
'label' => '支付配置',
'name' => 'shopro/pay_config',
@@ -181,6 +186,92 @@ class Config extends Common
$this->success('操作成功', null, $configs);
}
/**
* 合伙股东规则
*/
public function partner()
{
$keys = [
'partner_mode', 'partner_enable', 'partner_count_type', 'partner_active_days',
'partner_chain_max_depth', 'partner_push3_amounts', 'partner_madow_mode',
'partner_madow_base_rate', 'partner_madow_step_orders', 'partner_voucher_times',
'partner_voucher_days', 'partner_maker_bonus', 'partner_maker_peer_rate',
'partner_maker_overtaken_rate', 'partner_team_total', 'partner_venue_split',
'partner_county_full', 'partner_venue_share_per_order', 'partner_county_share_per_order',
'partner_venue_peer_rate', 'partner_county_peer_rate',
];
if ('GET' === $this->request->method()) {
$all = ShoproConfig::getConfigs('shop.commission', false) ?: [];
$configs = [];
foreach ($keys as $key) {
$configs[$key] = $all[$key] ?? null;
}
$defaults = [
'partner_mode' => 1,
'partner_enable' => 1,
'partner_count_type' => 'order',
'partner_active_days' => 30,
'partner_chain_max_depth' => 50,
'partner_push3_amounts' => [398, 400, 600],
'partner_madow_mode' => 'madow',
'partner_madow_base_rate' => '0.00000075',
'partner_madow_step_orders' => 1,
'partner_voucher_times' => 1.5,
'partner_voucher_days' => 365,
'partner_maker_bonus' => ['2' => 20, '3' => 40, '4' => 60, '5' => 80, '6' => 100, '7' => 120],
'partner_maker_peer_rate' => 0.10,
'partner_maker_overtaken_rate' => 0.05,
'partner_team_total' => 100,
'partner_venue_split' => 50,
'partner_county_full' => 100,
'partner_venue_share_per_order' => 100,
'partner_county_share_per_order' => 50,
'partner_venue_peer_rate' => 0.10,
'partner_county_peer_rate' => 0.10,
];
foreach ($defaults as $key => $value) {
if ($configs[$key] === null || $configs[$key] === '') {
$configs[$key] = $value;
}
}
} elseif ('POST' === $this->request->method()) {
check_env('commission');
$params = $this->request->param();
$save = [];
foreach ($keys as $key) {
if (array_key_exists($key, $params)) {
$save[$key] = $params[$key];
}
}
if (isset($save['partner_active_days']) && intval($save['partner_active_days']) < 1) {
$this->error('领取窗口天数须 ≥ 1');
}
if (!empty($save['partner_maker_bonus']) && is_array($save['partner_maker_bonus'])) {
$prev = null;
foreach ([2, 3, 4, 5, 6, 7] as $lv) {
$val = isset($save['partner_maker_bonus'][$lv])
? (float) $save['partner_maker_bonus'][$lv]
: (isset($save['partner_maker_bonus'][(string) $lv]) ? (float) $save['partner_maker_bonus'][(string) $lv] : null);
if ($val === null) {
continue;
}
if ($prev !== null && $val < $prev) {
$this->error('创客 V1–V6 单笔基数必须递增');
}
$prev = $val;
}
}
if (isset($save['partner_team_total'], $save['partner_venue_split'])
&& (float) $save['partner_venue_split'] > (float) $save['partner_team_total']) {
$this->error('酒道馆份额不能大于团队拆分总额');
}
$configs = ShoproConfig::setConfigs('shop.commission', $save);
$this->success('规则已更新,仅对之后的新订单生效。', null, $configs);
return;
}
$this->success('操作成功', null, $configs);
}
/**
* 订单配置