122 lines
2.7 KiB
PHP
122 lines
2.7 KiB
PHP
<?php
|
||
//城市
|
||
class cityClassModel extends Model
|
||
{
|
||
//获取城市路径
|
||
public $pathss;
|
||
public function getpath($id)
|
||
{
|
||
$this->pathss = array();
|
||
$this->getpaths($id);
|
||
return $this->pathss;
|
||
}
|
||
private function getpaths($id)
|
||
{
|
||
$rs = $this->getone($id);
|
||
if($rs && $rs['pid']!=$id){
|
||
$this->getpaths($rs['pid']);
|
||
$this->pathss[] = $rs;
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 导入数据
|
||
*/
|
||
public function daorudata()
|
||
{
|
||
$barr = c('xinhuapi')->getdata('base','city');
|
||
if(!$barr['success'])return returnerror($barr['msg']);
|
||
$data = $barr['data'];
|
||
$shul = 0;
|
||
foreach($data as $k=>$rs){
|
||
$id = $rs['id'];
|
||
if($this->rows($id)==0){
|
||
$shul++;
|
||
$this->insert($rs);
|
||
}
|
||
}
|
||
return returnsuccess('成功导入'.$shul.'条数据');
|
||
}
|
||
|
||
/**
|
||
* 籍贯/城市数据
|
||
*/
|
||
public function citydata()
|
||
{
|
||
$rows = $this->db->getall('SELECT a.name,b.name as name1 FROM `[Q]city` a left join `[Q]city` b on a.`pid`=b.`id` where a.`type` in(2)');
|
||
$barr = array();
|
||
foreach($rows as $k=>$rs){
|
||
$name = $rs['name'];
|
||
if($name!=$rs['name1'])$name=$rs['name1'].$name;
|
||
$barr[] = array(
|
||
'name' => $name,
|
||
'cityname' => $rs['name'],
|
||
'shengname' => $rs['name1'],
|
||
);
|
||
}
|
||
return $barr;
|
||
}
|
||
|
||
/**
|
||
* 省份数据
|
||
*/
|
||
public function shengdata()
|
||
{
|
||
$rows = $this->db->getall('SELECT `name` FROM `[Q]city` where `pid`=1 order by `sort`');
|
||
$barr = array();
|
||
foreach($rows as $k=>$rs){
|
||
$name = $rs['name'];
|
||
$barr[] = array(
|
||
'name' => $name
|
||
);
|
||
}
|
||
return $barr;
|
||
}
|
||
|
||
/**
|
||
* 全部城市数据,3级
|
||
*/
|
||
public function alldata()
|
||
{
|
||
$chche = c('cache');
|
||
$cdata = $chche->get('cityalldata');
|
||
if(!$cdata){
|
||
$this->drowsa = $this->getall('1=1','*','`sort`');
|
||
$this->datass = array();
|
||
$this->alldatas($this->drowsa, '1', 0,'');
|
||
|
||
$chche->set('cityalldata', $this->datass);
|
||
return $this->datass;
|
||
}else{
|
||
return $cdata;
|
||
}
|
||
}
|
||
private function alldatas($rows, $pid, $xu, $sub, $sheng='', $city='')
|
||
{
|
||
$keya = array('shengname','cityname','xianname');
|
||
$zxij = 0;
|
||
foreach($rows as $k=>$rs){
|
||
if($rs['pid']==$pid){
|
||
$zxij++;
|
||
$sar = array(
|
||
'name' => $sub.$rs['name'],
|
||
'value' => $rs['name'],
|
||
'padding'=> 30*$xu,
|
||
'shengname' => $sheng,
|
||
'cityname' => $city,
|
||
'xianname' => '',
|
||
);
|
||
$keysas = $keya[$xu];
|
||
$sar[$keysas] = $rs['name'];
|
||
$this->datass[] = $sar;
|
||
|
||
unset($this->drowsa[$k]);
|
||
if($xu==0)$sheng = $rs['name'];
|
||
if($xu==1)$city = $rs['name'];
|
||
$xiji = $this->alldatas($this->drowsa, $rs['id'], $xu+1, $sub.$rs['name'], $sheng, $city);
|
||
}
|
||
}
|
||
return $zxij;
|
||
}
|
||
} |