quanwei
2025-12-04 12913c1069347ea4b1f6ab87f480da0f8d8c646a
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);
    }
    /**
     * 添加第一个分红用户
     */