quanwei
2 days ago 04102f7237efefa744090ed7c25f7b5d0807b679
admin/app/common/model/plus/bonus/User.php
@@ -108,21 +108,25 @@
            //获取直推上级
            $referee_id = agentRefereeModel::getRefereeUserId($user_id, 1);
            //获取直推上级推荐的人数
            $direct_child_num = $referee_id ? self::getDirectNum($referee_id) : 0;
            /*if ($referee_id && $direct_child_num < 2) {
                $parent = static::detail($referee_id);
            /*$direct_child_num = $referee_id ? self::getDirectNum($referee_id) : 0;*/
            $parent_id=0;
            if ($referee_id) {
                $parent_id=self::getParentId([$referee_id]);
            }
            if ($parent_id) {
                $parent = static::detail($parent_id);
                //如果自己名下已经被排满,继续往下找
                if ($parent['child_num'] == 3) {
                    //获取起始横向排位
                    $level_num_first = ($parent['level_num'] - 1) * 3 + 1;
                    $parent = self::checkUserChild($level_num_first, 3, $parent['tree_level'] + 1);
                }
            } else {*/
            } else {
                //规则2:查找有空缺的三叉树
                $parent = (new static())->where('child_num', '<', 3)
                                        /*->where('user_id', "<>", $referee_id)*/
                                        ->order(['tree_level' => 'asc', 'level_num' => 'asc'])->find();
            //}
            }
            $data['parent_id'] = $parent['user_id'];
            $data['order_num'] = $parent['child_num'] + 1; //三叉树内的位置
            $data['tree_level'] = $parent['tree_level'] + 1; //竖向层级
@@ -146,7 +150,18 @@
        }
        return true;
    }
    /**
     * 获取团队里公排下级未被排满的id
     */
    public static function getParentId($referee)
    {
        $user=(new static())->where('user_id', 'in', $referee)->where('child_num', '<', 3)->find();
        if ($user) {
            return $user['user_id'];
        }
        $subordinate=(new self())->where('parent_id', 'in', $referee)->column('user_id');
        return self::getParentId($subordinate);
    }
    /**
     * 添加第一个分红用户
     */
@@ -293,7 +308,10 @@
        $is_expire = User::isExpire($user_id);
        // 队长详情
        $model = static::detail($user_id);
        if (!$model || $model['is_delete']) {
        if (!$model) {
            return false;
        }
        if ($model['is_delete']){
            return false;
        }
        if ($money_type == 20){
@@ -436,6 +454,9 @@
    public static function isExpire($user_id)
    {
        $team = self::detail($user_id);
        if (!$team) {
            return false;
        }
        $setting = Setting::getItem('basic', $team['app_id']);
        return !!$team && $team['is_expire'] && $team['is_permanent'] == 0 && $setting['expire_day'] > 0;
    }