@@ -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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 订单配置
|
||||
|
||||
在新工单中引用
屏蔽一个用户