public function run() { $page = intval($this->getDataItem('page', 1)); $keyword = $this->getDataItem('keyword'); $city_code = trim($this->getDataItem('city_code')); if ($city_code == null || $city_code == '') { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, "城市编码为空"); exit; } $is_open = SysOpenCity::findFirst(['columns' => "city_id", 'conditions' => "city_code = {$city_code} AND city_state = 1"]); if (!$is_open->city_id > 0) { return $this->errorLog(ResultStatus::CITY_NOT_OPEN, "城市未开通"); exit; } //根据城市编码 获取 城市区 $city = SysAreaZipDistrictPhonecode::query()->columns(['K_ID'])->where("PHONE_CODE = {$city_code}")->execute()->toArray(); foreach ($city as $k) { $citys[] = $k['K_ID']; } $citys = implode(',', $citys); $count = $this->getConfig()->limit; if (empty($keyword)) { $offset = ($page - 1) * $count; $list = BeautyParlorServiceModel::query()->columns(['service_id id', 'service_cover cover', 'service_name name', 'service_price price', 'service_unit unit', 'service_description description', 'b.bp_id', 'b.bp_name'])->leftJoin('Apps\\Common\\Models\\BeautyParlor', 'Apps\\Common\\Models\\BeautyParlorService.beauty_parlor_id = b.bp_id', 'b')->where("Apps\\Common\\Models\\BeautyParlorService.service_state = 1 and b.bp_state = 1 AND b.bp_district in ({$citys})")->limit($count, $offset)->execute()->toArray(); foreach ($list as $k => $v) { $unit = $v['unit']; unset($v['unit']); $list[$k]['price_show'] = ''; if ($v['price'] > 0) { $list[$k]['price_show'] = $v['price'] . '元' . ($unit ? '/' . $unit : ''); } $list[$k]['cover'] = PicUrl::BeautyParlorCover($list[$k]['cover'], $this->getDi()); } $this->setResult($list); } else { /*多关键字搜索*/ $keywordarr = explode(" ", trim($keyword)); foreach ($keywordarr as $r) { $wherearr[] = "Apps\\Common\\Models\\BeautyParlorService.service_name like '%" . $r . "%'"; } $where = implode(" or ", $wherearr); //////////////////////////////////////////////////////////////// /* $limit = $this->getConfig()->limit; $offset = ($page-1) * $limit; $data = $this->searchBPS($keyword, $limit, $offset); $this->setResult($data); */ $offset = ($page - 1) * $count; $list = BeautyParlorServiceModel::query()->columns(['service_id id', 'service_cover cover', 'service_name name', 'service_price price', 'service_unit unit', 'service_description description', 'b.bp_id', 'b.bp_name'])->leftJoin('Apps\\Common\\Models\\BeautyParlor', 'Apps\\Common\\Models\\BeautyParlorService.beauty_parlor_id = b.bp_id', 'b')->where("{$where} and Apps\\Common\\Models\\BeautyParlorService.service_state = 1 and b.bp_state = 1 AND b.bp_district in ({$citys})")->limit($count, $offset)->execute()->toArray(); foreach ($list as $k => $v) { $unit = $v['unit']; unset($list[$k]['unit']); $list[$k]['price_show'] = ''; if ($v['price'] > 0) { $list[$k]['price_show'] = $v['price'] . '元' . ($unit ? '/' . $unit : ''); } $list[$k]['cover'] = PicUrl::BeautyParlorCover($list[$k]['cover'], $this->getDi()); } $this->setResult($list); } }
/** * 用户列表 */ 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); $columns = ['user_id', 'user_account', 'user_nickname', 'user_cover', 'user_gender', 'user_expert', 'user_birthday', 'user_realname', 'user_district', 'FULL_NAME district', 'user_state', 'user_addtime', 'persional_sign']; $filterName = $req->getQuery('filterName', null, ''); $filterMobile = $req->getQuery('filterMobile', null, ''); $filterState = intval($req->getQuery('filterState', null, -10000)); $filterGender = intval($req->getQuery('filterGender', null, -10000)); $filterExpert = intval($req->getQuery('filterExpert', null, -10000)); $filterProvince = $req->getQuery('filterProvince', null, ''); $filterCity = $req->getQuery('filterCity', null, ''); $filterDistrict = intval($req->getQuery('filterDistrict', null, -10000)); $where = []; $bind = []; if (!!$filterName) { $where[] = 'user_nickname LIKE :fname:'; $bind['fname'] = '%' . $filterName . '%'; } if (!!$filterMobile) { $where[] = 'user_account = :mobile:'; $bind['mobile'] = $filterMobile; } if ($filterState > -10000) { $where[] = 'user_state = :state:'; $bind['state'] = $filterState; } if ($filterGender > -10000) { $where[] = 'user_gender = :gender:'; $bind['gender'] = $filterGender; } if ($filterExpert > -10000) { $where[] = 'user_expert = :expert:'; $bind['expert'] = $filterExpert; } // 地区 $districts = []; if ($filterDistrict > -10000) { $where[] = 'user_district = :district:'; $bind['district'] = $filterDistrict; } elseif (!empty($filterCity)) { // 获取所有城市的下级区县值 $dids = SysAreaZipDistrictPhonecode::query()->columns(['K_ID id'])->where('P_NM = :province: AND C_NM = :city:', ['province' => $filterProvince, 'city' => $filterCity])->execute(); foreach ($dids as $d) { $districts[] = $d->id; } } elseif (!empty($filterProvince)) { // 获取所有城市的下级区县值 $dids = SysAreaZipDistrictPhonecode::query()->columns(['K_ID id'])->where('P_NM = :p:', ['p' => $filterProvince])->execute(); foreach ($dids as $d) { $districts[] = $d->id; } } if (count($districts) > 0) { $where[] = 'user_district IN(' . implode(', ', $districts) . ')'; } $whereStr = count($where) > 0 ? implode(' AND ', $where) : ''; $query = UserBase::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\SysAreaZipDistrictPhonecode', 'K_ID=user_district', 'area'); if (count($where) > 0) { $query = $query->where($whereStr); } if (count($bind) > 0) { $query = $query->bind($bind); } $data = $query->orderBy('user_id DESC')->limit($limit, $offset)->execute(); $total = UserBase::count(['conditions' => $whereStr, 'bind' => $bind]); $this->view->setVars(['filterName' => $filterName, 'filterMobile' => $filterMobile, 'filterState' => $filterState, 'filterGender' => $filterGender, 'filterExpert' => $filterExpert, 'filterProvince' => $filterProvince, 'filterCity' => $filterCity, 'filterDistrict' => $filterDistrict]); $this->view->setVars(['page' => $page, 'limit' => $limit, 'total' => $total]); $this->view->setVar('data', $data); }
/** * 美容院列表 */ public function listAction() { $this->setLeftNav('bp_list'); $req = $this->request; $page = intval($req->getQuery('page', null, 1)); $page = $page > 0 ? $page : 1; $limit = $this->pageNavLimit; $offset = $limit * ($page - 1); $filterProvince = $req->getQuery('filterProvince', null, ''); $filterCity = $req->getQuery('filterCity', null, ''); $filterDistrict = intval($req->getQuery('filterDistrict', null, -10000)); $filterState = intval($req->getQuery('filterState', null, -10000)); $filterSell = intval($req->getQuery('filterSell', null, -10000)); $filterMedal = intval($req->getQuery('filterMedal', null, -10000)); $filterName = $req->getQuery('filterName', null, ''); $columns = ['bp_id', 'bp_name', 'bp_cover', 'bp_address', 'bp_district', 'FULL_NAME district', 'bp_coordinate', 'bp_tel', 'bp_intro', 'bp_state', 'bp_is_sell', 'bp_medal', 'bp_addtime']; $where = []; $bind = []; $medal = []; if (!!$filterName) { $where[] = 'bp_name LIKE :fname:'; $bind['fname'] = '%' . $filterName . '%'; } if ($filterState > -10000) { $where[] = 'bp_state = :state:'; $bind['state'] = $filterState; } if ($filterSell > -10000) { $where[] = 'bp_is_sell = :sell:'; $bind['sell'] = $filterSell; } // 勋章 switch ($filterMedal) { case 1: $medal = ['10', '11']; break; case 2: $medal = ['01', '11']; break; case 3: $where[] = 'bp_medal = :medal:'; $bind['medal'] = '11'; } $districts = []; // 地区 if ($filterDistrict > -10000) { $where[] = 'bp_district = :district:'; $bind['district'] = $filterDistrict; } elseif (!empty($filterCity)) { // 获取所有城市的下级区县值 $dids = SysAreaZipDistrictPhonecode::query()->columns(['K_ID id'])->where('P_NM = :province: AND C_NM = :city:', ['province' => $filterProvince, 'city' => $filterCity])->execute(); foreach ($dids as $d) { $districts[] = $d->id; } } elseif (!empty($filterProvince)) { // 获取所有城市的下级区县值 $dids = SysAreaZipDistrictPhonecode::query()->columns(['K_ID id'])->where('P_NM = :p:', ['p' => $filterProvince])->execute(); foreach ($dids as $d) { $districts[] = $d->id; } } if (count($medal) > 0) { $where[] = 'bp_medal IN(' . implode(', ', $medal) . ')'; } if (count($districts) > 0) { $where[] = 'bp_district IN(' . implode(', ', $districts) . ')'; } $whereStr = implode(' AND ', $where); $query = BeautyParlor::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\SysAreaZipDistrictPhonecode', 'K_ID=bp_district', 'area'); if (!empty($whereStr)) { $query = $query->where($whereStr); } if (count($bind) > 0) { $query = $query->bind($bind); } $bpList = $query->orderBy('bp_id DESC')->limit($limit, $offset)->execute(); // 总数 $total = BeautyParlor::count(['conditions' => $whereStr, 'bind' => $bind]); $this->view->setVar('filterProvince', $filterProvince); $this->view->setVar('filterCity', $filterCity); $this->view->setVar('filterDistrict', $filterDistrict); $this->view->setVar('filterState', $filterState); $this->view->setVar('filterName', $filterName); $this->view->setVar('filterSell', $filterSell); $this->view->setVar('filterMedal', $filterMedal); $this->view->setVar('total', $total); $this->view->setVar('page', $page); $this->view->setVar('limit', $limit); $this->view->setVar('bpList', $bpList); $this->view->setVar('bpStateList', \Apps\Common\Enum\BeautyParlor::valuesExplain()); }
/** * 1.0版本 * * @return $this|ResponseResult */ public function addBpAction() { $this->setLeftNav('bp_list'); $req = $this->request; $id = intval($req->getQuery('id', null, 0)); $page = intval($req->getQuery('page', null, 1)); $page = $page > 0 ? $page : 1; $limit = $this->pageNavLimit; $offset = $limit * ($page - 1); $filterProvince = $req->getQuery('filterProvince', null, ''); $filterCity = $req->getQuery('filterCity', null, ''); $filterDistrict = intval($req->getQuery('filterDistrict', null, -10000)); $filterName = $req->getQuery('filterName', null, ''); $columns = ['bp_id', 'bp_name', 'bp_cover', 'bp_address', 'bp_district', 'FULL_NAME district', 'bp_coordinate', 'bp_tel', 'bp_intro', 'bp_state', 'bp_is_sell', 'bp_medal', 'bp_addtime']; $where = ['bp_state > 0']; $bind = []; if (!!$filterName) { $where[] = 'bp_name LIKE :fname:'; $bind['fname'] = '%' . $filterName . '%'; } $districts = []; // 地区 if ($filterDistrict > -10000) { $where[] = 'bp_district = :district:'; $bind['district'] = $filterDistrict; } elseif (!empty($filterCity)) { // 获取所有城市的下级区县值 $dids = SysAreaZipDistrictPhonecode::query()->columns(['K_ID id'])->where('P_NM = :province: AND C_NM = :city:', ['province' => $filterProvince, 'city' => $filterCity])->execute(); foreach ($dids as $d) { $districts[] = $d->id; } } elseif (!empty($filterProvince)) { // 获取所有城市的下级区县值 $dids = SysAreaZipDistrictPhonecode::query()->columns(['K_ID id'])->where('P_NM = :p:', ['p' => $filterProvince])->execute(); foreach ($dids as $d) { $districts[] = $d->id; } } if (count($districts) > 0) { $where[] = 'bp_district IN(' . implode(', ', $districts) . ')'; } $whereStr = implode(' AND ', $where); $query = BeautyParlor::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\SysAreaZipDistrictPhonecode', 'K_ID=bp_district', 'area'); if (!empty($whereStr)) { $query = $query->where($whereStr); } if (count($bind) > 0) { $query = $query->bind($bind); } $bpList = $query->orderBy('bp_id DESC')->limit($limit, $offset)->execute()->toArray(); // 总数 $total = BeautyParlor::count(['conditions' => $whereStr, 'bind' => $bind]); // 查看是否已经在此活动中 // 查询所有参与的列表 $joinList = ActivityBeautyParlor::find('state > 0 AND activity_id = ' . $id); $joinBpIds = []; foreach ($joinList as $j) { $joinBpIds[] = strval($j->beauty_parlor_id); } for ($i = 0; $i < count($bpList); $i++) { if (in_array(strval($bpList[$i]['bp_id']), $joinBpIds)) { $bpList[$i]['bp_state'] = 1; } else { $bpList[$i]['bp_state'] = 0; } } $this->view->setVar('id', $id); $this->view->setVar('filterProvince', $filterProvince); $this->view->setVar('filterCity', $filterCity); $this->view->setVar('filterDistrict', $filterDistrict); $this->view->setVar('filterName', $filterName); $this->view->setVar('total', $total); $this->view->setVar('page', $page); $this->view->setVar('limit', $limit); $this->view->setVar('data', $bpList); }
/** * 问答举报列表 * @date: 2016年1月6日 * @author: chenxiaolin */ public function questionReportAction() { $this->setLeftNav('questionReport'); $req = $this->request; $page = intval($req->getQuery('page', null, 1)); $page = $page > 0 ? $page : 1; $limit = $this->pageNavLimit; $offset = $limit * ($page - 1); $city = SysAreaZipDistrictPhonecode::query()->columns(['P_NM', 'PHONE_CODE'])->groupBy('P_NM')->execute(); $filterCity = $req->getQuery('filterCity', null, -10000); $report_content = $req->getQuery('report_content'); $where = []; if ($filterCity > -10000) { $where[] = "Apps\\Common\\Models\\QuestionReport.city_code = {$filterCity}"; $this->view->setVar("filterCity", $filterCity); } if ($report_content != '') { $where[] = "report_content like '%" . $report_content . "%'"; $this->view->setVar("report_content", $report_content); } $whereStr = implode(' AND ', $where); $total = QuestionReport::count($whereStr); $data = QuestionReport::query()->columns(['distinct report_id', 'report_content', 'user.bind_phone', 'question_id', 'report_addtime', 'user.user_nickname', 'area.P_NM as city_name'])->leftJoin('Apps\\Common\\Models\\SysAreaZipDistrictPhonecode', 'area.PHONE_CODE=Apps\\Common\\Models\\QuestionReport.city_code', 'area')->leftJoin('Apps\\Common\\Models\\UserBase', 'user.user_id=Apps\\Common\\Models\\QuestionReport.user_id', 'user')->where($whereStr)->limit($limit, $offset)->orderBy('report_addtime DESC')->execute(); $this->view->setVar('data', $data); $this->view->setVar('total', $total); $this->view->setVar('page', $page); $this->view->setVar('limit', $limit); $this->view->setVar('city', $city); }
/** * 添加开通的城市 */ public function openCityAddAction() { $req = $this->request; if (!$req->isPost()) { return; } $response = new ResponseResult(); $response->callback = $req->getPost('callback', null, 'parent.setFormResult'); $response->callbackJavascriptTag = true; $province = $req->getPost('province', null, ''); $city = $req->getPost('city', null, ''); if (empty($province) || empty($city)) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '参数问题!'); return $response; } // 获取地区数据信息 if ($city != '1') { $info = SysAreaZipDistrictPhonecode::query()->where('C_NM = :nm:', ['nm' => $city])->execute()->getFirst(); } else { $info = SysAreaZipDistrictPhonecode::query()->where('P_NM = :nm:', ['nm' => $province])->execute()->getFirst(); } if (!$info) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '参数问题!'); return $response; } // 判断是否存在 if (SysOpenCity::count('city_code = ' . $info->PHONE_CODE) > 0) { $response->sendError(ResponseResultStatus::BUSINESS, '已经存在!'); return $response; } $cityInfo = new SysOpenCity(); $cityInfo->city_code = $info->PHONE_CODE; $cityInfo->city_name = $city != '1' ? $info->C_NM : $info->P_NM; $cityInfo->city_order = 0; $cityInfo->city_state = 0; if ($cityInfo->save() == false) { $this->databaseErrorLog($cityInfo); $response->sendError(ResponseResultStatus::DATABASE_ERROR, '保存数据异常!'); } else { $response->sendResult($cityInfo->city_id); } return $response; }