quanwei
2025-12-13 30563323a53b0d0260c97d08a9e8bd4cc8227a95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
 
namespace app\common\model\plus\vip;
 
use app\common\model\BaseModel;
use app\common\model\user\User as UserModel;
 
/**
 * VIP专区推荐关系模型(基于用户表推荐关系)
 */
class Referee extends BaseModel
{
    /**
     * 获取我的团队列表
     */
    public function getList($vip_user_id)
    {
        return UserModel::where('referee_id', '=', $vip_user_id)
            ->where('is_delete', '=', 0)
            ->with(['vipAreaUser', 'vipAreaUser.grade'])
            ->order(['create_time' => 'desc'])
            ->paginate(15);
    }
 
    /**
     * 创建推荐关系(用户注册时自动处理)
     * VIP专区直接使用用户表的referee_id字段,不需要独立的推荐关系表
     */
    public static function createRelation($user_id, $referee_id)
    {
        // VIP专区基本设置
        $setting = Setting::getItem('basic');
        // 是否开启VIP专区功能
        if (!$setting['is_open']) {
            return false;
        }
        // 自分享
        if ($user_id == $referee_id) {
            return false;
        }
        // 判断推荐人是否为VIP用户
        if (!User::isVipUser($referee_id)) {
            return false;
        }
 
        return true;
    }
 
    /**
     * 获取团队统计
     */
    public static function getStatistics($vip_user_id)
    {
        $team_list = UserModel::where('referee_id', '=', $vip_user_id)
            ->where('is_delete', '=', 0)
            ->select();
        
        return [
            'total_count' => count($team_list),
            'vip_count' => 0, // 是VIP的成员数
            'today_count' => UserModel::where('referee_id', '=', $vip_user_id)
                ->where('create_time', '>=', strtotime(date('Y-m-d')))
                ->count(),
        ];
    }
}