/**
  * 问题列表
  */
 public function listAction()
 {
     $this->setLeftNav('list');
     $req = $this->request;
     $page = intval($req->getQuery('page', null, 1));
     $page = $page > 0 ? $page : 1;
     $limit = $this->pageNavLimit;
     $offset = $limit * ($page - 1);
     $filterTag = intval($req->getQuery('filterTag', null, -10000));
     $filterOrder = intval($req->getQuery('filterOrder', null, 0));
     $columns = ['Apps\\Common\\Models\\Question.question_id', 'ub.user_id', 'ub.user_nickname', 'ub.user_cover', 'Apps\\Common\\Models\\Question.question_tag', 'Apps\\Common\\Models\\Question.question_content', 'Apps\\Common\\Models\\Question.question_pics', 'Apps\\Common\\Models\\Question.answer_num', 'Apps\\Common\\Models\\Question.question_follows', 'Apps\\Common\\Models\\Question.question_browsers', 'Apps\\Common\\Models\\Question.question_state', 'Apps\\Common\\Models\\Question.question_addtime', 'Apps\\Common\\Models\\Question.city_code'];
     $where = [];
     $bind = [];
     if ($filterTag > 0) {
         $where[] = 'Apps\\Common\\Models\\Question.question_tag = :tag:';
         $bind['tag'] = $filterTag;
     }
     // 只查询正常的内容
     $where[] = 'Apps\\Common\\Models\\Question.question_state > 0';
     $whereStr = implode(' AND ', $where);
     $query = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\Question.user_id', 'ub');
     if (count($where) > 0) {
         $query = $query->where($whereStr)->bind($bind);
     }
     $data = $query->orderBy($filterOrder == 1 ? 'answer_num ASC, Apps\\Common\\Models\\Question.question_id DESC' : 'Apps\\Common\\Models\\Question.question_id DESC')->limit($limit, $offset)->execute();
     //总数
     $total = Question::count(['conditions' => $whereStr, 'bind' => $bind]);
     $this->view->setVar('data', $data);
     $this->view->setVar('page', $page);
     $this->view->setVar('limit', $limit);
     $this->view->setVar('total', $total);
     // $this->view->setVar('tagList', QuestionTag::query()->columns('*')->orderBy('tag_order DESC, tag_id ASC')->execute());
     $this->view->setVar('filterTag', $filterTag);
     $this->view->setVar('filterOrder', $filterOrder);
 }
 /**
  * 问题列表
  * @date: 2016年1月19日 
  * @author: futao
  */
 public function listAction()
 {
     $this->setLeftNav('list');
     $req = $this->request;
     $page = intval($req->getQuery('page', null, 1));
     $page = $page > 0 ? $page : 1;
     $limit = $this->pageNavLimit;
     $offset = $limit * ($page - 1);
     $filterUser = intval($req->getQuery('filterUser', null, -10000));
     $filterState = intval($req->getQuery('filterState', null, -10000));
     $filtertime = $req->getQuery('inputtime', null, '');
     $filtercontent = $req->getQuery('qcontent', null, '');
     $filtertag = $req->getQuery('qtag', null, '');
     $filtercity = $req->getQuery('cityCode', null, 0);
     $filterNew = $req->getQuery('new', null, -1);
     $columns = ['Apps\\Common\\Models\\Question.question_id', 'ub.user_id', 'ub.user_nickname', 'ub.user_cover', 'Apps\\Common\\Models\\Question.question_tag', 'Apps\\Common\\Models\\Question.question_content', 'Apps\\Common\\Models\\Question.question_pics', 'Apps\\Common\\Models\\Question.answer_num', 'Apps\\Common\\Models\\Question.question_follows', 'Apps\\Common\\Models\\Question.question_browsers', 'Apps\\Common\\Models\\Question.question_state', 'Apps\\Common\\Models\\Question.question_addtime', 'Apps\\Common\\Models\\Question.city_code'];
     $where = [];
     $bind = [];
     //筛选数据
     if ($filtercity == -1) {
         $where[] = 'city_code <> 0 ';
         $this->setLeftNav('citylist');
     }
     if ($filterNew > -1) {
         $where[] = 'Apps\\Common\\Models\\Question.is_manager_reply = :new:';
         $bind['new'] = $filterNew;
     }
     if ($filtertag != '') {
         $questionIds = QuestionTag::query()->columns("question_id")->where('tag_name like "%' . $filtertag . '%"')->execute()->toArray();
         if ($questionIds != '') {
             foreach ($questionIds as $val) {
                 $ids[] = $val['question_id'];
             }
             $ids = implode(",", $ids);
             $where[] = 'Apps\\Common\\Models\\Question.question_id in (' . $ids . ')';
         }
     }
     if ($filtertime != '') {
         if (explode("至", $filtertime)) {
             $timearr[] = explode("至", $filtertime);
             $start_time = $timearr[0][0];
             $end_time = $timearr[0][1];
             if ($start_time != '' && $end_time != '') {
                 $where[] = 'Apps\\Common\\Models\\Question.question_addtime >= :start_time: and Apps\\Common\\Models\\Question.question_addtime <= :end_time:';
                 $bind['start_time'] = $start_time;
                 $bind['end_time'] = $end_time;
             }
         }
     }
     if ($filtercontent != '') {
         $where[] = 'Apps\\Common\\Models\\Question.question_content like :content:';
         $bind['content'] = '%' . $filtercontent . '%';
     }
     if ($filterUser > 0) {
         $where[] = 'Apps\\Common\\Models\\Question.user_id = :uid:';
         $bind['uid'] = $filterUser;
     }
     if ($filterState > -10000) {
         $where[] = 'Apps\\Common\\Models\\Question.question_state = :state:';
         $bind['state'] = $filterState;
     }
     $whereStr = implode(' AND ', $where);
     $query = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\Question.user_id', 'ub');
     if (count($where) > 0) {
         $query = $query->where($whereStr)->bind($bind);
     }
     $data = $query->orderBy('Apps\\Common\\Models\\Question.question_id DESC')->limit($limit, $offset)->execute()->toArray();
     $total = Question::count(['conditions' => $whereStr, 'bind' => $bind]);
     foreach ($data as $k => $v) {
         //问题内容解码
         if (unserialize(base64_decode($v['question_content']))) {
             $data[$k]['question_content'] = unserialize(base64_decode($v['question_content']));
         }
         if (json_decode($data[$k]['question_tag'])) {
             $data[$k]['question_tag'] = json_decode($data[$k]['question_tag']);
         }
     }
     $this->view->setVar('data', $data);
     $this->view->setVar('page', $page);
     $this->view->setVar('limit', $limit);
     $this->view->setVar('total', $total);
     $this->view->setVar('openCity', $this->openCityList());
     $this->view->setVar('filterNew', $filterNew);
     $this->view->setVar('cityCode', $filtercity);
     $this->view->setVar('inputtime', $filtertime);
     $this->view->setVar('filterUser', $filterUser);
     $this->view->setVar('filtertag', $filtertag);
     $this->view->setVar('filterState', $filterState);
     $this->view->setVar('qcontent', $filtercontent);
 }
 public function listAction()
 {
     $this->setLeftNav('list');
     $req = $this->request;
     $page = intval($req->getQuery('page', null, 1));
     $page = $page > 0 ? $page : 1;
     $limit = $this->pageNavLimit;
     $offset = $limit * ($page - 1);
     $filterUser = intval($req->getQuery('filterUser', null, -10000));
     $filterTag = intval($req->getQuery('filterTag', null, -10000));
     $filterState = intval($req->getQuery('filterState', null, -10000));
     $columns = ['question_id', 'ub.user_id', 'user_nickname', 'user_cover', 'question_tag', 'tag_title', 'question_content', 'question_pics', 'answer_num', 'question_follows', 'question_browsers', 'question_state', 'question_addtime'];
     $where = [];
     $bind = [];
     if ($filterUser > 0) {
         $where[] = 'Apps\\Common\\Models\\Question.user_id = :uid:';
         $bind['uid'] = $filterUser;
     }
     if ($filterTag > 0) {
         $where[] = 'Apps\\Common\\Models\\Question.question_tag = :tag:';
         $bind['tag'] = $filterTag;
     }
     if ($filterState > -10000) {
         $where[] = 'Apps\\Common\\Models\\Question.question_state = :state:';
         $bind['state'] = $filterState;
     }
     $whereStr = implode(' AND ', $where);
     $query = Question::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\Question.user_id', 'ub')->leftJoin('Apps\\Common\\Models\\QuestionTag', 'tag.tag_id = question_tag', 'tag');
     if (count($where) > 0) {
         $query = $query->where($whereStr)->bind($bind);
     }
     $data = $query->orderBy('question_id DESC')->limit($limit, $offset)->execute()->toArray();
     $total = Question::count(['conditions' => $whereStr, 'bind' => $bind]);
     foreach ($data as $k => $v) {
         if (unserialize(base64_decode($v['question_content']))) {
             $data[$k]['question_content'] = unserialize(base64_decode($v['question_content']));
         }
     }
     $this->view->setVar('data', $data);
     $this->view->setVar('page', $page);
     $this->view->setVar('limit', $limit);
     $this->view->setVar('total', $total);
     $this->view->setVar('tagList', QuestionTag::query()->columns('*')->orderBy('tag_order DESC, tag_id ASC')->execute());
     $this->view->setVar('filterUser', $filterUser);
     $this->view->setVar('filterTag', $filterTag);
     $this->view->setVar('filterState', $filterState);
 }