quanwei
3 days ago 73b874c72ad55eb9eef21c36160ac0de58f0189e
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
132
133
134
135
136
137
<?php
 
namespace app\shop\model\plus\team;
 
use app\common\model\plus\team\Grade as GradeModel;
use app\shop\model\plus\team\User as UserModel;
 
/**
 * 用户会员等级模型
 */
class Grade extends GradeModel
{
    /**
     * 获取列表记录
     */
    public function getList($data)
    {
        $list = $this->selectList();
        // 如果为空,则插入默认等级
        if(count($list) == 0){
            $this->save([
                'name' => '默认等级',
                'is_default' => 1,
                'weight' => 1,
                'grade_id' => Grade::getDefaultGradeId(),
                'app_id' => self::$app_id
            ]);
            // 更新之前的默认为0的id为此等级id
            (new UserModel())->where('grade_id', '=', 0)->update([
                'grade_id' => $this['grade_id']
            ]);
            $list = $this->selectList();
        }
        return $list;
    }
 
    private function selectList(){
        return $this->where('is_delete', '=', 0)
            ->order(['weight' => 'asc', 'create_time' => 'asc'])
            ->select();
    }
 
     /**
      * 获取可用的分红等级列表
      */
     public static function getUsableList($appId = null)
     {
         $model = new static;
         $appId = $appId ? $appId : $model::$app_id;
         return $model->where('is_delete', '=', '0')
             ->where('app_id', '=', $appId)
             ->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)
    {
        if($this['is_default'] == 0){
 
            $data['remark'] = $this->setRemark($data);
        }
        return $this->save($data);
    }
 
    private function setRemark($data){
        $remark = '';
        $condition_type_str = $data['condition_type'] == 'and' ? '并且' : '或者';
        if($data['open_agent_money'] == 1){
            $money = sprintf('%.2f',$data['agent_money']);
            $remark .= "累计推广佣金满{$money}元";
        }
        if($data['open_agent_user'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n' . $condition_type_str;
            }
            $remark .= "直推分销商满{$data['agent_user']}人";
        }
        if($data['open_team_user'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n' . $condition_type_str;
            }
            $remark .= "团队人数满{$data['team_user']}人";
        }
        if($data['open_team_money'] == 1){
            if(!empty($remark)){
                $remark .= '\r\n' . $condition_type_str;
            }
            $money = sprintf('%.2f',$data['team_money']);
            $remark .= "团队业绩满{$money}元";
        }
        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 = '';
            if (isset($data['product_image']) && is_array($data['product_image'])) {
                foreach ($data['product_image'] as $k => $item){
                    $product_name .= $item['product_name'].($k!=0?'、':'');
                }
            }
            $remark .= "购买指定商品{$product_name}";
        }
        return $remark;
    }
 
    /**
     * 软删除
     */
    public function setDelete()
    {
        // 判断该等级下是否存在会员
        if (UserModel::checkExistByGradeId($this['grade_id'])) {
            return false;
        }
        return $this->save(['is_delete' => 1]);
    }
 
}