// +---------------------------------------------------------------------- namespace App\Services\Common; use App\Models\AdModel; use App\Services\BaseService; use App\Services\RedisService; /** * 广告管理-服务类 * @author laravel开发员 * @since 2020/11/11 * Class AdService * @package App\Services\Common */ class AdService extends BaseService { /** * 构造函数 * @author laravel开发员 * @since 2020/11/11 * AdService constructor. */ public function __construct() { $this->model = new AdModel(); } /** * 按广告位获取缓存列表 * @param $position * @param int $num * @return array|mixed */ public function getListByPosition($position, $num=6) { $cacheKey = "caches:banners:{$position}"; $datas = RedisService::get($cacheKey); if($datas){ return $datas; } $datas = $this->model->where(['position'=> $position,'status'=> 1,'mark'=>1]) ->select(['id','cover','title','url','description','type']) ->limit($num) ->get() ->each(function($item, $k){ $item['cover'] = $item['cover']? get_image_url($item['cover']) : ''; }); $datas = $datas? $datas->toArray() : []; if($datas){ RedisService::set($cacheKey, $datas, rand(5, 10)); } return $datas; } /** * 添加或编辑 * @return array * @since 2020/11/11 * @author laravel开发员 */ public function edit() { $data = request()->all(); // 图片处理 $cover = $data['cover']? trim($data['cover']): ''; // 结束时间 if (isset($data['end_time'])) { $data['end_time'] = strtotime($data['end_time']); } return parent::edit($data); // TODO: Change the autogenerated stub } }