分站展示说明

县级分站展示全流程与优化方案

文档性质:操作流程及逻辑 + 网站更新方案
版本: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 类似)

  1. 若主机名 = 某城 pinyindomain=1 → 写 cookie('city_id')
  2. 读 cookie;主域且空 → UTFWry IP,用「地区串包含城市名」匹配
  3. 仍空 → site.city_id 默认县
  4. 若该城 domain=1 → 302 到二级域(注意 HTTP/HTTPS)
  5. assign$city_id / $city;广告等 city_id IN (0, 当前)

ba 目标态(S2,参考已有帮助 wap-location-flow):

  1. LocationService::resolveCity:手动 → Host → IP → GPS 结果 → 默认
  2. 分站状态:is_substation、静态 URL / 动态 URL
  3. 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=1https://{pinyin}.{hostdo}/…
列表点某县 domain=0City/change?city_id= 写 cookie 后回首页/来源页(禁止裸链 /{pinyin} 无路由)
WAP 选城写 cookie + 回跳;可选 GPS 推荐县
搜索县名过滤 is_open=1(S2 再加 is_substation=1city_level=3

4. 现状差距清单(阻碍「各县级分站」)

#问题影响一期建议
1开站县仅 2 个无法「展示各县」批量导入/录入待开县
2换城链 /{pinyin} 不可靠点了进不去改为 change/city/{pinyin}/
3无省-市分组县多后难找一期加搜索;二期省市区联动
4IP 匹配过粗易落错县/默认县可关自动跳;二期区划码
5CityAction 写库字段与表不一致部分属性存不上对齐字段或改表
6Being 不能传县 LOGO城主难自运营可选开放 photo
7静态 /city/ nginx 半接线易 404一期关掉或实现 CityStatic
8未移植 LocationService无现代 GPS 落县二期

5. 优化实施路线(分阶段)

阶段 P0 — 能进、能看(1~2 周量级)

  1. 修复换城:统一 U('home/city/change') / WAP 等价接口。
  2. 修复顶栏 LOGO:city.photosite.logo,去掉错误外层判断;商城/登录同源 helper。
  3. 上传体验:按钮文案、存 path、预览失败提示(见 LOGO 文档)。
  4. 明确默认县:site.city_id = 主推县;本地测试确认 cookie。
  5. 验收脚本:每开一县,检查换城后 city_id、LOGO、一条列表数据。

阶段 P1 — 能运营多个县(展示「各」县)

  1. 批量维护:县名、拼音、首字母、坐标、是否开放、LOGO。
  2. 换城页:搜索 + 首字母;县数量 >50 时按省手工标签或简单 province_id 填充(可不建省表先用配置数组)。
  3. 内容运营规范:商家入驻必选县;广告区分全县通投与单县。
  4. 城主权限:Being 可编辑本县基础信息与 LOGO。
  5. DNS:仅对 domain=1 的县配置二级域,其余一律 cookie,降低运维成本。

阶段 P2 — 层级与定位(对齐 ba 精华)

  1. 表结构:by_provinceby_city 增加 city_levelsj_idis_substation、区划码。
  2. 数据:从 ba 或权威行政区导入;强制清洗 sj_id(县→地级市)
  3. 后台:分站创建必须写 city_level+父城;禁止写错字段名 level
  4. 移植裁剪版 LocationService + 定位设置页;WAP GPS 优先 L3。
  5. 换城 UI:省 → 市 → 县;列表 API 按层级过滤。

阶段 P3 — 性能与 SEO(可选)

  1. 落地 CityStatic + 静态目录;nginx 与动态回退一致。
  2. by_city_seo、分享标题按县。
  3. 缓存城市树;开站开关秒级生效。

6. 数据迁移注意(本站 → 层级)

若一期已有「定远县、全椒县」扁平站,升 S2 时:

  1. 插入/对齐「滁州市」等 L2 行。
  2. 两县设 city_level=3sj_id=滁州 city_idis_substation=1
  3. 不要改 city_id(业务外键全挂在上面)。
  4. area/business 仍挂原 city_id,语义不变。
  5. 全量回归:换城、广告、商家、城主后台。

7. 验收清单(「县级分站全部流程」)

配置

  • [ ] 新建县 → 前台换城列表可见
  • [ ] 关 is_open → 列表不可见(或不可进)
  • [ ] 县 LOGO / 无 LOGO 时网站 LOGO 均正常

进入

  • [ ] cookie 模式:选县后刷新仍在该县
  • [ ] 二级域模式:DNS+证书齐全时可进
  • [ ] 错误旧链 /{pinyin} 已不存在或已 301 到正确入口

展示

  • [ ] 顶栏县名正确
  • [ ] 列表数据 city_id 隔离正确;通投广告仍可见
  • [ ] 片区/商圈筛选仅含本县

定位(P2+)

  • [ ] 手动选县优先于自动
  • [ ] GPS 在县域内落到 L3
  • [ ] 失败回退默认县且有提示

8. 与帮助中心其它文档的关系

文档侧重点
本文如何把本站做成「各县级分站可展示」的全流程与分期
城市数据表对比表结构、字段、ba 差异与数据质量
LOGO 与定位分析顶栏品牌、上传预览、旧定位缺陷
ba:wap-location-flowba 已实现的 LocationService / WAP 弹层细节(二期对照实现)

9. 一句话决策建议

先用扁平县级站(S1)把「开县 → 换城 → 展示」跑通并修好换城与 LOGO;再引入省市区与 LocationService(S2)做全国级与 GPS 落县。不要在换城入口未修通时先上静态站与全量 1400 县。
copyright 2013-2113 www.banyanfw.com All Rights Reserved 7766智慧生活版权所有
皖ICP备2021016109号-1