diff --git a/addon/fenxiao/model/FenxiaoOrder.php b/addon/fenxiao/model/FenxiaoOrder.php
index 777e395..714d9a9 100644
--- a/addon/fenxiao/model/FenxiaoOrder.php
+++ b/addon/fenxiao/model/FenxiaoOrder.php
@@ -89,7 +89,7 @@ class FenxiaoOrder extends BaseModel
if($goods_info['goods_kind_id']){
$order_fenxiao_data = $this->getPushFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data,$goods_info['fenxiao_type'],$fenxiao_basic_config);
}
- $order_fenxiao_data = $this->getWholesaleFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data,$fenxiao_basic_config,$goods_info['goods_kind_id']);
+ $order_fenxiao_data = $this->getWholesaleFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data,$fenxiao_basic_config,$goods_info['goods_kind_id'],$goods_info['fenxiao_type']);
if($order_fenxiao_data['commission'] && $order_fenxiao_data['commission_rate']){
$data = [
'order_id' => $order['order_id'],
@@ -189,7 +189,7 @@ class FenxiaoOrder extends BaseModel
return $order_fenxiao_data;
}
- private function getWholesaleFenXiaoCommission($fenxiao_info,$v,&$order_fenxiao_data,$config,$goods_kind = 0){
+ private function getWholesaleFenXiaoCommission($fenxiao_info,$v,&$order_fenxiao_data,$config,$goods_kind = 0,$fenxiao_type = 1){
//不是报单商品才有自购
if($config['self_purchase_rebate'] && $fenxiao_info['level_num'] > 0 && $goods_kind === 0){
$order_fenxiao_data['wholesale_fenxiao_id'][] = $fenxiao_info['fenxiao_id'];
@@ -221,14 +221,14 @@ class FenxiaoOrder extends BaseModel
->select(); //获取上级用户
$nodeUser = $nodeUser ? $nodeUser->toArray() : [];
if(count($nodeUser) > 0){
- $order_fenxiao_data = $this->getWholesaleCommission($nodeUser,$v,$order_fenxiao_data,$chain,$config,$goods_kind);
+ $order_fenxiao_data = $this->getWholesaleCommission($nodeUser,$v,$order_fenxiao_data,$chain,$config,$goods_kind,$fenxiao_type);
}
}
return $order_fenxiao_data;
}
- protected function getWholesaleCommission($nodeUser,$v,&$order_fenxiao_data,$chain,$config,$goods_kind){
+ protected function getWholesaleCommission($nodeUser,$v,&$order_fenxiao_data,$chain,$config,$goods_kind,$fenxiao_type){
//不考虑商品单独规则
$fenxiao_user_id = array_column($nodeUser,'fenxiao_id');
$max_level_num = (int)model('fenxiao_level')->stat([['site_id' ,'=' , $v['site_id']]],'max','level_num');
@@ -241,7 +241,7 @@ class FenxiaoOrder extends BaseModel
$rank = $goods_kind ? count($order_fenxiao_data['wholesale_fenxiao_id']) + 1 : count($order_fenxiao_data['wholesale_fenxiao_id']);
//直推和间推也需要计算
if(!empty($user) && $rank < $user['rank'] && $rank <= 4){
- $rate = $this->getLevelRate($rank,$v['site_id'],$config);
+ $rate = $this->getLevelRate($rank,$v['site_id'],$v['goods_id'],$v[ 'sku_id' ],$user['level_id'],$config,$fenxiao_type);
if($user['rank'] == 1 && ($one_fenxiao_id != $user['fenxiao_id'] && $two_fenxiao_id != $user['fenxiao_id'])){
$order_fenxiao_data['wholesale_fenxiao_id'][] = $user['fenxiao_id'];
$order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'wholesale_rate' ] += $rate;
@@ -268,47 +268,26 @@ class FenxiaoOrder extends BaseModel
return $order_fenxiao_data;
}
- protected function getWholesaleCommissions($nodeUser,$v,&$order_fenxiao_data,$chain,$leve_num,$type,$config){
- //不考虑商品单独规则
- $fenxiao_user_id = array_column($nodeUser,'fenxiao_id');
- $max_level_num = (int)model('fenxiao_level')->stat([['site_id' ,'=' , $v['site_id']]],'max','level_num');
- foreach($chain as $k => $value){
- $key = array_search($value,$fenxiao_user_id);
- $user = $nodeUser[$key];
- if(isset($user) && !empty($user) && $user['level_num'] == $leve_num && $leve_num > 1){
- //独立设置的佣金
- if($type == 2){
- }else{
-
- }
- $order_fenxiao_data['wholesale_fenxiao_id'][] = $user['fenxiao_id'];
- $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'wholesale_rate' ] += $user[ 'two_rate' ];
- $commission = $user[ 'two_rate' ] * $v[ 'real_goods_money' ] / 100;
- $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'wholesale_commission' ] += $commission;
- $order_fenxiao_data['wholesale_fenxiao_detail'][] = ['name' => $user['fenxiao_name'], 'commission' => $commission];
- ++$leve_num;
- }
- //联合创始人分红
- if(isset($user) && !empty($user) && $max_level_num == $user['level_num'] && $config['founder_rate']){
- $order_fenxiao_data['founder_fenxiao_id'][] = $user['fenxiao_id'];
- $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'founder_rate' ] += $config['founder_rate'];
- $commission = $config['founder_rate'] * $v[ 'real_goods_money' ] / 100;
- $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'founder_commission' ] += $commission;
- $order_fenxiao_data['founder_fenxiao_detail'][] = ['name' => $user['fenxiao_name'], 'commission' => $commission];
- }
+ protected function getLevelRate($rank,$site_id,$goods_id,$sku_id,$level_id,$config,$fenxiao_type){
+ if($fenxiao_type == 2){
+ $fenxiao_level = model('fenxiao_goods_sku')->getInfo([ [ 'goods_id', '=', $goods_id ], [ 'sku_id', '=', $sku_id ], [ 'level_id', '=', $level_id ] ]);
+ $rates = [
+ $fenxiao_level['one_rate'] ?? 0,
+ $fenxiao_level['two_rate'] ?? 0,
+ $fenxiao_level['three_rate'] ?? 0,
+ $fenxiao_level['four_rate'] ?? 0,
+ ];
+ }else{
+ $level_config = model('fenxiao_level')->getInfo([['site_id' ,'=',$site_id],['level_num' ,'=' ,0],['is_default', '=' ,1]],'one_rate,two_rate,three_rate');
+ $rates = [
+ $level_config['one_rate'] ?? 0,
+ $level_config['two_rate'] ?? 0,
+ $level_config['three_rate'] ?? 0,
+ $config['four_rate'] ?? 0,
+ ];
}
- return $order_fenxiao_data;
- }
- protected function getLevelRate($rank,$site_id,$config){
- $level_config = model('fenxiao_level')->getInfo([['site_id' ,'=',$site_id],['level_num' ,'=' ,0],['is_default', '=' ,1]],'one_rate,two_rate,three_rate');
- $rates = [
- $level_config['one_rate'] ?? 0,
- $level_config['two_rate'] ?? 0,
- $level_config['three_rate'] ?? 0,
- $config['four_rate'] ?? 0,
- ];
return $rates[$rank];
}
diff --git a/addon/fenxiao/shop/controller/Goods.php b/addon/fenxiao/shop/controller/Goods.php
index 0cd0baa..4d5fd47 100644
--- a/addon/fenxiao/shop/controller/Goods.php
+++ b/addon/fenxiao/shop/controller/Goods.php
@@ -244,7 +244,25 @@ class Goods extends BaseShop
}
$goods_info[ 'data' ][ 'fenxiao_skus' ] = $skus;
$goods_info[ 'data' ][ 'goods_image' ] = explode(',', $goods_info[ 'data' ][ 'goods_image' ]);
-
+ $rates = [
+ [
+ 'level_name' => '一级返佣比例',
+ 'rate' => $fenxiao_level['data'][0]['one_rate']
+ ],
+ [
+ 'level_name' => '二级返佣比例',
+ 'rate' => $fenxiao_level['data'][0]['two_rate']
+ ],
+ [
+ 'level_name' => '三级返佣比例',
+ 'rate' => $fenxiao_level['data'][0]['three_rate']
+ ],
+ [
+ 'level_name' => '四级返佣比例',
+ 'rate' => $fenxiao_config['four_rate']
+ ]
+ ];
+ $this->assign('rates', $rates);
$this->assign('fenxiao_level', $fenxiao_level[ 'data' ]);
$this->assign('goods_info', $goods_info[ 'data' ]);
diff --git a/addon/fenxiao/shop/view/goods/config.html b/addon/fenxiao/shop/view/goods/config.html
index 7809b2d..99c3a02 100644
--- a/addon/fenxiao/shop/view/goods/config.html
+++ b/addon/fenxiao/shop/view/goods/config.html
@@ -137,26 +137,32 @@
默认规则
- 一级佣金比例
- {if $fenxiao_config.level >= 2}
- 二级佣金比例
- {/if}
- {if $fenxiao_config.level >= 3}
- 三级佣金比例
- {/if}
+ 佣金比例
+
+
+
+
+
+
| 商品规格 | 价格 |
分销商等级名称 |
-
+ 一级返佣比例 | - +二级返佣比例 | +三级返佣比例 | + - +四级返佣比例 | 直推佣金比例 | 间推佣金比例 | {$level.level_name} | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ {foreach $goods_info['sku_data'] as $sku}
+ {if isset($goods_info['fenxiao_skus'][$level.level_id . '_' . $sku.sku_id])}
+
+
+ {else/}
+ 0}disabled{/if} > %
+ 0}disabled{/if} > 元
+
+
+ {/if}
+ {/foreach}
+ %
+ 元
+ |
+
+ {foreach $goods_info['sku_data'] as $sku}
+ {if isset($goods_info['fenxiao_skus'][$level.level_id . '_' . $sku.sku_id])}
+
+
+ {else/}
+ 0}disabled{/if} > %
+ 0}disabled{/if} > 元
+
+
+ {/if}
+ {/foreach}
+ %
+ 元
+ |
+
+ {foreach $goods_info['sku_data'] as $sku}
+ {if isset($goods_info['fenxiao_skus'][$level.level_id . '_' . $sku.sku_id])}
+
+
+ {else/}
+ 0}disabled{/if} > %
+ 0}disabled{/if} > 元
+
+
+ {/if}
+ {/foreach}
+ %
+ 元
+ |
+
+
+ {foreach $goods_info['sku_data'] as $sku}
+ {if isset($goods_info['fenxiao_skus'][$level.level_id . '_' . $sku.sku_id])}
+
+
+ {else/}
+ 0}disabled{/if} > %
+ 0}disabled{/if} > 元
+
+
+ {/if}
+ {/foreach}
+ %
+ 元
+ |
{foreach $goods_info['sku_data'] as $sku} {if isset($goods_info['fenxiao_skus'][$level.level_id . '_' . $sku.sku_id])} |
|---|