* @version : HUOSDK 8.0 */ namespace huo\logic\slide; use huo\logic\posts\PostsLogic; use huo\model\common\CommonModel; use huo\model\slide\SlideItemModel; use huo\model\slide\SlideModel; use huolib\constant\NewsConst; use huolib\constant\SlideConst; use huolib\status\AdsStatus; use think\db\exception\DataNotFoundException; use think\db\exception\ModelNotFoundException; use think\exception\DbException; class SlideLogic extends CommonModel { /** * 获取广告列表 * * @param array $where * @param string $page * * @return array|int */ public function getList($where = [], $page = '1,10') { if (empty($where['type'])) { return AdsStatus::ADSTYPE_EMPTY; } $_map['code'] = $where['type']; $_obj = new SlideModel(); try { $_slides = $_obj->getSlideList($_map, $page); if (is_object($_slides)) { $_slides = $_slides->toArray(); } if (empty($_slides[0]['items'])) { return AdsStatus::ADSTYPE_NOT_EXISTS; } $_list = []; foreach ($_slides[0]['items'] as $_slide) { $_data = []; $_data['name'] = $_slide['title']; $_data['type_name'] = $_slide['table_name']; $_data['target_id'] = $_slide['target_id']; $_data['url'] = $_slide['url']; $_data['image'] = $_slide['image']; $_data['content'] = $_slide['content']; $_data['desc'] = $_slide['description']; $_list[] = $_data; } $_rdata = [ 'count' => count($_list), 'list' => $_list, ]; return $_rdata; } catch (DataNotFoundException $e) { return AdsStatus::DATA_NOT_FOUND_EXCEPTION; } catch (ModelNotFoundException $e) { return AdsStatus::MODEL_NOT_FOUND_EXCEPTION; } catch (DbException $e) { return AdsStatus::DB_EXCEPTION; } } /** * 静态页面需要加载的轮播 */ public function getHtmlSlide() { $_code = SlideConst::SLIDE_HUNTER_INDEX; $_slide_id = (new SlideModel())->getSlideIdByCode($_code); $_map = []; $_map['slide_id'] = $_slide_id; $_map['slide_item_model.status'] = SlideConst::SLIDE_STATUS_SHOW; $_slide_items = (new SlideItemModel())->with('slide') ->where($_map) ->order('list_order DESC') ->select(); if (is_object($_slide_items)) { $_slide_items = $_slide_items->toArray(); } if (empty($_slide_items)) { return []; } foreach ($_slide_items as $_k => $_v) { $_slide_items[$_k]['image'] = cmf_get_image_preview_url($_v['image']).'?'.$_v['description']; $_slide_items[$_k]['url'] = $_v['url']; if ('posts' == $_v['table_name']) { //链接文章类 if (!empty($_v['target_id'])) { $_posts = (new PostsLogic())->getInfoById($_v['target_id']); if (!empty($_posts) && empty($_posts['delete_time']) && NewsConst::NEWS_PUBLISHED == $_posts['post_status']) { $_slide_items[$_k]['url'] = $_posts['id'].'.html?'.$_posts['update_time']; } } } } return $_slide_items; } }