isJson()) { $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $search_text = input('search_text', ''); $type = input('type', '');//位置类型 1 电脑端 2 手机端 $condition = [ [ 'site_id', '=', $this->site_id ], [ 'type', '=', 2 ] ]; if (!empty($search_text)) { $condition[] = [ 'ap_name', 'like', '%' . $search_text . '%' ]; } if ($type !== '') { $condition[] = [ 'type', '=', $type ]; } return $adv_position->getAdvPositionPageList($condition, $page, $page_size); } else { return $this->fetch('adv/index'); } } /** * 添加广告位 */ public function addPosition() { $adv_position = new AdvPosition(); if (request()->isJson()) { $data = [ 'ap_name' => input('ap_name', ''), 'keyword' => input('keyword', ''), 'ap_intro' => input('ap_intro', ''), 'ap_height' => input('ap_height', 0), 'ap_width' => input('ap_width', 0), 'default_content' => input('default_content', ''), 'ap_background_color' => input('ap_background_color', ''), 'type' => input('type', 2), 'state' => input('state', 0), 'site_id' => $this->site_id ]; return $adv_position->addAdvPosition($data); } else { return $this->fetch('adv/add_position'); } } /** * 编辑广告位 */ public function editPosition() { $adv_position = new AdvPosition(); $ap_id = input('ap_id', 0); if (request()->isJson()) { $data = [ 'ap_name' => input('ap_name', ''), 'keyword' => input('keyword', ''), 'ap_intro' => input('ap_intro', ''), 'ap_height' => input('ap_height', 0), 'ap_width' => input('ap_width', 0), 'default_content' => input('default_content', ''), 'ap_background_color' => input('ap_background_color', ''), 'state' => input('state', 0), ]; return $adv_position->editAdvPosition($data, [ [ 'ap_id', '=', $ap_id ], [ 'site_id', '=', $this->site_id ] ]); } else { $ap_info = $adv_position->getAdvPositionInfo([ [ 'ap_id', '=', $ap_id ], [ 'site_id', '=', $this->site_id ] ]); $this->assign('info', $ap_info[ 'data' ]); return $this->fetch('adv/edit_position'); } } /** * 修改广告位字段 */ public function editPositionField() { if (request()->isJson()) { $adv_position = new AdvPosition(); $type = input('type', ''); $value = input('value', 0); $ap_id = input('ap_id', 0); $data = [ $type => $value ]; return $adv_position->editAdvPosition($data, [ [ 'ap_id', '=', $ap_id ] ]); } } /** * 删除广告位 */ public function deletePosition() { if (request()->isJson()) { $ap_ids = input('ap_ids', 0); $adv_position = new AdvPosition(); return $adv_position->deleteAdvPosition([ [ 'ap_id', 'in', $ap_ids ], [ 'site_id', '=', $this->site_id ] ], $ap_ids); } } /** * 广告列表 */ public function lists() { $adv = new AdvModel(); $adv_position = new AdvPosition(); $ap_id = input('ap_id', ''); $keyword = input('keyword', ''); if (!empty($keyword)) { $info = $adv_position->getAdvPositionInfo([ [ 'keyword', '=', $keyword ] ], 'ap_id')[ 'data' ]; if (!empty($info)) { $ap_id = $info[ 'ap_id' ]; } } if (request()->isJson()) { $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $search_text = input('search_text', ''); $slide_sort = input('sort', ''); //查询所有手机端广告位 $conditions[] = [ 'type', '=', 2 ]; $positions = $adv_position->getAdvPositionList($conditions); $positions_ids = array_column($positions[ 'data' ], 'ap_id'); $condition = [ [ 'a.site_id', '=', $this->site_id ], [ 'a.ap_id', 'in', $positions_ids ] ]; if (!empty($search_text)) { $condition[] = [ 'a.adv_title', 'like', '%' . $search_text . '%' ]; } if ($ap_id !== '') { $condition[] = [ 'a.ap_id', '=', $ap_id ]; } //排序 $slide_sort = input('order', 'slide_sort'); $sort = input('sort', 'desc'); if ($slide_sort == 'slide_sort') { $order_by = 'a.' . $slide_sort . ' ' . $sort; } else { $order_by = 'a.' . $slide_sort . ' ' . $sort . ',a.slide_sort desc'; } return $adv->getAdvPageList($condition, $page, $page_size, $order_by); } else { $this->assign('ap_id', $ap_id); $adv_position = new AdvPosition(); $adv_position_list = $adv_position->getAdvPositionList([ [ 'site_id', '=', $this->site_id ], [ 'type', '=', 2 ] ], 'ap_id,ap_name')[ 'data' ]; $this->assign('adv_position', $adv_position_list); return $this->fetch('adv/lists'); } } /** * 添加广告 */ public function addAdv() { $adv = new AdvModel(); if (request()->isJson()) { $data = [ 'ap_id' => input('ap_id', 0), 'adv_title' => input('adv_title', ''), 'adv_url' => input('adv_url', ''), 'adv_image' => input('adv_image', ''), 'slide_sort' => input('slide_sort', 0), 'price' => input('price', 0), 'background' => input('background', ''), 'state' => input('state', 0), 'site_id' => $this->site_id ]; return $adv->addAdv($data); } else { $adv_position = new AdvPosition(); $adv_position_list = $adv_position->getAdvPositionList([ [ 'site_id', '=', $this->site_id ], [ 'type', '=', 2 ] ]); $this->assign('adv_position_list', $adv_position_list[ 'data' ]); $ap_id = input('ap_id', 0); $this->assign('ap_id', $ap_id); return $this->fetch('adv/add_adv'); } } /** * 编辑广告 */ public function editAdv() { $adv_id = input('adv_id', ''); $adv = new AdvModel(); if (request()->isJson()) { $data = [ 'ap_id' => input('ap_id', 0), 'adv_title' => input('adv_title', ''), 'adv_url' => input('adv_url', ''), 'adv_image' => input('adv_image', ''), 'slide_sort' => input('slide_sort', 0), 'price' => input('price', 0), 'background' => input('background', ''), // 'state' => input('state', 0), ]; return $adv->editAdv($data, [ [ 'adv_id', '=', $adv_id ], [ 'site_id', '=', $this->site_id ] ]); } else { $adv_position = new AdvPosition(); $adv_position_list = $adv_position->getAdvPositionList([ [ 'site_id', '=', $this->site_id ], [ 'type', '=', 2 ] ]); $this->assign('adv_position_list', $adv_position_list[ 'data' ]); $adv_info = $adv->getAdvInfo($adv_id); $this->assign('adv_info', $adv_info[ 'data' ]); // 得到当前广告图类型 $type = 2;// 1 pc、2 wap foreach ($adv_position_list[ 'data' ] as $k => $v) { if ($v[ 'ap_id' ] == $adv_info[ 'data' ][ 'ap_id' ]) { $type = $v[ 'type' ]; break; } } $this->assign('type', $type); $ap_id = input('ap_id', 0); $this->assign('ap_id', $ap_id); return $this->fetch('adv/edit_adv'); } } /** * 修改广告字段 */ public function editAdvField() { if (request()->isJson()) { $adv = new AdvModel(); $type = input('type', ''); $value = input('value', ''); $adv_id = input('adv_id', ''); $data = [ $type => $value ]; return $adv->editAdv($data, [ [ 'adv_id', '=', $adv_id ] ]); } } /** * 删除广告 */ public function deleteAdv() { if (request()->isJson()) { $adv_ids = input('adv_ids', 0); $adv = new AdvModel(); return $adv->deleteAdv([ [ 'adv_id', 'in', $adv_ids ], [ 'site_id', '=', $this->site_id ] ]); } } /** * 修改广告位状态 * @return array */ public function alterAdvPositionState() { if (request()->isJson()) { $ap_id = input('ap_id', 0); $state = input('state', 0); $ap_model = new AdvPosition(); return $ap_model->editAdvPosition([ 'state' => $state ], [ [ 'ap_id', '=', $ap_id ], [ 'site_id', '=', $this->site_id ] ]); } } /** * 修改广告状态 * @return array */ public function alterAdvState() { if (request()->isJson()) { $adv_id = input('adv_id', 0); $state = input('state', 0); $ap_model = new AdvModel(); return $ap_model->editAdv([ 'state' => $state ], [ [ 'adv_id', '=', $adv_id ], [ 'site_id', '=', $this->site_id ] ]); } } }