123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- /**
- * SlideLogic.php UTF-8
- * 广告逻辑图处理
- *
- * @date : 2017/11/25 15:07
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @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;
- }
- }
|