75 lines
2.1 KiB
PHP
75 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace app\controller\api;
|
|
|
|
use app\repository\DictionaryRepository;
|
|
use think\facade\Db;
|
|
use app\model\Area as AreaModel;
|
|
/**
|
|
* Area
|
|
*
|
|
* Class Business
|
|
* @package app\controller\api
|
|
*/
|
|
class Area extends Base
|
|
{
|
|
protected $noNeedLogin = [
|
|
'index',"getProvinceDictionaryCity"
|
|
];
|
|
|
|
/**
|
|
* 根据上级行政代码 获取下级
|
|
* */
|
|
public function index()
|
|
{
|
|
$pcode = input("areaId/d",86);
|
|
$filter = input("filter",false);
|
|
return json(AreaModel::getByPCode($pcode,$filter));
|
|
}
|
|
|
|
/**
|
|
* 获取
|
|
* */
|
|
public function getProvinceDictionaryCity()
|
|
{
|
|
$province = AreaModel::getByPCode(86,true);
|
|
$provinceCode = array_column($province->toArray(),null,"code");
|
|
$provinceCodeArray = array_keys($provinceCode);
|
|
|
|
$city = AreaModel::getByPCodes($provinceCodeArray,true);
|
|
$city = array_column($city,null,"code");
|
|
|
|
|
|
$items = DictionaryRepository::getInstance()->getAllBusinessCircleList();
|
|
$items->each(function ($item)use($city) {
|
|
$areaText = '';
|
|
if (!empty($item['province_text'])) {
|
|
$areaText = $item['province_text'].'·';
|
|
}
|
|
if (!empty($item['city_text']) && $item['city_text'] != '市辖区') {
|
|
$areaText .= $item['city_text'].'·';
|
|
}
|
|
if (!empty($item['county_text'])) {
|
|
$areaText .= $item['county_text'];
|
|
}
|
|
|
|
$item['name_text'] = $item['name'];
|
|
if (!empty($areaText)) {
|
|
$item['name_text'] = $item['name'] . '「'.$areaText.'」';
|
|
}
|
|
return $item;
|
|
});
|
|
foreach ($items->toArray() as $item){
|
|
if(isset($city[$item["city"]])){
|
|
$city[$item["city"]]["children"][]=$item;
|
|
}
|
|
}
|
|
|
|
foreach ($city as $item){
|
|
if (isset($provinceCode[$item["pcode"]])){
|
|
$provinceCode[$item["pcode"]]["children"][] =$item;
|
|
}
|
|
}
|
|
return $this->json(0,"success",array_values($provinceCode));
|
|
}
|
|
} |