最新服务器上的版本,以后用这个
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
<?php
 
namespace app\models;
 
use Yii;
 
/**
 * This is the model class for table "{{%favorite}}".
 *
 * @property int $id
 * @property int $mall_id
 * @property int $user_id
 * @property int $goods_id
 * @property string $mirror_price 收藏时的售价
 * @property string $created_at
 * @property int $is_delete
 * @property string $deleted_at
 * @property string $updated_at
 */
class Favorite extends ModelActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%favorite}}';
    }
 
    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['mall_id', 'user_id', 'goods_id', 'is_delete'], 'integer'],
            [['mirror_price'], 'number'],
            [['created_at', 'deleted_at', 'updated_at'], 'safe'],
            [['updated_at'], 'required'],
        ];
    }
 
    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'mall_id' => 'Mall ID',
            'user_id' => 'User ID',
            'goods_id' => 'Goods ID',
            'mirror_price' => 'Mirror Price',
            'created_at' => 'Created At',
            'is_delete' => 'Is Delete',
            'deleted_at' => 'Deleted At',
            'updated_at' => 'Updated At',
        ];
    }
 
    /**
     * @param $mall_id
     * @param $user_id
     * @param $goods_id
     * @return bool
     * @throws \Exception
     */
    public static function createModel($mall_id, $user_id, $goods_id)
    {
        $exists = Goods::find()->where(['mall_id' => $mall_id, 'id' => $goods_id, 'is_delete' => 0])->one();
 
        if (!$exists) {
            throw new \Exception('商品不存在');
        }
        $model = static::findOne([
            'mall_id' => $mall_id, 'user_id' => $user_id, 'goods_id' => $goods_id
        ]);
 
        if (!$model) {
            $model = new static();
            $model->mall_id = $mall_id;
            $model->user_id = $user_id;
            $model->goods_id = $goods_id;
        } else {
            if ($model->is_delete == 0) {
                throw new \Exception('已经收藏过啦!');
            }
        }
        $model->mirror_price = $exists->price;
        $model->is_delete = 0;
        return $model->save();
    }
 
    public static function deleteModel($mall_id, $user_id, $goods_id)
    {
        $model = static::findOne([
            'mall_id' => $mall_id, 'user_id' => $user_id, 'goods_id' => $goods_id
        ]);
 
        if ($model) {
            $model->is_delete = 1;
            return $model->save();
        } else {
            return true;
        }
    }
 
    public static function removeBatch($mall_id, $user_id, $goods_id)
    {
        $res = static::updateAll(
            ['is_delete' => 1],
            ['mall_id' => $mall_id, 'user_id' => $user_id, 'goods_id' => $goods_id]
        );
        return $res;
    }
 
    public function getGoods()
    {
        return $this->hasOne(Goods::className(), ['id' => 'goods_id']);
    }
}