You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.7 KiB

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use App\Http\Resources\Carousel as CarouselResource;
class Carousel extends Model
{
const USE_NUM = 5; // 最多显示的数据记录数
const BOOTH_TYPE_HOME = 1;
const BOOTH_TYPE_HOME_STRING = '首页';
const BOOTH_TYPE_HOT = 2;
const BOOTH_TYPE_HOT_STRING = '热门';
const BOOTH_TYPE_NEW = 3;
const BOOTH_TYPE_NEW_STRING = '最新';
const STATE_NORMAL = 1;
const STATE_BANNED = 0;
const STATE_NORMAL_STRING = '正常';
const STATE_BANNED_STRING = '禁用';
//
protected $table = 'carousel';
/**
* 根据展位类型获取轮播
* @param [type] $type [description]
* @return [type] [description]
*/
static public function getCarouselByType($type){
if(!$type){
return false;
}
return CarouselResource::collection(Carousel::where([
['booth_type', '=', $type],
['state', '=', static::STATE_NORMAL],
])->take(static::USE_NUM)->get());
}
public static function getBoothTypeDisplayMap()
{
return [
self::BOOTH_TYPE_HOME => self::BOOTH_TYPE_HOME_STRING,
self::BOOTH_TYPE_HOT => self::BOOTH_TYPE_HOT_STRING,
self::BOOTH_TYPE_NEW => self::BOOTH_TYPE_NEW_STRING,
];
}
public static function getStateDisplayConfig()
{
return [
'on' => [
'value' => self::STATE_NORMAL,
'text' => self::STATE_NORMAL_STRING,
],
'off' => [
'value' => self::STATE_BANNED,
'text' => self::STATE_BANNED_STRING,
]
];
}
}