更新地区查询接口

This commit is contained in:
yaooo 2023-08-24 13:10:32 +08:00
parent 7e97caab01
commit f09721418c

View File

@ -59,74 +59,83 @@ class City extends BaseController
$pinyin = $this->request->param('pinyin') ?? 0; $pinyin = $this->request->param('pinyin') ?? 0;
$list = app()->make(CityAreaRepository::class)->getGeoChildren(['province_code' => $provinceCode, 'city_code' => $cityCode, 'area_code' => $areaCode, 'street_code' => $streetCode]); $list = app()->make(CityAreaRepository::class)->getGeoChildren(['province_code' => $provinceCode, 'city_code' => $cityCode, 'area_code' => $areaCode, 'street_code' => $streetCode]);
$geoList = []; $geoList = [];
$pyList = [];
foreach ($list as $v) { foreach ($list as $v) {
$temp = [];
if (!empty($v['village_id'])) { if (!empty($v['village_id'])) {
$temp = [
'type' => 'village',
'id' => $v['village_id'],
'level' => 5,
'name' => $v['village_name'] ?? '',
'code' => $v['village_code'] ?? ''
];
if ($pinyin == 1) { if ($pinyin == 1) {
$temp = [ $py = strtoupper((new Pinyin)->abbr($v['village_name'])[0] ?? '-');
'pinyin' => strtoupper((new Pinyin)->abbr($v['village_name'])[0] ?? '-'), $pyList[$py][] = [
'data' => [ 'type' => 'village',
'id' => $v['village_id'],
'level' => 5,
'name' => $v['village_name'] ?? '',
'code' => $v['village_code'] ?? ''
];
} else {
$temp = [
'type' => 'village', 'type' => 'village',
'id' => $v['village_id'], 'id' => $v['village_id'],
'level' => 5, 'level' => 5,
'name' => $v['village_name'] ?? '', 'name' => $v['village_name'] ?? '',
'code' => $v['village_code'] ?? '' 'code' => $v['village_code'] ?? ''
]
]; ];
}
$geoList[] = $temp; $geoList[] = $temp;
} }
}
if (!empty($v['street_id'])) { if (!empty($v['street_id'])) {
$temp = [
'type' => 'street',
'id' => $v['street_id'],
'level' => 4,
'name' => $v['street_name'] ?? '',
'code' => $v['street_code'] ?? ''
];
if ($pinyin == 1) { if ($pinyin == 1) {
$temp = [ $py = strtoupper((new Pinyin)->abbr($v['street_name'])[0] ?? '-');
'pinyin' => strtoupper((new Pinyin)->abbr($v['street_name'])[0] ?? '-'), $pyList[$py][] = [
'data' => [ 'type' => 'street',
'id' => $v['street_id'],
'level' => 4,
'name' => $v['street_name'] ?? '',
'code' => $v['street_code'] ?? ''
];
} else {
$temp = [
'type' => 'street', 'type' => 'street',
'id' => $v['street_id'], 'id' => $v['street_id'],
'level' => 4, 'level' => 4,
'name' => $v['street_name'] ?? '', 'name' => $v['street_name'] ?? '',
'code' => $v['street_code'] ?? '' 'code' => $v['street_code'] ?? ''
]
]; ];
}
$geoList[] = $temp; $geoList[] = $temp;
} }
}
if (!empty($v['area_id'])) { if (!empty($v['area_id'])) {
$temp = [
'type' => 'area',
'id' => $v['area_id'],
'level' => 3,
'name' => $v['area_name'] ?? '',
'code' => $v['area_code'] ?? ''
];
if ($pinyin == 1) { if ($pinyin == 1) {
$temp = [ $py = strtoupper((new Pinyin)->abbr($v['area_name'])[0] ?? '-');
'pinyin' => strtoupper((new Pinyin)->abbr($v['area_name'])[0] ?? '-'), $pyList[$py][] = [
'data' => [ 'type' => 'area',
'id' => $v['area_id'],
'level' => 3,
'name' => $v['area_name'] ?? '',
'code' => $v['area_code'] ?? ''
];
} else {
$temp = [
'type' => 'area', 'type' => 'area',
'id' => $v['area_id'], 'id' => $v['area_id'],
'level' => 3, 'level' => 3,
'name' => $v['area_name'] ?? '', 'name' => $v['area_name'] ?? '',
'code' => $v['area_code'] ?? '' 'code' => $v['area_code'] ?? ''
]
]; ];
}
$geoList[] = $temp; $geoList[] = $temp;
} }
}
if (!empty($v['city_id'])) { if (!empty($v['city_id'])) {
if ($pinyin == 1) {
$py = strtoupper((new Pinyin)->abbr($v['city_name'])[0] ?? '-');
$pyList[$py][] = [
'type' => 'city',
'id' => $v['city_id'],
'level' => 2,
'name' => $v['city_name'] ?? '',
'code' => $v['city_code'] ?? ''
];
} else {
$temp = [ $temp = [
'type' => 'city', 'type' => 'city',
'id' => $v['city_id'], 'id' => $v['city_id'],
@ -134,40 +143,37 @@ class City extends BaseController
'name' => $v['city_name'] ?? '', 'name' => $v['city_name'] ?? '',
'code' => $v['city_code'] ?? '', 'code' => $v['city_code'] ?? '',
]; ];
if ($pinyin == 1) {
$temp = [
'pinyin' => strtoupper((new Pinyin)->abbr($v['city_name'])[0] ?? '-'),
'data' => [
'type' => 'city',
'id' => $v['city_id'],
'level' => 2,
'name' => $v['city_name'] ?? '',
'code' => $v['city_code'] ?? ''
]
];
}
$geoList[] = $temp; $geoList[] = $temp;
} }
if (!empty($v['province_id'])) {
$temp = [
'type' => 'province',
'id' => $v['province_id'],
'level' => 1,
'name' => $v['province_name'] ?? '',
'code' => $v['province_code'] ?? ''
];
if ($pinyin == 1) {
$temp = [
'pinyin' => strtoupper((new Pinyin)->abbr($v['province_name'])[0] ?? '-'),
'data' => [
'type' => 'province',
'id' => $v['province_id'],
'level' => 1,
'name' => $v['province_name'] ?? '',
'code' => $v['province_code'] ?? ''
]
];
} }
if (!empty($v['province_id'])) {
if ($pinyin == 1) {
$py = strtoupper((new Pinyin)->abbr($v['province_name'])[0] ?? '-');
$pyList[$py][] = [
'type' => 'province',
'id' => $v['province_id'],
'level' => 1,
'name' => $v['province_name'] ?? '',
'code' => $v['province_code'] ?? ''
];
} else {
$temp = [
'type' => 'province',
'id' => $v['province_id'],
'level' => 1,
'name' => $v['province_name'] ?? '',
'code' => $v['province_code'] ?? ''
];
$geoList[] = $temp;
}
}
}
if ($pinyin == 1) {
$geoList = [];
foreach($pyList as $k=>$v) {
$temp = [];
$temp['pinyin'] = $k;
$temp['data'] = $pyList[$k];
$geoList[] = $temp; $geoList[] = $temp;
} }
} }