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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
 
namespace app\shop\model\plus\vip;
 
use app\common\model\plus\vip\Grade as GradeModel;
use app\shop\model\plus\vip\User as VipUserModel;
use app\common\model\user\Grade as UserGradeModel;
/**
 * VIP专区等级模型
 */
class Grade extends GradeModel
{
    /**
     * 获取列表
     */
    public function getList($search)
    {
 
        $list = $this->selectList();
        // 如果为空,则插入默认等级
        if(count($list) == 0){
            $grade_id=Grade::getDefaultGradeId();
            $where['app_id'] = self::$app_id;
            $where['grade_id'] = 0;
            // 更新之前的默认为0的id为此等级id
            (new VipUserModel())->where($where)->update([
                'grade_id' => $grade_id
            ]);
            $list = $this->selectList();
        }
 
        return $list;
    }
    /**
     * 获取等级列表
     */
    public function selectList()
    {
        return $this->where('is_delete', '=', 0)
            ->order(['weight' => 'asc', 'create_time' => 'asc'])
            ->select();
    }
    /**
     * 新增记录
     */
    public function add($data)
    {
        $data['app_id'] = self::$app_id;
        $data['is_default'] = 0;
        $data['remark'] = $this->setRemark($data);
        return $this->save($data);
    }
    public function edit( $data)
    {
        $data['remark'] = $this->setRemark($data);
        return $this->save($data);
    }
 
    private function setRemark($data)
    {
        $remark = '';
        if($data['is_purchase_count'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n';
                if ($data['condition_type']=='and'){
                    $remark .= "并且";
                }else{
                    $remark .= "或";
                }
            }
            $remark .= "购买VIP专区商品次数满{$data['purchase_count']}次";
        }
        
        if($data['is_supplier_count'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n';
                if ($data['condition_type']=='and'){
                    $remark .= "并且";
                }else{
                    $remark .= "或";
                }
            }
            $remark .= "直推商家满{$data['supplier_count']}家";
        }
        
        if($data['is_referee_grade'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n';
                if ($data['condition_type']=='and'){
                    $remark .= "并且";
                }else{
                    $remark .= "或";
                }
            }
 
 
            // 获取用户等级名称
            $gradeNames = [];
            if (!empty($data['referee_grade_ids']) && is_array($data['referee_grade_ids'])) {
                // 查询用户等级名称
                $grades = UserGradeModel::where('grade_id', 'in', $data['referee_grade_ids'])
                    ->field('name')
                    ->select();
                
                foreach ($grades as $grade) {
                    $gradeNames[] = $grade['name'];
                }
            }
            
            $gradeNamesStr = implode('、', $gradeNames);
            $remark .= "直推{$gradeNamesStr}等级会员满{$data['referee_grade_count']}人";
        }
        
        return $remark;
    }
}