admin/app/common/model/plus/bonus/User.php
@@ -108,7 +108,7 @@
            $referee_id = agentRefereeModel::getRefereeUserId($user_id, 1);
            //获取直推上级推荐的人数
            $direct_child_num = $referee_id ? self::getDirectNum($referee_id) : 0;
            if ($referee_id && $direct_child_num < 2) {
            /*if ($referee_id && $direct_child_num < 2) {
                $parent = static::detail($referee_id);
                //如果自己名下已经被排满,继续往下找
                if ($parent['child_num'] == 3) {
@@ -116,12 +116,12 @@
                    $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; //竖向层级
@@ -132,9 +132,11 @@
                'child_num' => $parent['child_num'] + 1
            ]);
        }
        $user=UserModel::detail($user_id);
        if ($model->save(array_merge([
            'user_id' => $user_id,
            'is_delete' => 0,
            'purchase_count' => $user['purchase_count'],
            'grade_id' => Grade::getDefaultGradeId(),
            'app_id' => $data['app_id']
        ], $data))) {
@@ -329,7 +331,6 @@
        // 复购n次:向上n级(最多不超过存在的层级)
        $targetUserId = $user_id;
        $levelsToGoUp = (new OrderModel)::getUserOrderCounti($user_id);
        // 逐级向上查找
        for ($i = 0; $i < $levelsToGoUp; $i++) {
            $currentUser = static::detail($targetUserId);
@@ -402,6 +403,9 @@
    public static function getExpireTime($user_id)
    {
        $user = self::detail($user_id);
        if (!$user) {
            return 0;
        }
        $setting = Setting::getItem('basic', $user['app_id']);
        if ($user['tree_level'] <= 3 || $user['is_permanent']) {
            $remain_time = '永久';