分站展示说明
县级分站展示全流程与优化方案
文档性质:操作流程及逻辑 + 网站更新方案
版本:2026-07-24
状态:方案稿(先流程与逻辑,实施按阶段验收)
范围:本站baoan如何稳定「展示各县级分站」;对照ba能力取长补短
关联:本站与ba各级城市数据表全面对比、网站LOGO与分站定位分析优化方案、帮助已有定位与分站逻辑流程(ba 实现版)
1. 目标定义
业务目标:
用户在 PC / WAP 能按省或列表找到并进入每一个已开通的县级分站,看到该县的:
- 顶栏城市名与分站 LOGO(
city.photo,无则网站 LOGO) - 按该县
city_id过滤的商家、信息、广告等内容 - 可再下钻本县 片区(area)/ 商圈(business)(可选)
非目标(本方案不强制一期完成):
- 全国 1400+ 县静态页一次性生成(可二期)
- 与高德/百度实时行政区完全同步(可后置)
2. 两套可行架构(先选型)
方案 S1:扁平县级站(贴合本站现状,推荐一期)
by_city 一行 = 一个县分站(定远县、全椒县、明光市…)
├─ is_open=1 可切换
├─ domain=0 主域+cookie 或 domain=1 县二级域
├─ photo = 县站 LOGO
└─ by_area / by_business = 县内片区与商圈
- 优点: 改动小、与现网一致、上线快。
- 缺点: 换城列表变长后需搜索/按省分组;GPS「落在地级市」时难自动落到县(除非补库或二次选择)。
方案 S2:省-市-县层级(对齐 ba,推荐二期)
by_province → by_city(L2 地级) → by_city(L3 县, sj_id→L2, is_substation=1)
用户:选省 → 选市 → 选县分站 → 进入
定位:GPS/逆地理优先匹配 L3,再回退 L2 / 默认县
- 优点: 可扩展全国、定位更准、运营清晰。
- 缺点: 要改表、洗
sj_id、改后台与换城 UI、移植 LocationService。
建议路径:一期 S1 跑通「全县可展示」→ 二期平滑升到 S2。
3. 县级分站「全流程」逻辑(运营 + 系统)
3.1 总览图
flowchart TB
subgraph Ops["运营配置"]
O1[总后台新增/编辑县 city] --> O2[开通 is_open]
O2 --> O3[上传 city.photo / 设 pinyin]
O3 --> O4[可选 domain 二级域与 DNS]
O4 --> O5[配置 area/business 与内容 city_id]
O5 --> O6[绑定城主 Being 账号]
end
subgraph Enter["用户进入"]
E1[打开主站] --> E2{有 cookie city_id?}
E2 -->|否| E3[IP 粗匹配 / 默认 site.city_id]
E2 -->|是| E4[使用 cookie 县]
E3 --> E5[换城页 / 定位弹层选县]
E4 --> E6[业务按 city_id 取数]
E5 --> E6
E6 --> E7[渲染县名 + LOGO + 列表]
end
Ops --> Enter
3.2 运营侧:开通一个县级分站的标准步骤
| 步骤 | 操作位置 | 要点 |
|---|---|---|
| 1 | 设置 → 区域设置 → 城市站点 | 新建:name=××县,pinyin 唯一小写 |
| 2 | 同上 | is_open=1;坐标 lng/lat(周边/地图用) |
| 3 | 城市 LOGO | 上传 photo(model=sitelogo);无图则前台用网站 LOGO |
| 4 | 域名策略 | domain=0:仅 cookie;domain=1:需 pinyin.hostdo DNS + HTTPS |
| 5 | 片区商圈 | area / business 挂本 city_id |
| 6 | 内容 | 商家、分类信息、广告等 city_id 指向本县;广告可用 0 通投 |
| 7 | 城主 | Being 管理员 city_id 绑本县(一期城主未必能改 LOGO,见 LOGO 方案) |
| 8 | 验收 | 换城进入后顶栏县名/LOGO、列表数据均为本县 |
3.3 系统侧:一次请求如何落到「某县」
本站当前(S1): Home/CommonAction(WAP 类似)
- 若主机名 = 某城
pinyin且domain=1→ 写cookie('city_id') - 读 cookie;主域且空 → UTFWry IP,用「地区串包含城市名」匹配
- 仍空 →
site.city_id默认县 - 若该城
domain=1→ 302 到二级域(注意 HTTP/HTTPS) assign:$city_id/$city;广告等city_id IN (0, 当前)
ba 目标态(S2,参考已有帮助 wap-location-flow):
LocationService::resolveCity:手动 → Host → IP → GPS 结果 → 默认- 分站状态:
is_substation、静态 URL / 动态 URL - WAP 弹层:
locationService.js+wapLocationCore.js
本站一期不必一次搬全;换城链路修通即可支撑「展示各县」。
3.4 前台展示链(与 LOGO 的关系)
确定 city_id(当前县)
→ 顶栏城市名 = city.name
→ 顶栏图 = city.photo ? config_img(photo) : config_img(site.logo)
→ 列表/频道 WHERE city_id = 当前(或含 0)
→ 可选:area_id / business_id 二次筛选
模板缺陷(须在优化中修):部分顶栏要求「先有 site.logo 才渲染」,导致只有县 LOGO、网站 LOGO 为空时整块不显示。详见 LOGO 更新文档。
3.5 换城入口应有的正确行为
| 场景 | 正确行为 |
|---|---|
列表点某县 domain=1 | 进 https://{pinyin}.{hostdo}/… |
列表点某县 domain=0 | 调 City/change?city_id= 写 cookie 后回首页/来源页(禁止裸链 /{pinyin} 无路由) |
| WAP 选城 | 写 cookie + 回跳;可选 GPS 推荐县 |
| 搜索县名 | 过滤 is_open=1(S2 再加 is_substation=1 且 city_level=3) |
4. 现状差距清单(阻碍「各县级分站」)
| # | 问题 | 影响 | 一期建议 |
|---|---|---|---|
| 1 | 开站县仅 2 个 | 无法「展示各县」 | 批量导入/录入待开县 |
| 2 | 换城链 /{pinyin} 不可靠 | 点了进不去 | 改为 change 或 /city/{pinyin}/ |
| 3 | 无省-市分组 | 县多后难找 | 一期加搜索;二期省市区联动 |
| 4 | IP 匹配过粗 | 易落错县/默认县 | 可关自动跳;二期区划码 |
| 5 | CityAction 写库字段与表不一致 | 部分属性存不上 | 对齐字段或改表 |
| 6 | Being 不能传县 LOGO | 城主难自运营 | 可选开放 photo |
| 7 | 静态 /city/ nginx 半接线 | 易 404 | 一期关掉或实现 CityStatic |
| 8 | 未移植 LocationService | 无现代 GPS 落县 | 二期 |
5. 优化实施路线(分阶段)
阶段 P0 — 能进、能看(1~2 周量级)
- 修复换城:统一
U('home/city/change')/ WAP 等价接口。 - 修复顶栏 LOGO:
city.photo→site.logo,去掉错误外层判断;商城/登录同源 helper。 - 上传体验:按钮文案、存
path、预览失败提示(见 LOGO 文档)。 - 明确默认县:
site.city_id= 主推县;本地测试确认 cookie。 - 验收脚本:每开一县,检查换城后
city_id、LOGO、一条列表数据。
阶段 P1 — 能运营多个县(展示「各」县)
- 批量维护:县名、拼音、首字母、坐标、是否开放、LOGO。
- 换城页:搜索 + 首字母;县数量 >50 时按省手工标签或简单
province_id填充(可不建省表先用配置数组)。 - 内容运营规范:商家入驻必选县;广告区分全县通投与单县。
- 城主权限:Being 可编辑本县基础信息与 LOGO。
- DNS:仅对
domain=1的县配置二级域,其余一律 cookie,降低运维成本。
阶段 P2 — 层级与定位(对齐 ba 精华)
- 表结构:
by_province;by_city增加city_level、sj_id、is_substation、区划码。 - 数据:从 ba 或权威行政区导入;强制清洗 sj_id(县→地级市)。
- 后台:分站创建必须写
city_level+父城;禁止写错字段名level。 - 移植裁剪版
LocationService+ 定位设置页;WAP GPS 优先 L3。 - 换城 UI:省 → 市 → 县;列表 API 按层级过滤。
阶段 P3 — 性能与 SEO(可选)
- 落地
CityStatic+ 静态目录;nginx 与动态回退一致。 by_city_seo、分享标题按县。- 缓存城市树;开站开关秒级生效。
6. 数据迁移注意(本站 → 层级)
若一期已有「定远县、全椒县」扁平站,升 S2 时:
- 插入/对齐「滁州市」等 L2 行。
- 两县设
city_level=3,sj_id=滁州 city_id,is_substation=1。 - 不要改
city_id(业务外键全挂在上面)。 area/business仍挂原city_id,语义不变。- 全量回归:换城、广告、商家、城主后台。
7. 验收清单(「县级分站全部流程」)
配置
- [ ] 新建县 → 前台换城列表可见
- [ ] 关
is_open→ 列表不可见(或不可进) - [ ] 县 LOGO / 无 LOGO 时网站 LOGO 均正常
进入
- [ ] cookie 模式:选县后刷新仍在该县
- [ ] 二级域模式:DNS+证书齐全时可进
- [ ] 错误旧链
/{pinyin}已不存在或已 301 到正确入口
展示
- [ ] 顶栏县名正确
- [ ] 列表数据
city_id隔离正确;通投广告仍可见 - [ ] 片区/商圈筛选仅含本县
定位(P2+)
- [ ] 手动选县优先于自动
- [ ] GPS 在县域内落到 L3
- [ ] 失败回退默认县且有提示
8. 与帮助中心其它文档的关系
| 文档 | 侧重点 |
|---|---|
| 本文 | 如何把本站做成「各县级分站可展示」的全流程与分期 |
| 城市数据表对比 | 表结构、字段、ba 差异与数据质量 |
| LOGO 与定位分析 | 顶栏品牌、上传预览、旧定位缺陷 |
ba:wap-location-flow | ba 已实现的 LocationService / WAP 弹层细节(二期对照实现) |
9. 一句话决策建议
先用扁平县级站(S1)把「开县 → 换城 → 展示」跑通并修好换城与 LOGO;再引入省市区与 LocationService(S2)做全国级与 GPS 落县。不要在换城入口未修通时先上静态站与全量 1400 县。
