1、找到用户所有上级
$sups = $this->getSups($user['pid']);
2、获取不同身份奖励规则
foreach ($sups as $kk => $vv) {
$user_ = Db::name('user')->find($vv['id']);
$bili = 0;
switch ($user_['level']) {
//21-25相同的规则
case 21:
case 22:
case 23:
case 24:
case 25:
$rule = $djk_rule[$vv['djk_level']];
$level_right_team_add = $rule['level_right_team_add'];
$level_right_team_peer = $rule['level_right_team_peer'];
//连续三个级别相等,则不发给第三个发放平级奖励
if ($kk == 0) {
//第一个父级P1,若和A身份相等,则发放平级奖励,否则发放新增业绩
$bili = ($vv['djk_level'] == $user['djk_level'] ? $level_right_team_peer : $level_right_team_add);
}elseif($kk == 1){
//第一个父级P2,若和A身份相等,则发放平级奖励,否则发放新增业绩极差
$bili = ($vv['djk_level'] == $sups[$kk - 1]['djk_level'] ? $level_right_team_peer : ($level_right_team_add - $djk_rule[$sups[$kk - 1]['djk_level']]['level_right_team_add']));
}else{
//第n个父级Pn(n>1),若和Pn-1身份和Pn-2相等,则不发放平级奖励(即为0),否则发放新增业绩极差
if ($vv['djk_level'] == $sups[$kk - 1]['djk_level'] && $vv['djk_level'] == $sups[$kk - 2]['djk_level']){
$bili = 0;
}elseif($vv['djk_level'] == $sups[$kk - 1]['djk_level'] && $vv['djk_level'] != $sups[$kk - 2]['djk_level']){
$bili = $level_right_team_peer;
}else{
$bili = $level_right_team_add - $djk_rule[$sups[$kk - 1]['djk_level']]['level_right_team_add'];
}
}
break;
case 31:
case 32:
//31、32和21-25奖励比例不一样,不能直接相减算级差
//如果上个不是董事,则重新计算
$rule = $djk_rule[$vv['djk_level']];
$level_right_team_add = $rule['level_right_team_add'];
$level_right_team_peer = $rule['level_right_team_peer'];
//连续三个级别相等,则不发给第三个发放平级奖励
if ($kk == 0) {
//第一个父级P1,若和A身份相等,则发放平级奖励,否则发放新增业绩
$bili = ($vv['djk_level'] == $user['djk_level'] ? $level_right_team_peer : $level_right_team_add);
}elseif($kk == 1){
//第一个父级P2,若和A身份相等,则发放平级奖励,否则发放新增业绩极差
if ($vv['djk_level'] == $sups[$kk - 1]['djk_level']){
$bili = $level_right_team_peer;
}else{
//如果上一级为经纪人,则重新计算比例
if ($sups[$kk - 1]['djk_level'] < 30){
$bili = $level_right_team_add;
}else{
//如果上一级为董事,则计算极差
$bili = $level_right_team_add - $djk_rule[$sups[$kk - 1]['djk_level']]['level_right_team_add'];
}
}
}else{
//第n个父级Pn(n>1),若和Pn-1身份和Pn-2相等,则不发放平级奖励(即为0),否则发放新增业绩极差
if ($vv['djk_level'] == $sups[$kk - 1]['djk_level'] && $vv['djk_level'] == $sups[$kk - 2]['djk_level']){
$bili = 0;
}elseif($vv['djk_level'] == $sups[$kk - 1]['djk_level'] && $vv['djk_level'] != $sups[$kk - 2]['djk_level']){
$bili = $level_right_team_peer;
}else{
//如果上一级为经纪人,则重新计算比例
if ($sups[$kk - 1]['djk_level'] < 30){
$bili = $level_right_team_add;
}else{
//如果上一级为董事,则计算极差
$bili = $level_right_team_add - $djk_rule[$sups[$kk - 1]['djk_level']]['level_right_team_add'];
}
}
}
break;
default:
}