| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | <?phpnamespace Area\Lib;use Dever;class Data {    public function getProvince()    {        return Dever::db('province', 'area')->select(array('status' => 1));    }    public function getCity($province_id)    {        if ($province_id) {            $where['province_id'] = $province_id;        }        $where['status'] = 1;        return Dever::db('city', 'area')->select($where);    }    public function getCounty($city_id)    {        if ($city_id) {            $where['city_id'] = $city_id;        }        $where['status'] = 1;        return Dever::db('county', 'area')->select($where);    }    public function getTown($county_id)    {        if ($county_id) {            $where['county_id'] = $county_id;        }        $where['status'] = 1;        return Dever::db('town', 'area')->select($where);    }    public function getVillage($town_id)    {        if ($town_id) {            $where['town_id'] = $town_id;        }        $where['status'] = 1;        return Dever::db('village', 'area')->select($where);    }    # 获取城市并根据首字母排序的    public function getCityToFirst()    {        $result = array();        $data = $this->getCity(false);        if (Dever::import('pinyin')) {            $result = Dever::sortPinyinFirst($data, 'pinyin_first');        }        return $result;    }    /**     * 获取详细信息     *     * @return mixed     */    public function getInfo($area, $col = 'id')    {        if ($area) {            $area = explode(',', $area);            $result = array();            foreach ($area as $k => $v) {                if ($k == 0) {                    $result[$k] = $this->getName('province', $v, true, $col);                } elseif ($k == 1) {                    $result[$k] = $this->getName('city', $v, true, $col);                    if ($col == 'id' && isset($result[1]['name']) && $result[0]['name'] == $result[1]['name']) {                        unset($result[1]);                    }                } elseif ($k == 2) {                    $result[$k] = $this->getName('county', $v, true, $col);                } elseif ($k == 3) {                    $result[$k] = $this->getName('town', $v, true, $col);                } elseif ($k == 4) {                    $result[$k] = $this->getName('village', $v, true, $col);                }            }            return $result;        }        return array();    }    /**     * 根据地区id转成名称     *     * @return mixed     */    public function string($area, $im = ',', $name = '不限', $unset = true, $check = false)    {        if ($area) {            if (is_string($area)) {                $area = explode(',', $area);            }                        $result = array();            foreach ($area as $k => $v) {                if ($k == 0) {                    $result[$k] = $this->getName('province', $v, false, 'id', $name);                } elseif ($k == 1) {                    $result[$k] = $this->getName('city', $v, false, 'id', $name);                    if (isset($result[0]) && $result[0] == $result[1] && $unset) {                        unset($result[1]);                    }                } elseif ($k == 2) {                    $parent = $area[0] . ',' . $area[1];                    $result[$k] = $this->getName('county', $v, false, 'id', $name, $check, $parent);                } elseif ($k == 3) {                    $parent = $area[0] . ',' . $area[1] . ',' . $area[2];                    $result[$k] = $this->getName('town', $v, false, 'id', $name, $check, $parent);                } elseif ($k == 4) {                    $result[$k] = $this->getName('village', $v, false, 'id', $name);                } else {                    $result[$k] = '';                }                if (isset($result[$k]) && !$result[$k]) {                    unset($result[$k]);                }            }            return implode($im, $result);        }        return '';    }    private function getName($table, $value, $state = false, $col = 'id', $name = '不限', $check = false, $area = array())    {        if (($col == 'id' && $value > 0) || ($col != 'id' && $value)) {            $where[$col] = $value;            $data = Dever::db($table, 'area')->find($where);            if ($state) {                return $data;            }            if ($data) {                $name = $data['name'];                if ($check && $area && $data['area'] != $area) {                    $name = '<font style="color:red">'.$name.'(错误)</font>';                }            }        }        return $name;    }    public function pinyin($data)    {        if (Dever::project('pinyin') && $data['name']) {            $data['pinyin'] = Dever::load('convert', 'pinyin')->getPinyin($data['name']);            $data['pinyin_first'] = Dever::load('convert', 'pinyin')->getPinyinFirst($data['name']);        }        return $data;    }}
 |