addDays(5), function () use ($code) { $province = self::query()->where('code', substr($code, 0, 2) . '0000')->select(['code', 'name'])->first(); if ($province) $province = $province->toArray(); $city = self::query()->where('code', substr($code, 0, 4) . '00')->select(['code', 'name'])->first(); if ($city) $city = $city->toArray(); $area = self::query()->where('code', $code)->select(['code', 'name'])->first(); if ($area) $area = $area->toArray(); return [ 'province' => $province, 'city' => $city, 'area' => $area, ]; }); } /** * 根据位置获取name * @param $code * @return mixed */ public static function byCodeGetName($code) { return Cache::remember("model:Area:byCodeGetName:{$code}", Carbon::now()->addDays(5), function () use ($code) { return self::query()->where('code', $code)->value('name') ?? '未知'; }); } /** * * @param $code * @return mixed */ public static function byCodeGetPureName($code) { return Cache::remember("model:Area:byCodeGetPureName:{$code}", Carbon::now()->addDays(5), function () use ($code) { $name = self::query()->where('code', $code)->value('name'); if (!$name) return '未知'; return str_replace([ '省', '市', '区', '城', '城区' ], '', $name); }); } public static function settings($is_version = true) { $settings = js2php(file_get_contents(base_path('public/ant/area.json'))); if ($is_version) return $settings; return $settings['data']; } }