id); } public function updateCacheStock() { Redis::set(self::STOCKKEY.$this->id, $this->stock); } public function scopeOrder($query) { $order = request()->order; $order_type = request()->order_type; return $query->orderBy($order, $order_type); } public function scopeIsSale($query) { return $query->where('is_sale', 1); } public function scopeIsntSale($query) { return $query->where('is_sale', 0); } public function scopeStock($query) { return $query->where('stock', '>', 0); } public function scopeShow($query) { return $query->isSale()->stock(); } public function scopeSale($query) { $is_sale = request()->is_sale; if ($is_sale) { return $query->isSale(); }else { return $query->isntSale(); } } public function scopeKeywords() { $keyword = request()->keyword; return $this->where(function ($sql) use($keyword) { $sql->where('title', 'like', '%'.$keyword.'%'); }); } public function exchangeLogs() { return $this->hasMany(CoinExchange::class, 'goods_id', 'id'); } public static function hasSaleGoods() { return self::isSale()->exists(); } }