123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394 |
- <?php
- namespace addons\wwh\controller;
- use think\Db;
- use think\Request;
- use addons\wwh\model\Column as ColumnModel;
- class Column extends Base
- {
- public function index()
- {
- // 初始化并验证参数
- $diyname = $this->request->param('diyname/s');
- if (empty($diyname)) {
- $this->error('参数错误!');
- }
- // 获取当前栏目信息
- $navCur = $this->getCurrentColumn($diyname);
- $this->view->assign([
- 'navCur' => $navCur,
- 'currentId' => $navCur['id'],
- 'secondId' => ColumnModel::getSecondId($navCur['id']) // 获取第二级栏目ID
- ]);
- // 处理跳转链接
- if ($navCur['type'] === 'link') {
- $this->redirect($navCur['outlink']);
- }
- // 获取顶级栏目
- $topId = ColumnModel::getTopColumn($navCur);
- $this->view->assign('top', $topId);
- // 确定模板
- $template = $this->getTemplate($navCur);
- // 加载各模块数据
- $this->loadContentList($navCur); // 内容列表
- $this->loadDownloadList(); // 资料下载
- $this->loadServiceData(); // 服务策略
- $this->loadFaqList(); // 常见问题
- $this->loadQualityAssurance(); // 质保查询
- $this->loadPartnerList(); // 合作伙伴
- $this->loadAboutData(); // 公司概况
- $this->loadDevelopmentData(); // 发展历程
- $this->loadHonorList(); // 荣誉资质
- $this->loadJoinUsData(); // 加入我们
- $this->loadContactData(); // 联系我们
- $this->loadCultureData(); // 企业文化
- return $this->view->fetch('/' . $template);
- }
- /**
- * 获取当前栏目信息
- */
- protected function getCurrentColumn($diyname)
- {
- $column = Db::name('wwh_column')
- ->where('diyname', $diyname)
- ->find();
- if (!$column) {
- $this->error('未知栏目!');
- }
- return $column;
- }
- /**
- * 获取模板名称
- */
- protected function getTemplate($navCur)
- {
- $template = preg_replace('/\.html$/', '', $navCur['listtpl']);
- if (!$template) {
- $template = preg_replace('/\.html$/', '', $navCur['showtpl']);
- }
- return $template;
- }
- /**
- * 加载内容列表
- */
- protected function loadContentList($navCur)
- {
- $archivesQuery = Db::name('wwh_archives')
- ->where('lang', $this->lang)
- ->where('status', '1')
- ->order('weigh desc');
- if ($navCur) {
- $archivesQuery->where('type', $navCur['classify'])
- ->whereRaw('find_in_set('.$navCur['id'].', `column_ids`)');
- }
-
- $list = $archivesQuery->paginate(9, false, ['query' => request()->param()]);
- $newList = [];
- foreach ($list as $item) {
- $item['time'] = strtotime($item['time']);
- $newList[] = $item;
- }
- $this->assign([
- 'archives' => $newList,
- 'lbPage' => $list->render()
- ]);
- }
- /**
- * 加载资料下载列表
- */
- protected function loadDownloadList()
- {
- $downkeys = trim(input('downkeys', ''));
- $category = trim(input('category', ''));
- $query = Db::name('wwh_archives')
- ->where('status', '1')
- ->where('type', 'download')
- ->where('lang', $this->lang)
- ->order('weigh desc');
- if ($downkeys !== '' || $category !== '') {
- if ($downkeys !== '') {
- $query->where('title', 'like', '%' . $downkeys . '%');
- }
- if ($category !== '') {
- $query->where('column_id', $category);
- }
- }
- $list = $query->paginate(8, false, ['query' => request()->param()]);
- $this->assign([
- 'down' => $list,
- 'downPage' => $list->render(),
- 'downType' => [
- 1 => __lang('Manual'),
- 2 => __lang('Color Page'),
- 3 => __lang('Driver'),
- 4 => __lang('Other')
- ]
- ]);
- }
- /**
- * 加载服务策略数据
- */
- protected function loadServiceData()
- {
- $service = Db::name('wwh_service')
- ->where('lang', $this->lang)
- ->find();
- $this->assign('service', $service ?: []);
- }
- /**
- * 加载常见问题列表
- */
- protected function loadFaqList()
- {
- $faqkeys = trim(input('faqkeys', ''));
- // 构建基础查询
- $query = Db::name('wwh_faq')
- ->where('status', '1')
- ->where('lang', $this->lang);
- // 应用搜索条件
- if (!empty($faqkeys)) {
- $query->where('title', 'like', '%'.$faqkeys.'%');
- }
- // 获取分页列表
- $list = $query->order('weigh desc')
- ->paginate(8, false, ['query' => request()->param()]);
- // 获取总数
- $faqCount = $list->total();
- $this->assign([
- 'faq' => $list,
- 'faqPage' => $list->render(),
- 'faqCount' => $faqCount
- ]);
- }
- /**
- * 加载质保查询数据
- */
- protected function loadQualityAssurance()
- {
- $qakeys = trim(input('get.qakeys', ''));
- $isSearchRequest = request()->has('qakeys');
- if ($isSearchRequest) {
- if (empty($qakeys)) {
- $this->error('请输入序列号');
- }
- $qa = Db::name('wwh_qa')
- ->where('sn', $qakeys)
- ->where('lang', $this->lang)
- ->select();
- $this->assign([
- 'qa' => $qa,
- 'showNoQa' => empty($qa)
- ]);
- } else {
- $this->assign('showNoQa', false);
- }
- }
- /**
- * 加载合作伙伴列表
- */
- protected function loadPartnerList()
- {
- $list = Db::name('wwh_partner')
- ->where('lang', $this->lang)
- ->order('weigh desc')
- ->paginate('24', false, ['query' => request()->param()]);
- $this->assign([
- 'partner' => $list,
- 'partnerPage' => $list->render()
- ]);
- }
- /**
- * 加载公司概况数据
- */
- protected function loadAboutData()
- {
- $about = Db::name('wwh_about')
- ->where('lang', $this->lang)
- ->find();
- $this->assign('about', $about ?: []);
- }
- /**
- * 加载发展历程数据
- */
- protected function loadDevelopmentData()
- {
- $development = Db::name('wwh_development')
- ->where('lang', $this->lang)
- ->order('id asc')
- ->select();
- $this->assign('development', $development ?: []);
- }
- /**
- * 加载荣誉资质列表
- */
- protected function loadHonorList()
- {
- $list = Db::name('wwh_honor')
- ->where('lang', $this->lang)
- ->order('weigh desc')
- ->paginate('9', false, ['query' => request()->param()]);
- $this->assign([
- 'honor' => $list,
- 'honorPage' => $list->render(),
- 'honorType' => [
- 1 => __lang('Qualifications'),
- 2 => __lang('Honor'),
- 3 => __lang('Other')
- ]
- ]);
- }
- /**
- * 加载加入我们数据
- */
- protected function loadJoinUsData()
- {
- // 部门和地址列表
- $deptList = Db::name('wwh_position')
- ->where('lang', $this->lang)
- ->distinct(true)
- ->field('dept')
- ->select();
- $addrList = Db::name('wwh_position')
- ->where('lang', $this->lang)
- ->distinct(true)
- ->field('addr')
- ->select();
- $this->assign([
- 'deptList' => $deptList ?: [],
- 'addrList' => $addrList ?: [],
- ]);
- // 职位查询
- $jonKeywords = trim(input('jonKeywords', ''));
- $branch = trim(input('branch', ''));
- $address = trim(input('address', ''));
- $query = Db::name('wwh_position')
- ->where('lang', $this->lang)
- ->order('time desc');
- if (!empty($jonKeywords) || !empty($branch) || !empty($address)) {
- $conditions = [];
- if (!empty($jonKeywords)) {
- $conditions['name'] = ['like', "%{$jonKeywords}%"];
- }
- if (!empty($branch)) {
- $conditions['dept'] = $branch;
- }
- if (!empty($address)) {
- $conditions['addr'] = $address;
- }
- $query->where($conditions);
- }
- $list = $query->paginate(6, false, ['query' => request()->param()]);
- $this->assign([
- 'join' => $list,
- 'joinPage' => $list->render()
- ]);
- }
- /**
- * 加载联系我们数据
- */
- protected function loadContactData()
- {
- $market = Db::name('wwh_market')
- ->where('lang', $this->lang)
- ->order('weigh desc')
- ->select() ?: [];
- $contact = Db::name('wwh_contact')
- ->where('lang', $this->lang)
- ->find();
- $this->assign([
- 'contact' => $contact ?: [],
- 'market' => $market ?: []
- ]);
- }
- /**
- * 加载企业文化数据
- */
- protected function loadCultureData()
- {
- // 企业文化卡片数据
- $cultureCards = Db::name('wwh_culture_card')
- ->where('status', '1')
- ->where('lang', $this->lang)
- ->order('weigh desc')
- ->select();
- // 处理内容项目JSON
- foreach ($cultureCards as &$card) {
- if ($card['content_items']) {
- $card['content_items'] = json_decode($card['content_items'], true);
- }
- }
- // 企业文化横幅数据
- $cultureBanners = Db::name('wwh_culture_banner')
- ->where('status', '1')
- ->where('lang', $this->lang)
- ->order('weigh desc')
- ->select();
- // 处理内容数据JSON
- foreach ($cultureBanners as &$banner) {
- if ($banner['content_data']) {
- $banner['content_data'] = json_decode($banner['content_data'], true);
- }
- }
- $this->assign([
- 'cultureCards' => $cultureCards ?: [],
- 'cultureBanners' => $cultureBanners ?: []
- ]);
- }
- }
|