generated from liutk/owl-admin-base
47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class RegionSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Seed the application's database.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
// Amis 省市区转换
|
|
// https://github.com/baidu/amis/blob/master/packages/amis-ui/src/components/CityDB.ts
|
|
|
|
// 省份
|
|
$province = [];
|
|
// 城市
|
|
$city = [];
|
|
// 地区
|
|
$district = [];
|
|
|
|
// 省市区数据
|
|
$region = file_get_contents(database_path('data/region.json'));
|
|
|
|
foreach (json_decode($region, true) as $code => $name) {
|
|
if ($code % 10000 === 0) {
|
|
$province[] = ['code' => $code, 'name' => $name];
|
|
} elseif ($code % 100 === 0) {
|
|
$provinceCode = $code - ($code % 10000);
|
|
$city[$provinceCode][] = ['code' => $code, 'name' => $name];
|
|
} else {
|
|
$provinceCode = $code - ($code % 10000);
|
|
$cityCode = $code - ($code % 100);
|
|
$district[$provinceCode][$cityCode][] = ['code' => $code, 'name' => $name];
|
|
}
|
|
}
|
|
|
|
$data = json_encode(compact('province', 'city', 'district'), JSON_UNESCAPED_UNICODE);
|
|
|
|
Storage::disk('public')->put('region.json', $data);
|
|
}
|
|
}
|