function xt_report_fanxian_result($platform, $commission, $buyer, $sharer, $adser)
{
    $result = array('isValid' => 0, 'commission' => $commission, 'income' => $commission, 'buy' => array('user_id' => 0, 'user_name' => '', 'rate' => 0, 'cash' => 0, 'jifen' => 0), 'share' => array('user_id' => 0, 'user_name' => '', 'rate' => 0, 'cash' => 0, 'jifen' => 0), 'ads' => array('user_id' => 0, 'user_name' => '', 'rate' => 0, 'cash' => 0, 'jifen' => 0));
    $isJifen = xt_fanxian_is_jifenbao($platform);
    if ($isJifen) {
        $result['commission'] = $commission * 100;
    }
    $rate = $share_rate = 0;
    $total = 0;
    if ($sharer->exists()) {
        $result['share']['user_id'] = $sharer->ID;
        $result['share']['user_name'] = $sharer->user_login;
        if (xt_fanxian_is_share()) {
            $share_rate = xt_get_sharerate($sharer->ID);
            if ($share_rate > 0) {
                $fanxian = $jifen = 0;
                if ($isJifen) {
                    $jifen = round($commission * $share_rate / 100, 2) * 100;
                } else {
                    $fanxian = round($commission * $share_rate / 100, 2);
                }
                $result['share']['rate'] = $share_rate;
                $result['share']['cash'] = $fanxian;
                $result['share']['jifen'] = $jifen;
                $total += $share_rate;
            }
        }
    }
    if ($buyer->exists()) {
        $result['buy']['user_id'] = $buyer->ID;
        $result['buy']['user_name'] = $buyer->user_login;
        $rate = xt_get_rate($buyer->ID);
        if ($sharer->exists() && !xt_fanxian_is_sharebuy()) {
            //share no buy
            $rate = 0;
        }
        if ($rate > 0) {
            $fanxian = $jifen = 0;
            if ($isJifen) {
                $jifen = round($commission * $rate / 100, 2) * 100;
            } else {
                $fanxian = round($commission * $rate / 100, 2);
            }
            $result['buy']['rate'] = $rate;
            $result['buy']['cash'] = $fanxian;
            $result['buy']['jifen'] = $jifen;
            $total += $rate;
        }
        if ($adser->exists()) {
            $result['ads']['user_id'] = $adser->ID;
            $result['ads']['user_name'] = $adser->user_login;
            if (xt_fanxian_is_ad()) {
                $adrate = xt_get_adrate($adser);
                if ($adrate > 0) {
                    $fanxian = $jifen = 0;
                    if ($isJifen) {
                        $jifen = round($commission * $adrate / 100, 2) * 100;
                    } else {
                        $fanxian = round($commission * $adrate / 100, 2);
                    }
                    $result['ads']['rate'] = $adrate;
                    $result['ads']['cash'] = $fanxian;
                    $result['ads']['jifen'] = $jifen;
                    $total += $adrate;
                }
            }
        }
    }
    if ($total <= 90) {
        $result['isValid'] = 1;
        $result['income'] = round($commission * (90 - $total) / 100, 2);
    }
    return $result;
}
Beispiel #2
0
function xt_get_multicashback($user, $rate, $sharerate, &$multi = array())
{
    if ($user->exists()) {
        $parents = get_user_meta($user->ID, XT_USER_PARENT, true);
        if (!empty($parents)) {
            $parent = new WP_User($parents['id']);
            if ($parent->exists()) {
                //当前推广人的推广人存在
                $adrate = xt_get_adrate($parent);
                $_temp = $rate + $sharerate + $adrate;
                foreach ($multi as $_m) {
                    $_temp += $_m['adrate'];
                }
                if (!empty($multi)) {
                    //多级
                    if (xt_is_role_multicashback($parent->roles)) {
                        $multi[] = array('id' => $parent->ID, 'name' => $parent->user_login, 'sub_id' => $user->ID, 'sub_name' => $user->user_login, 'adrate' => $adrate);
                    }
                } else {
                    //一级
                    $multi[] = array('id' => $parent->ID, 'name' => $parent->user_login, 'sub_id' => $user->ID, 'sub_name' => $user->user_login, 'adrate' => $adrate);
                }
                if ($adrate > 0 && xt_fanxian_is_multi()) {
                    if (xt_is_role_multicashback($parent->roles)) {
                        xt_get_multicashback($parent, $rate, $sharerate, $multi);
                    }
                }
            }
        }
    }
    return $multi;
}