* Date: 2018-4-3 */ namespace app\admin\controller; use think\Page; use think\Db; use think\Cache; class ZcwdPosition extends Base { private $ad_position_system_id = array(); // 系统默认位置ID,不可删除 public function _initialize() { parent::_initialize(); } public function index() { $list = array(); $get = input('get.'); $keywords = input('keywords/s'); $condition = []; // 应用搜索条件 foreach (['keywords', 'type'] as $key) { $get[$key] = addslashes(trim($get[$key])); if (isset($get[$key]) && $get[$key] !== '') { if ($key == 'keywords') { $condition['a.title'] = array('LIKE', "%{$get[$key]}%"); } else { $tmp_key = 'a.'.$key; $condition[$tmp_key] = array('eq', $get[$key]); } } } // 多语言 //$condition['a.lang'] = array('eq', $this->admin_lang); $adPositionM = Db::name('zcwd_position'); $count = $adPositionM->alias('a')->where($condition)->count();// 查询满足要求的总记录数 $Page = new Page($count, config('paginate.list_rows'));// 实例化分页类 传入总记录数和每页显示的记录数 $list = $adPositionM->alias('a')->where($condition)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->getAllWithIndex('id'); //var_dump($condition);die; // 每组获取三张图片 $pids = get_arr_column($list, 'id'); $ad = Db::name('zcwd') ->where(['pid' => ['IN', $pids], 'lang' => $this->admin_lang]) ->order('pid asc, id asc') ->select(); $temp_id = 0; $t_color = '#000'; foreach ($list as $k => $v) { /* if (1 == $v['type']) { // 图片封面图片 $v['ad'] = []; foreach ($ad as $m => $n) { if ($v['id'] == $n['pid']) { $n['litpic'] = get_default_pic($n['litpic']); // 支持子目录 $v['ad'][] = $n; unset($ad[$m]); } else { continue; } } // 若没有内容则显示默认图片 if (empty($v['ad'])) { $v['ad_count'] = 0; $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/common/images/not_adv.jpg'; } else { $v['ad_count'] = count($v['ad']); } // 广告类型 $v['type_name'] = '图片'; } else if (2 == $v['type']) { // 多媒体封面图片 $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/admin/images/ad_type_media.png'; // 广告类型 $v['type_name'] = '多媒体'; } else if (3 == $v['type']) { // HTML代码封面图片 $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/admin/images/ad_type_html.png'; // 广告类型 $v['type_name'] = 'HTML代码'; }*/ //处理颜色 if((int)$temp_id !== (int)$v['type']){ $red = mt_rand(0, 255); $green = mt_rand(0, 255); $blue = mt_rand(0, 255); $t_color = sprintf("#%02x%02x%02x", $red, $green, $blue); } $temp_id = (int)$v['type']; //处理图片 $v['ad'] = []; foreach ($ad as $m => $n) { if ($v['id'] == $n['pid']) { $n['litpic'] = get_default_pic($n['litpic']); // 支持子目录 $v['ad'][] = $n; unset($ad[$m]); } else { continue; } } // 若没有内容则显示默认图片 if (empty($v['ad'])) { $v['ad_count'] = 0; $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/common/images/not_adv.jpg'; } else { $v['ad_count'] = count($v['ad']); } //获取地区 $one = Db::name('citysite') ->where(['id'=>$v['type']]) ->find(); $v['type_name'] = $one['name']; $v['color'] = $t_color; $list[$k] = $v; } $show = $Page->show();// 分页显示输出 $this->assign('page',$show);// 赋值分页输出 $this->assign('list',$list);// 赋值数据集 $this->assign('pager',$Page);// 赋值分页对象 /*多语言模式下,广告位ID显示主体语言的ID和属性title名称*/ $main_adv_list = []; if ($this->admin_lang != $this->main_lang && empty($this->globalConfig['language_split'])) { $attr_values = get_arr_column($list, 'id'); $languageAttrRow = Db::name('language_attr')->field('attr_name,attr_value')->where([ 'attr_value' => ['IN', $attr_values], 'attr_group' => 'ad_position', 'lang' => $this->admin_lang, ])->getAllWithIndex('attr_value'); $ids = []; foreach ($languageAttrRow as $key => $val) { $tid_tmp = str_replace('adp', '', $val['attr_name']); array_push($ids, intval($tid_tmp)); } $main_advRow = Db::name('zcwd_position')->field("id,title,CONCAT('adp', id) AS attr_name") ->where([ 'id' => ['IN', $ids], 'lang' => $this->main_lang, ])->getAllWithIndex('attr_name'); foreach ($list as $key => $val) { $key_tmp = !empty($languageAttrRow[$val['id']]['attr_name']) ? $languageAttrRow[$val['id']]['attr_name'] : ''; $main_adv_list[$val['id']] = [ 'id' => !empty($main_advRow[$key_tmp]['id']) ? $main_advRow[$key_tmp]['id'] : '', 'title' => !empty($main_advRow[$key_tmp]['title']) ? $main_advRow[$key_tmp]['title'] : '', ]; } } $this->assign('main_adv_list', $main_adv_list); /*end*/ //查找区域数据 $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select(); //var_dump($pro_list); $this->assign('pro_list', $pro_list); return $this->fetch(); } /* * 获取区域 */ public function getCity(){ $id = request()->post('id'); //查找子集城市 $list = Db::name('citysite')->where(['status'=>1,'parent_id'=>$id])->select(); $html = ''; foreach ($list as $k=>$v){ $html .= ''; } $data = [ 'code' => 0, 'msg' => '获取成功', 'data' => $html, ]; return json($data); } /** * 新增 */ public function add() { //防止php超时 function_exists('set_time_limit') && set_time_limit(0); if (is_language() && empty($this->globalConfig['language_split'])) { $this->language_access(); // 多语言功能操作权限 } if (IS_POST) { $post = input('post.'); /* * array(11) { ["title"]=> string(12) "建筑职称" ["type"]=> string(1) "1" ["img_id"]=> array(1) { [0]=> string(0) "" } ["img_litpic"]=> array(1) { [0]=> string(67) "https://oss.zcwd10000.com/uploads/allimg/20240528/1-24052R01005Z4.png" } ["img_title"]=> array(1) { [0]=> string(0) "" } ["img_links"]=> array(1) { [0]=> string(0) "" } ["img_intro"]=> array(1) { [0]=> string(0) "" } ["img_target"]=> array(1) { [0]=> string(1) "0" } ["video_litpic"]=> string(0) "" ["html_intro"]=> string(0) "" ["intro"]=> string(0) "" } */ //var_dump($post);die; //验证是否已经有重复的 $one = Db::name('zcwd_position')->where([ 'type' => $post['type'], //申报专业 'sf' => $post['sf'], //省份 'cs' => $post['cs'], //城市 'sbdj' => $post['sbdj'], //等级 'is_del' => 0, ])->find(); if(!empty($one)){ $this->error('该规则(同一区域和等级)已存在,请检查!', url('ZcwdPosition/index')); } //拼装title $post['type'] $post['title'] = ''; if((int)$post['type'] > 0){ $post['title'] .= Db::name('zc_position')->where(['id'=>$post['type']])->value('title'); } //$less = ['初级助理工程师','初级技术员','中级','品牌中级','副高级']; $less = []; $row = Db::name('zc_position')->where(['id'=>$post['type']])->find(); $dj_group_id = $row['dj_group_id']; //查找分类组 $dj_group_list = Db::name('zcdj_position')->where(['type'=>$dj_group_id])->select(); foreach ($dj_group_list as $k=>$v){ $less[$v['id']] = $v['title']; } $post['title'] .= '-'.$less[(int)$post['sbdj']]; if((int)$post['sf'] > 0){ $post['title'] .= '-'; $post['title'] .= Db::name('citysite')->where(['id'=>$post['sf']])->value('name'); }else{ $post['title'] .= '-'; $post['title'] .= '全国'; } if((int)$post['cs'] > 0){ $post['title'] .= '-'; $post['title'] .= Db::name('citysite')->where(['id'=>$post['cs']])->value('name'); } $map = array( 'title' => trim($post['title']), 'lang' => $this->admin_lang, ); if(Db::name('zcwd_position')->where($map)->count() > 0){ $this->error('该职称名称已存在,请检查', url('ZcwdPosition/index')); } //处理年龄 if((int)$post['is_ega'] > 0){ if((int)$post['ega'][0] >= (int)$post['ega'][1]){ $this->error('请输入正确的年龄区间,请检查', url('ZcwdPosition/index')); } } // 添加广告位置表信息 $data = array( 'title' => trim($post['title']), 'type' => $post['type'], //职称地区 'intro' => '0', //备注 'admin_id' => session('admin_id'), 'lang' => $this->admin_lang, 'add_time' => getTime(), 'update_time' => getTime(), 'sf' => $post['sf'], 'cs' => $post['cs'], 'sbdj' => $post['sbdj'], 'is_ega' => $post['is_ega'], 'ega_0' => $post['ega'][0], 'ega_1' => $post['ega'][1], 'byzy' => $post['byzy'], 'zhengshu2' => json_encode($post['zhengshu2']), 'xlyq' => $post['xlyq'], 'xxlx' => $post['xxlx'], 'bysj' => $post['bysj'], 'bysj_time' => $post['bysj_time'], 'is_zs' => $post['is_zs'], 'zhengshu' => json_encode($post['zhengshu']), 'sjnx' => $post['sjnx'], 'gzyq' => json_encode($post['gzyq'],JSON_UNESCAPED_UNICODE), 'qttj' => $post['qttj'], 'orderno' => date('YmdHis',time()).rand(1000,9999) ); $insertID = Db::name('zcwd_position')->insertGetId($data); if (!empty($insertID)) { // 同步广告位置ID到多语言的模板变量里,添加多语言广告位 //$this->syn_add_language_attribute($insertID); // 读取组合广告位的图片及信息 $AdData = []; if (!empty($post['img_litpic'])) { // 图片类型 $i = 1; foreach ($post['img_litpic'] as $key => $value) { if (!empty($value)) { // 去掉http: $value = str_replace("http:", "", $value); // 去掉https: $value = str_replace("https:", "", $value); // 主要参数 $AdData['litpic'] = $value; $AdData['pid'] = $insertID; $AdData['title'] = trim($post['img_title'][$key]); $AdData['links'] = $post['img_links'][$key]; $AdData['intro'] = $post['img_intro'][$key]; $target = !empty($post['img_target'][$key]) ? 1 : 0; $AdData['target'] = $target; // 其他参数 $AdData['media_type'] = 1; $AdData['admin_id'] = session('admin_id'); $AdData['lang'] = $this->admin_lang; $AdData['sort_order'] = $i++; $AdData['add_time'] = getTime(); $AdData['update_time'] = getTime(); // 添加到广告图表 $ad_id = Db::name('zcwd')->add($AdData); // 同步多语言 //$this->syn_add_ad_language_attribute($ad_id); } } } //Cache::clear('ad'); adminLog('新增职称:'.$post['title']); $this->success("操作成功", url('ZcwdPosition/index')); } else { $this->error("操作失败", url('ZcwdPosition/index')); } } // 上传通道 $WeappConfig = Db::name('weapp')->field('code, status')->where('code', 'IN', ['Qiniuyun', 'AliyunOss', 'Cos'])->select(); $WeappOpen = []; foreach ($WeappConfig as $value) { if ('Qiniuyun' == $value['code']) { $WeappOpen['qny_open'] = $value['status']; } else if ('AliyunOss' == $value['code']) { $WeappOpen['oss_open'] = $value['status']; } else if ('Cos' == $value['code']) { $WeappOpen['cos_open'] = $value['status']; } } $this->assign('WeappOpen', $WeappOpen); // 系统最大上传视频的大小 $upload_max_filesize = upload_max_filesize(); $this->assign('upload_max_filesize', $upload_max_filesize); // 视频类型 $media_type = tpCache('global.media_type'); $media_type = !empty($media_type) ? $media_type : config('global.media_ext'); $media_type = str_replace(",", "|", $media_type); $this->assign('media_type', $media_type); //查找区域数据 $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select(); //var_dump($pro_list); $this->assign('pro_list', $pro_list); //查找职称数据 $pos = Db::name('zc_position')->where(['is_del'=>0])->select(); //var_dump($pos); $this->assign('pos_list', $pos); return $this->fetch(); } public function getLess() { $id = request()->post('id'); //查找职称 $row = Db::name('zc_position')->where(['id'=>$id])->find(); $dj_group_id = $row['dj_group_id']; //查找分类组 $list = Db::name('zcdj_position')->where(['type'=>$dj_group_id])->select(); $html = ''; foreach ($list as $k=>$v){ $html .= ''; } $data = [ 'code' => 0, 'msg' => '获取成功', 'data' => $html, ]; return json($data); } public function getZs() { $id = request()->post('id',0); //读取证书 $map_ids = Db::name('zc_zs')->where(['zc_id'=>$id,'is_del'=>0])->column('map_id'); $list = Db::name('zczs_position')->where('id','in',$map_ids)->select(); $html = ''; foreach ($list as $key => $value) { $html .= ''.$value['title'].''; } if(empty($html)){ $html = '请先绑定申报专业相关的证书才能进行选择!'; } $data = [ 'code' => 0, 'msg' => '查询成功', 'data' => $html ]; return json($data); } public function getZs2() { $id = request()->post('id',0); //读取证书 $map_ids = Db::name('zc_zy')->where(['zc_id'=>$id,'is_del'=>0])->column('map_id'); $list = Db::name('zczy_position')->where('id','in',$map_ids)->select(); $html = ''; foreach ($list as $key => $value) { $html .= ''.$value['title'].''; } if(empty($html)){ $html = '请先绑定申报专业相关的毕业专业才能进行选择!'; } $data = [ 'code' => 0, 'msg' => '查询成功', 'data' => $html ]; return json($data); } public function getMap($sid='') { if($sid == ''){ $id = request()->post('id',0); }else{ $id = $sid; } //查找区域 $map_ids = Db::name('zc_map') ->where('zc_id','=',$id) ->where('is_del','=',0) ->column('map_id'); //获取地区 $list = Db::name('citysite') ->where('id','in',$map_ids) ->select(); $type_name = ''; foreach ($list as $k2 => $v2) { $type_name .= $v2['name'].','; } if(empty($type_name)){ $type_name = '全国'; } $data = [ 'code' => 0, 'msg' => '获取成功', 'data' => $type_name, ]; if($sid == ''){ return json($data); }else{ return $type_name; } } /** * 编辑 */ public function edit() { if (IS_POST) { $post = input('post.'); if (!empty($post['id'])) { $post['id'] = intval($post['id']); if (array_key_exists($post['id'], $this->ad_position_system_id)) { $this->error("不可更改系统预定义位置", url('ZcwdPosition/edit',array('id'=>$post['id']))); } //验证是否已经有重复的 排除自身ID $one = Db::name('zcwd_position')->where([ 'type' => $post['type'], 'sf' => $post['sf'], 'cs' => $post['cs'], 'sbdj' => $post['sbdj'], 'is_del' => 0, ])->where('id','<>',$post['id'])->find(); if(!empty($one)){ $this->error('该规则(同一区域和等级)已存在,请检查!', url('ZcwdPosition/index')); } //拼装title $post['type'] $post['title'] = ''; if((int)$post['type'] > 0){ $post['title'] .= Db::name('zc_position')->where(['id'=>$post['type']])->value('title'); } //$less = ['初级助理工程师','初级技术员','中级','品牌中级','副高级']; $less = []; $row = Db::name('zc_position')->where(['id'=>$post['type']])->find(); $dj_group_id = $row['dj_group_id']; //查找分类组 $dj_group_list = Db::name('zcdj_position')->where(['type'=>$dj_group_id])->select(); foreach ($dj_group_list as $k=>$v){ $less[$v['id']] = $v['title']; } $post['title'] .= '-'.$less[(int)$post['sbdj']]; if((int)$post['sf'] > 0){ $post['title'] .= '-'; $post['title'] .= Db::name('citysite')->where(['id'=>$post['sf']])->value('name'); }else{ $post['title'] .= '-'; $post['title'] .= '全国'; } if((int)$post['cs'] > 0){ $post['title'] .= '-'; $post['title'] .= Db::name('citysite')->where(['id'=>$post['cs']])->value('name'); } /* 判断除自身外是否还有相同广告名称已存在 */ $map = array( 'id' => array('NEQ', $post['id']), 'title' => trim($post['title']), //'lang' => $this->admin_lang, ); if (Db::name('zcwd_position')->where($map)->count() > 0) $this->error('该职称名称已存在,请检查'); //处理年龄 if((int)$post['is_ega'] > 0){ if((int)$post['ega'][0] >= (int)$post['ega'][1]){ $this->error('请输入正确的年龄区间,请检查', url('ZcwdPosition/index')); } } /* END */ /* 判断广告是否切换广告类型 */ // $where = [ // 'id' => $post['id'], // 'type' => $post['type'], // 'lang' => $this->admin_lang // ]; // if (Db::name('zcwd_position')->where($where)->count() == 0) { // // 已切换广告类型,清除广告中的广告内容 // $where = [ // 'pid' => $post['id'], // 'lang' => $this->admin_lang // ]; // Db::name('zcwd')->where($where)->delete(); // } /* END */ /* 修改广告主体信息 */ $data = array( 'id' => $post['id'], 'title' => trim($post['title']), 'type' => $post['type'], 'intro' => '0', 'update_time' => getTime(), 'sf' => $post['sf'], 'cs' => $post['cs'], 'sbdj' => $post['sbdj'], 'is_ega' => $post['is_ega'], 'ega_0' => $post['ega'][0], 'ega_1' => $post['ega'][1], 'byzy' => $post['byzy'], 'zhengshu2' => json_encode($post['zhengshu2']), 'xlyq' => $post['xlyq'], 'xxlx' => $post['xxlx'], 'bysj' => $post['bysj'], 'bysj_time' => $post['bysj_time'], 'is_zs' => $post['is_zs'], 'zhengshu' => json_encode($post['zhengshu']), 'sjnx' => $post['sjnx'], 'gzyq' => json_encode($post['gzyq'],JSON_UNESCAPED_UNICODE), 'qttj' => $post['qttj'], ); $resultID = Db::name('zcwd_position')->update($data); /* END */ } if (!empty($resultID)) { $ad_db = Db::name('zcwd'); if (!empty($post['img_litpic'])) { // 图片类型 // 读取组合广告位的图片及信息 $i = 1; foreach ($post['img_litpic'] as $key => $value) { if (!empty($value)) { // 去掉http: $value = str_replace("http:", "", $value); // 去掉https: $value = str_replace("https:", "", $value); // 是否新窗口打开 $target = !empty($post['img_target'][$key]) ? 1 : 0; // 广告位ID,为空则表示添加 $ad_id = $post['img_id'][$key]; if (!empty($ad_id)) { // 查询更新条件 $where = [ 'id' => $ad_id, 'lang' => $this->admin_lang, ]; if ($ad_db->where($where)->count() > 0) { // 主要参数 $AdData['litpic'] = $value; $AdData['title'] = $post['img_title'][$key]; $AdData['links'] = $post['img_links'][$key]; $AdData['intro'] = $post['img_intro'][$key]; $AdData['target'] = $target; // 其他参数 $AdData['sort_order'] = $i++; $AdData['update_time'] = getTime(); // 更新,不需要同步多语言 $ad_db->where($where)->update($AdData); } else { // 主要参数 $AdData['litpic'] = $value; $AdData['pid'] = $post['id']; $AdData['title'] = $post['img_title'][$key]; $AdData['links'] = $post['img_links'][$key]; $AdData['intro'] = $post['img_intro'][$key]; $AdData['target'] = $target; // 其他参数 $AdData['media_type'] = 1; $AdData['admin_id'] = session('admin_id'); $AdData['lang'] = $this->admin_lang; $AdData['sort_order'] = $i++; $AdData['add_time'] = getTime(); $AdData['update_time'] = getTime(); $ad_id = $ad_db->add($AdData); // 同步多语言 //$this->syn_add_ad_language_attribute($ad_id); } } else { // 主要参数 $AdData['litpic'] = $value; $AdData['pid'] = $post['id']; $AdData['title'] = $post['img_title'][$key]; $AdData['links'] = $post['img_links'][$key]; $AdData['intro'] = $post['img_intro'][$key]; $AdData['target'] = $target; // 其他参数 $AdData['media_type'] = 1; $AdData['admin_id'] = session('admin_id'); $AdData['lang'] = $this->admin_lang; $AdData['sort_order'] = $i++; $AdData['add_time'] = getTime(); $AdData['update_time'] = getTime(); $ad_id = $ad_db->add($AdData); // 同步多语言 //$this->syn_add_ad_language_attribute($ad_id); } } } } //Cache::clear('ad'); adminLog('编辑职称名称:'.$post['title']); $this->success("操作成功", url('ZcwdPosition/index')); } else { $this->error("操作失败"); } } $assign_data = array(); $id = input('id/d'); $field = Db::name('zcwd_position')->field('a.*')->alias('a')->where(array('a.id'=>$id))->find(); if (empty($field)) $this->error('职称不存在,请联系管理员!'); switch ($field['type']) { case '1': $field['type_name'] = '图片'; break; case '2': $field['type_name'] = '多媒体'; break; case '3': $field['type_name'] = 'HTML代码'; break; } $assign_data['field'] = $field; // 广告 $ad_data = Db::name('zcwd')->where(array('pid'=>$field['id']))->order('sort_order asc')->select(); foreach ($ad_data as $key => $val) { if (1 == $val['media_type']) { $ad_data[$key]['litpic'] = get_default_pic($val['litpic']); // 支持子目录 } } $assign_data['ad_data'] = $ad_data; // 上传通道 $WeappConfig = Db::name('weapp')->field('code, status')->where('code', 'IN', ['Qiniuyun', 'AliyunOss', 'Cos'])->select(); $WeappOpen = []; foreach ($WeappConfig as $value) { if ('Qiniuyun' == $value['code']) { $WeappOpen['qny_open'] = $value['status']; } else if ('AliyunOss' == $value['code']) { $WeappOpen['oss_open'] = $value['status']; } else if ('Cos' == $value['code']) { $WeappOpen['cos_open'] = $value['status']; } } $this->assign('WeappOpen', $WeappOpen); // 系统最大上传视频的大小 $file_size = tpCache('global.file_size'); $postsize = @ini_get('file_uploads') ? ini_get('post_max_size') : -1; $fileupload = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : -1; $min_size = strval($file_size) < strval($postsize) ? $file_size : $postsize; $min_size = strval($min_size) < strval($fileupload) ? $min_size : $fileupload; $upload_max_filesize = intval($min_size) * 1024 * 1024; $assign_data['upload_max_filesize'] = $upload_max_filesize; // 视频类型 $media_type = tpCache('global.media_type'); $media_type = !empty($media_type) ? $media_type : config('global.media_ext'); $media_type = str_replace(",", "|", $media_type); $assign_data['media_type'] = $media_type; //查找区域数据 $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select(); //var_dump($pro_list); $this->assign('pro_list', $pro_list); $this->assign('curr_id', $field['type']); //查找职称数据 $pos = Db::name('zc_position')->where(['is_del'=>0])->select(); //var_dump($pos); $this->assign('pos_list', $pos); $tn = $this->getMap($field['type']); $this->assign('tn',$tn); if((int)$field['cs'] > 0) { $csn = Db::name('citysite')->where(['id' => $field['cs']])->value('name'); $this->assign('csn',$csn); } $pro_list2 = Db::name('citysite')->where(['parent_id'=>$field['sf']])->select(); //var_dump($pro_list2); $this->assign('pro_list2', $pro_list2); $this->assign('curr_id2', $field['cs']); if((int)$field['byzy'] > 0) { $map_ids = Db::name('zc_zy')->where(['zc_id'=>$field['type'],'is_del'=>0])->column('map_id'); $listwww = Db::name('zczy_position')->where('id','in',$map_ids)->select(); $html = ''; $arr = json_decode($field['zhengshu2'],true); foreach ($listwww as $key => $value) { if(in_array($value['id'],$arr)){ $checked = 'checked'; }else{ $checked = ''; } $html .= ''.$value['title'].''; } $this->assign('byzy_html',$html); } if((int)$field['is_zs'] > 0) { $map_ids = Db::name('zc_zs')->where(['zc_id'=>$field['type'],'is_del'=>0])->column('map_id'); $listwww = Db::name('zczs_position')->where('id','in',$map_ids)->select(); $html = ''; $arr = json_decode($field['zhengshu'],true); foreach ($listwww as $key => $value) { if(in_array($value['id'],$arr)){ $checked = 'checked'; }else{ $checked = ''; } $html .= ''.$value['title'].''; } $this->assign('zs_html',$html); } $gzyq = json_decode($field['gzyq'],true); $this->assign('gzyq',$gzyq); //查找职称 $row = Db::name('zc_position')->where(['id'=>$field['type']])->find(); $dj_group_id = $row['dj_group_id']; //查找分类组 $dj_group_list = Db::name('zcdj_position')->where(['type'=>$dj_group_id])->select(); $this->assign('dj_group_list',$dj_group_list); $this->assign($assign_data); return $this->fetch(); } /** * 删除广告图片 */ public function del_imgupload() { if (is_language() && empty($this->globalConfig['language_split'])) { $this->language_access(); // 多语言功能操作权限 } $id_arr = input('del_id/a'); $id_arr = eyIntval($id_arr); if(IS_POST && !empty($id_arr)){ /*多语言*/ $attr_name_arr = []; if (empty($this->globalConfig['language_split'])) { foreach ($id_arr as $key => $val) { $attr_name_arr[] = 'ad'.$val; } if (is_language()) { $new_id_arr = Db::name('language_attr')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad', ])->column('attr_value'); !empty($new_id_arr) && $id_arr = $new_id_arr; } } else { if (get_admin_lang() == get_main_lang()) { foreach ($id_arr as $key => $val) { $attr_name_arr[] = 'ad'.$val; } } } /*--end*/ $r = Db::name('zcwd')->where([ 'id' => ['IN', $id_arr], ]) ->delete(); if ($r !== false) { /*多语言*/ if (!empty($attr_name_arr)) { Db::name('language_attr')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad', ])->delete(); Db::name('language_attribute')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad', ])->delete(); } /*--end*/ Cache::clear('ad'); adminLog('删除广告-id:'.implode(',', $id_arr)); } } } /** * 删除 */ public function del() { if (is_language() && empty($this->globalConfig['language_split'])) { $this->language_access(); // 多语言功能操作权限 } $id_arr = input('del_id/a'); $id_arr = eyIntval($id_arr); if(IS_POST && !empty($id_arr)){ foreach ($id_arr as $key => $val) { if(array_key_exists($val, $this->ad_position_system_id)){ $this->error('系统预定义,不能删除'); } } /*多语言*/ $attr_name_arr = []; foreach ($id_arr as $key => $val) { $attr_name_arr[] = 'adp'.$val; } if (is_language() && empty($this->globalConfig['language_split'])) { $new_id_arr = Db::name('language_attr')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad_position', ])->column('attr_value'); !empty($new_id_arr) && $id_arr = $new_id_arr; } /*--end*/ $r = Db::name('zcwd_position')->where('id','IN',$id_arr)->delete(); if ($r !== false) { /*多语言*/ if (!empty($attr_name_arr)) { if (get_admin_lang() == get_main_lang()) { Db::name('language_attribute')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad_position', ])->delete(); } if (empty($this->globalConfig['language_split'])) { Db::name('language_attr')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad_position', ])->delete(); } else { Db::name('language_attr')->where([ 'attr_value' => ['IN', $id_arr], 'attr_group' => 'ad_position', ])->delete(); } } /*--end*/ $ad_ids = Db::name('zcwd')->where(['pid'=>['IN', $id_arr]])->column('id'); $attr_name_arr = []; foreach ($ad_ids as $key => $val) { $attr_name_arr[] = "ad{$val}"; } $r1 = Db::name('zcwd')->where('pid','IN',$id_arr)->delete(); if ($r1 !== false) { /*多语言*/ if (!empty($attr_name_arr)) { if (get_admin_lang() == get_main_lang()) { Db::name('language_attribute')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad', ])->delete(); } if (empty($this->globalConfig['language_split'])) { Db::name('language_attr')->where([ 'attr_name' => ['IN', $attr_name_arr], 'attr_group' => 'ad', ])->delete(); } else { Db::name('language_attr')->where([ 'attr_value' => ['IN', $ad_ids], 'attr_group' => 'ad', ])->delete(); } } /*--end*/ } Cache::clear('ad'); adminLog('删除广告-id:'.implode(',', $id_arr)); $this->success('删除成功'); } else { $this->error('删除失败'); } }else{ $this->error('参数有误'); } } /** * 打开预览视频 */ public function open_preview_video() { $post = input('post.'); $video_litpic = $post['video_litpic']; if (!is_http_url($video_litpic)) { $video_litpic = request()->domain() . handle_subdir_pic($video_litpic, 'media'); } $this->success('执行成功', $video_litpic); } /** * 检测广告名称是否存在重复 */ public function detection_title_repeat() { if (IS_AJAX_POST) { $post = input('post.'); $where = [ 'id' => ['NEQ', $post['id']], 'title' => trim($post['title']), 'lang' => $this->admin_lang, ]; $count = Db::name('zcwd_position')->where($where)->count(); if (empty($count)) { $this->success('检测通过'); } else { $this->error('该广告名称已存在,请检查'); } } } /** * 同步新增广告位置ID到多语言的模板变量里 */ private function syn_add_language_attribute($adp_id) { /*单语言情况下不执行多语言代码*/ if (!is_language() || tpCache('language.language_split')) { return true; } /*--end*/ $attr_group = 'ad_position'; $admin_lang = $this->admin_lang; $main_lang = $this->main_lang; $languageRow = Db::name('language')->field('mark')->order('id asc')->select(); if (!empty($languageRow) && $admin_lang == $main_lang) { // 当前语言是主体语言,即语言列表最早新增的语言 $ad_position_db = Db::name('zcwd_position'); $result = $ad_position_db->find($adp_id); $attr_name = 'adp'.$adp_id; $r = Db::name('language_attribute')->save([ 'attr_title' => $result['title'], 'attr_name' => $attr_name, 'attr_group' => $attr_group, 'add_time' => getTime(), 'update_time' => getTime(), ]); if (false !== $r) { $data = []; foreach ($languageRow as $key => $val) { /*同步新广告位置到其他语言广告位置列表*/ if ($val['mark'] != $admin_lang) { $addsaveData = $result; $addsaveData['lang'] = $val['mark']; $addsaveData['title'] = $val['mark'].$addsaveData['title']; unset($addsaveData['id']); $adp_id = $ad_position_db->insertGetId($addsaveData); } /*--end*/ /*所有语言绑定在主语言的ID容器里*/ $data[] = [ 'attr_name' => $attr_name, 'attr_value' => $adp_id, 'lang' => $val['mark'], 'attr_group' => $attr_group, 'add_time' => getTime(), 'update_time' => getTime(), ]; /*--end*/ } if (!empty($data)) { model('LanguageAttr')->saveAll($data); } } } } /** * 同步新增广告ID到多语言的模板变量里 */ private function syn_add_ad_language_attribute($ad_id) { /*单语言情况下不执行多语言代码*/ if (!is_language() || tpCache('language.language_split')) { return true; } /*--end*/ $attr_group = 'ad'; $admin_lang = $this->admin_lang; $main_lang = get_main_lang(); $languageRow = Db::name('language')->field('mark')->order('id asc')->select(); if (!empty($languageRow) && $admin_lang == $main_lang) { // 当前语言是主体语言,即语言列表最早新增的语言 $ad_db = Db::name('zcwd'); $result = $ad_db->find($ad_id); $attr_name = 'ad'.$ad_id; $r = Db::name('language_attribute')->save([ 'attr_title' => $result['title'], 'attr_name' => $attr_name, 'attr_group' => $attr_group, 'add_time' => getTime(), 'update_time' => getTime(), ]); if (false !== $r) { $data = []; foreach ($languageRow as $key => $val) { /*同步新广告到其他语言广告列表*/ if ($val['mark'] != $admin_lang) { $addsaveData = $result; $addsaveData['lang'] = $val['mark']; $newPid = Db::name('language_attr')->where([ 'attr_name' => 'adp'.$result['pid'], 'attr_group' => 'ad_position', 'lang' => $val['mark'], ])->getField('attr_value'); $addsaveData['pid'] = $newPid; $addsaveData['title'] = $val['mark'].$addsaveData['title']; unset($addsaveData['id']); $ad_id = $ad_db->insertGetId($addsaveData); } /*--end*/ /*所有语言绑定在主语言的ID容器里*/ $data[] = [ 'attr_name' => $attr_name, 'attr_value' => $ad_id, 'lang' => $val['mark'], 'attr_group' => $attr_group, 'add_time' => getTime(), 'update_time' => getTime(), ]; /*--end*/ } if (!empty($data)) { model('LanguageAttr')->saveAll($data); } } } } }