Commit 0345556b authored by liuyuzhen's avatar liuyuzhen

城市列表修改

parent 349a96c3
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -413,6 +413,22 @@ class AddressServiceModel extends \Business\AbstractModel {
return $result;
}
public function createPinyin(){
$areaDao =\DAO\AreaModel::getInstance();
$pageSize=1000;
$pageIndex=0;
for($i=$pageIndex;$i<4;$i++){
$pageIndex = $i*$pageSize;
$limit = array($pageIndex,$pageSize);
$areaList = $areaDao->getList($limit);
foreach($areaList as $area){
$updateData = array();
$updateData['pinyin'] = ucfirst(\Our\Pinyin::pinyin($area['area_name']));
$areaDao->update(array('area_id'=>$area['area_id']),$updateData);
}
}
}
/**
* 获取城市列表
* @return bool
......
......@@ -50,6 +50,22 @@ class AreaModel extends \DAO\AbstractModel {
return $result;
}
public function update($where, $data){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
return $this->db->update($this->_tableName)->where($where)->rows($data)->execute();
}
public function getList($limit){
$this->setDb($this->dbName);
$this->db->select(\Our\NameConst::allField)->from($this->_tableName);
if($limit){
$this->db->limit($limit[0],$limit[1]);
}
$areaList = $this->db->fetchAll();
return $areaList;
}
public function getCityListWithoutCounty(){
$addressRedis = AddressRedisModel::getInstance();
$cityList = $addressRedis->find('cityListWithoutCounty');
......@@ -60,17 +76,19 @@ class AreaModel extends \DAO\AbstractModel {
$addressRedis->update('allCityListWithoutCounty',$areaList);
$cityListInitial = array();
$cityInitialList = array();
$cityPinyinList = array();
foreach($areaList as $area){
if(isset($area['initial'])&&$area['initial']&&!($cityInitialList&&in_array($area['initial'],$cityInitialList))){
$cityInitialList[] = $area['initial'];
}
$cityListInitial[$area['initial']][] = $area['area_name'];
$cityListInitial[$area['initial']][] =$area['area_name'] ;
$cityPinyinList[$area['initial']][] = array('name'=>$area['area_name'],'pinyin'=>$area['pinyin']);
}
$list = array();
foreach($cityInitialList as $inital){
$initalCity['initial'] = $inital;
$initalCity['list'] = $cityListInitial[$inital];
$initalCity['pinyinList'] = $cityPinyinList[$inital];
$list[] = $initalCity;
}
$addressRedis->update('cityListWithoutCounty',$list);
......@@ -93,11 +111,13 @@ class AreaModel extends \DAO\AbstractModel {
}
$cityListInitial[$area['initial']][] = $area['area_name'];
$cityPinyinList[$area['initial']][] = array('name'=>$area['area_name'],'pinyin'=>$area['pinyin']);
}
$list = array();
foreach($cityInitialList as $inital){
$initalCity['initial'] = $inital;
$initalCity['list'] = $cityListInitial[$inital];
$initalCity['pinyinList'] = $cityPinyinList[$inital];
$list[] = $initalCity;
}
$addressRedis->update('cityList',$list);
......@@ -106,16 +126,13 @@ class AreaModel extends \DAO\AbstractModel {
public function getAllCityList($withoutCounty=false){
$this->setDb($this->dbName);
$sql = " SELECT t1.area_name, t2.f_py as initial FROM han_area t1 ";
$sql .= " left join han_coslers t2 ";
$sql .= " on CONV(HEX(LEFT(CONVERT(t1.area_name USING gbk ), 1)), 16, 10) BETWEEN t2.cbegin AND t2.cend
where t1.is_city=1 ";
$sql = " SELECT t1.area_name,t1.pinyin, LEFT(t1.pinyin,1) as initial FROM han_area t1 ";
$sql .= " where t1.is_city=1 ";
if($withoutCounty){
$sql .= " and t1.area_name not like '%县'";
}
$sql .= " ORDER BY t1.area_deep,convert(t1.area_name using gbk) ASC ";
$sql .= " ORDER BY t1.area_deep,t1.pinyin ASC ";
$area_list = $this->db->query($sql)->rows;
echo $this->db->getLastSql();
return $area_list;
}
......
<?php
/**
* User: liuyuzhen
* Date: 2018/9/26
* Time: 10:15
* Description:
*/
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
require APPLICATION_PATH . '/scripts/crontab/baseCli.php';
require APPLICATION_PATH . '/scripts/crontab/common.php';
error_reporting(E_ALL ^ E_NOTICE);
\Business\User\AddressServiceModel::getInstance()->createPinyin();
EXIT;
?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment