quanwei
18 hours ago c441dea81bd86bdfb12dff35821fed51f4cc91c2
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?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']}人";
        }
 
        if($data['open_buy_product'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n';
                if ($data['condition_type']=='and'&&$data['open_type_product']==0){
                    $remark .= "并且";
                }else{
                    $remark .= "或";
                }
            }
            $product_name='';
            foreach ($data['product_image'] as $k=>$item){
                $product_name .= $item['product_name'].($k!=0?'、':'');
            }
            $remark .= "购买指定商品{$product_name}";
        }
        return $remark;
    }
}