123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2018/11/8
- * Time: 10:03
- */
- namespace App\Services\Content;
- use App\Repositories\NoticeRepository;
- class NoticeServer
- {
- protected $noticeRepository;
- /**
- * NoticeServer constructor.
- * @param $noticeRepository
- */
- public function __construct(NoticeRepository $noticeRepository)
- {
- $this->noticeRepository = $noticeRepository;
- }
- public function getLists($where, $page_num = '')
- {
- $lists = $this->noticeRepository->getNotices($where, $page_num);
- if ($lists->toArray()) {
- foreach ($lists as $k => $v) {
- $lists[$k]->origin_title = $v->title;
- $style_font = '';
- $style_color ='';
- if ($v->tit_b == 1) {
- $style_font = "font-weight:bold;";
- }
- if ($v->tit_color) {
- $style_color = 'color:'.$v->tit_color.';';
- }
- if ($style_font || $style_color) {
- $lists[$k]->title = "<span style=".$style_color.$style_font.">".$v->title."</span>";
- }
- if ($v->is_url) {
- $lists[$k]->url = $v->is_url;
- } else {
- $lists[$k]->url = route('notice.show', array('id'=>$v->id));
- }
- }
- }
- return $lists;
- }
- public function getNotice($where)
- {
- $notice_info = $this->noticeRepository->getNotice($where);
- if (!$notice_info) {
- return null;
- }
- $notice_info->prev = 0;
- $notice_info->next = 0;
- $map[] = array('is_display','=','1');
- //$map[] = array('type_id','=',$notice_info->type_id);
- $lists = $this->getLists($map);
- if ($lists->isNotEmpty()) {
- $info_key = -1;
- foreach ($lists as $k => $v) {
- if ($v->id==$notice_info->id) {
- $info_key = $k;
- }
- }
- $pre_info = array();
- $nex_info = array();
- if ($info_key>-1 && !empty($lists[$info_key-1])) {
- $prev = $lists[$info_key-1];
- if ($prev) {
- $notice_info->prev = 1;
- $notice_info->prev_title = $prev->origin_title;
- $notice_info->prev_url = route('notice.show', ['id'=>$prev->id]);
- }
- }
- if ($info_key>-1 && !empty($lists[$info_key+1])) {
- $next = $lists[$info_key+1];
- if ($next) {
- $notice_info->next = 1;
- $notice_info->next_title = $next->origin_title;
- $notice_info->next_url = route('notice.show', ['id'=>$next->id]);
- }
- }
- }
- return $notice_info;
- }
- public function incrementData($where, $num, $filed)
- {
- return $this->noticeRepository->incrementData($where, $num, $filed);
- }
- public function getNotices($params)
- {
- $where = array(
- array('is_display','=',1)
- );
- if (array_has($params, 'type_id')) {
- $where[] = array('type_id','=',$params['type_id']);
- }
- $limit = '';
- if (array_has($params, 'size')) {
- $limit = $params['size'];
- }
- $order = array('sort'=>'desc','created_at'=>'desc');
- $rst = $this->noticeRepository->getLimitNotices($where, $order, $limit);
- if ($rst->isNotEmpty() && array_has($params, 'titlelen')) {
- $dot = '...';
- if (array_has($params, 'dot')) {
- $dot = $params['dot'];
- }
- foreach ($rst as $k => $v) {
- $rst[$k]->dot_title = cut_str($v->title, $params['titlelen'], 0, $dot);
- }
- }
- return $rst;
- }
- }
|