职责:国家标准省 / 市 / 区县主数据,供 addresses 省市区选择。
边界:不维护四级街道;不对接民政部接口。数据只用 CSV 导入。后台不提供单条新增/编辑/删除,可按省软删该省及下属。
阶段:P0。
后台「基础数据 → 省市区」。权限走 Filament Shield(ViewAny:Area 等)。客户可多条地址,供应商一条。
表:areas
| 字段 | 说明 |
|---|---|
| id | 行政区划代码;导入时右补零到至少 6 位(11 → 110000) |
| parent_id | 上级区域;省级为 0 |
| deep | 0 省 / 1 市 / 2 区 |
| name | 名称(导入取 CSV ext_name,如「北京市」) |
| initial | 拼音首字母 |
| pinyin | 拼音 |
| created_at / updated_at / deleted_at | 时间戳;软删除 |
parent_id 不加外键(省级为 0)。parent_id 有索引。
短码右补零若与已有 6 位 id 撞号,保留短码(东莞 4419 / 香港 81 等);列表仍按 6 位显示。
后台「导入 CSV」。文件格式为 AreaCity-JsSpider-StatsGov 的 ok_data_level3.csv:
id,pid,deep,name,pinyin_prefix,pinyin,ext_id,ext_name
| CSV 列 | 写入 |
|---|---|
| id | id(右补零,见上) |
| pid | parent_id |
| deep | deep |
| ext_name | name(空则回退 name 列) |
| pinyin_prefix | initial |
| pinyin | pinyin |
按 id upsert;再导会覆盖并恢复已软删行。弹窗注明数据来源网址。
表:addresses。morphs('addressable') 挂客户(morphMany)、供应商 / 仓库(morphOne)。
| 字段 | 说明 |
|---|---|
| id | 主键 |
| addressable_type / addressable_id | 多态属主 |
| type | 类型,可空(收货 / 办公等) |
| name / phone | 收货人 / 电话,可空 |
| province / province_code | 省名 / areas.id,可空 |
| city / city_code | 市名 / areas.id,可空 |
| district / district_code | 区名 / areas.id,可空 |
| address | 详细地址,可空 |
| latitude / longitude | 可空 |
| is_default | 默认地址;同一属主至多一条为 true |
| created_at / updated_at / deleted_at | 时间戳;软删除 |
保存时按 *_code 从 areas 回写名称。空地址不落库。后台「基础数据 → 客户 / 供应商」里维护。
ok_data_level3.csv;名称用 ext_name;id 至少 6 位右补零。| P0 | 延后 |
|---|---|
| 三级省市区 + CSV 导入 | 街道/四级;树形侧栏;民政部接口同步 |