首页三块 · 展示内容与业务规则

跑马灯 | 今日最新 | 新潮热门 · 只写业务规则,不涉及视觉规格 · v11

一、跑马灯

1.1 展示内容规则(显示什么)

项规则
一屏展示一条:标题 + 金额 + 「去接单」+ 「×」;一条一条轮播
标题单行展示,超出部分截断(不换行、不在条内滚动)
金额【80¥】形式;整数元,≥1000 加千分位,≥10000 用「万」;为「看着给」时显示【看着给】
打赏标含打赏时显示「打赏 50 豆」(打赏即以吧豆支付)
进度提示显示本条剩余停留时间,让用户知道何时切换
不展示区县、距离、发布时间、发布者信息(信息进详情页看)
隐藏规则无数据时整条隐藏;只有 1 条时常显不轮播

1.2 取数与筛选规则(哪些订单能进来)

项规则
类型仅求助订单(技能、组队、活动、闲置、企业需求一律不进)
状态招募中 / 待接单;已接单、已取消、已下架不进
时间未过期(订单有效期 > 当前时间)
地域属于采用城市:手动选城 > 精确定位 > 城市级定位 > 省级(全省)> 默认上海
距离同城且 ≤ 20 公里(可配 5–50);省级模式不做距离过滤
发布者信用分 > 50、未被封禁、不在黑名单
资金赏金已托管成功(冻结失败的不展示)
内容审核通过、无敏感词、无违规标记
控屏同一发布者最多占 2 条

1.3 排序规则(两层,定稿)

顺序规则
① 距离档有定位时:≤1km / 1–3km / 3–5 / 5–10 / 10–20km,先近档后远档;无定位或省级模式跳过本层
② 金额分金额分 = min(综合金额, 500) ÷ 500,降序(综合金额 = 酬金(现金)+ 打赏豆数×0.1)
③ 兜底金额分相同 → orderId 升序(顺序稳定、可复现)
急单兜底距截止 ≤3 小时的订单,在同一距离档内提到最前,并显示「即将截止」标
无定位 / 省级跳过距离档,直接按 金额分 DESC 排

不使用时效分 / 新鲜分(原设想的 1−已过÷总时长 与 1−发布小时÷72)。四条例由:① 两者方向相反会互相抵消;② 权重过低救不了急单(同档内"剩 23 小时"仍排在"剩 0.5 小时"前面);③ 时效分依赖订单有效期字段;④ 新鲜度问题已由"每天一批 5 条"的批次制解决。

1.4 条数与停留规则

项规则
条数默认 5 条(本期固定 5 条);不足按实际;0 条整条隐藏
一轮时长控制在 25–30 秒(超出则用户不会等第二轮)
每条停留基础(按标题字数)+ 加成:≤10 字 4 秒 / 11–15 字 5 秒 / 16–20 字 6 秒 / 21–25 字 7 秒 / ≥26 字 8 秒
停留加成本轮第 1 条 +2 秒;含打赏 +1 秒;综合金额 ≥500 元 +1 秒;已曝光 2 轮 −1 秒;封顶 12 秒、下限 4 秒
轮播顺序按排序结果顺序循环;每轮顺序固定(不随机)
疲劳控制同一条订单 1 小时内最多曝光 3 轮,超出顺延下一条

1.5 业务逻辑(流程)

环节逻辑
① 触发时机首页加载完成 → 延迟 1.5 秒发起请求(避开首屏)
② 请求入参采用城市、定位精度(精确 / 城市级 / 省级 / 无)、经纬度(有则传)
③ 服务端处理按 1.2 筛选 → 按 1.3 排序 → 返回最多 5 条
④ 客户端加工按 1.4 计算每条停留时长
⑤ 播放状态机播放 → 暂停 → 继续 → 循环;当前条计时结束切下一条,全部播完回到第 1 条
⑥ 暂停与恢复长按 / 页面不可见 / 请求中 → 暂停并记录已用时长;恢复时从剩余时长继续
⑦ 顺序刷新每 15 分钟、下拉刷新、切换城市、回到前台时重新请求;首条变化则从新一轮开始,否则保持当前条继续
⑧ 实时补位收到「订单被接单」推送 → 移除该条、后续前移;若正在播放的正是被移除的,立即切到下一条
⑨ 防抖连续快速点「×」或反复切城 → 防抖 300ms,以最后一次为准
⑩ 时间基准一律以服务端时间为准(消除、刷新周期、跨天判断)

1.6 消除规则(点「×」之后发生什么)

环节逻辑
第 1 步弹二次确认:「今天不再显示任务单?」,操作:取消 / 不再显示
第 2 步确认后本地与服务端双写标记,标记维度 = 城市 + 日期
第 3 步整条跑马灯立即隐藏
第 4 步次日 0 点(服务端时间)标记失效,跑马灯恢复
第 5 步用户换城市后按新城市判断 → 新城市会重新展示
第 6 步换设备 / 清缓存后依然生效

1.7 异常规则

项规则
请求失败·有缓存继续播上一次的内容,不提示、不白屏
请求失败·无缓存显示骨架,3 秒后自动隐藏;不显示错误文案
无数据整条隐藏,不留白
只有 1 条常显不轮播,不显示进度
播放中该条被接单立即切到下一条,不出现空白帧
弱网 / 断连保留当前播放;恢复后按 1.5⑦ 重新请求

1.8 埋点

曝光(某条连续可见 ≥1 秒才算,附带条序号、城市模式、定位精度、是否付费位)|点击条目|点击「去接单」|点击「×」消除|手动暂停|轮播轮次。

二、今日最新(场景位状态 A)

2.1 展示内容规则

项规则
一屏展示3 个条目 + 底部「查看更多 ›」;条目顺序=服务端返回顺序(前端不二次排序)
每条展示标题(超出截断)+ 价格 / 金额 + 距离文案
距离文案有定位显示具体距离;无定位显示「同城」;省级显示「同省」(不编造公里数)
价格文案固定价显示金额;「看着给」显示【看着给】
状态提示显示当前是本状态还是另一状态,并提供可直接切换的入口
隐藏规则0 条则本状态不展示;池中不足 3 条按实际条数展示

2.2 取数与排序规则

项规则
时间范围今天 00:00–24:00 发布的内容(以服务端时间判断,跨天自动重置)
内容类型不限(技能、求助、活动等都算 —— 这是内容位,不是订单位)
排除审核中、已下架、已被接单(订单类)
排序有定位 → 距离升序;无定位 → 发布时间升序(今天最早发的在前);省级 → 全省范围 + 发布时间升序
取几条取排序后前 3 条

2.3 业务逻辑

环节逻辑
刷新时机进入首页、下拉刷新、切换城市、回到前台(且已跨天或超过刷新周期)
点击条目进入对应内容 / 服务详情页
点击查看更多进入列表页,携带来源参数(来源 = 今日最新)
与状态 B 的关系两态不显示同一条;重复时由状态 B 顺延
联动切换城市 / 定位变化时与跑马灯、新潮热门同时刷新

2.4 「查看更多」列表页规则

项规则
内容范围今天 0–24 点发布的全部内容
排序默认与卡片一致;顶部可切换排序方式
加载上滑分页,每页 20 条;到底提示「没有更多了」
空态「今天还没有新内容」+ 去发布 入口(不是空白页)
返回回到首页时卡片停留在进入时的那一状态(不重置)

三、新潮热门(场景位状态 B)

3.1 展示内容规则

项规则
一屏展示与状态 A 保持一致:3 个条目 + 「查看更多 ›」(保证两态高度一致,切换不跳动)
每条展示与状态 A 相同(标题 + 价格 + 距离文案)
新奇标仅新奇技能内容显示「新奇」标
不展示热度分、浏览 / 收藏 / 成交数据(仅服务端用于排序)

3.2 取数、热度与排序规则

项规则
时间范围近 7 天的内容
热度分浏览 ×0.4 + 收藏 ×0.3 + 成交 ×0.3;勾选「新奇技能」且审核通过的内容 ×1.3
排序热度分降序;同分时发布时间倒序(新的在前)
取几条取前 3 条
与状态 A 去重不与状态 A 显示同一条;重复则顺延取下一条
重算频率每 10 分钟重算;用户切到本状态时若距上次计算 >10 分钟,先刷新再展示
数据不足不足 6 条时:本状态常显 24 秒后回到状态 A,并把轮换间隔放宽到 15 秒

四、状态轮换规则(两态共用)

项规则
轮换方式今日最新 → 新潮热门 → 今日最新 交替;顺序固定,不随机
停留时长每状态 8 秒(可配 5–15)
首次进入默认显示今日最新;重新进入首页都重置为今日最新
手动切换立即切换,并暂停自动轮换 24 秒(之后恢复交替)
暂停条件页面不可见、卡片滚出可视区、请求数据中、从详情页返回 2 秒内、长按卡片
恢复从剩余时长继续,不重新计时
预加载切换前 1 秒预取下一状态内容;首屏两态一次性返回
单侧为空今日最新为空 → 只显示新潮热门且停止轮换;反之同理;两态都空 → 隐藏整个格子

五、三块联动规则

触发联动行为
切换城市 / 定位变化派发一次位置变更事件 → 跑马灯、今日最新、新潮热门同时刷新;刷新中显示骨架,完成后一次性替换;不展示旧城市内容
下拉刷新三块同时重新请求
回到前台三块各自检查时效:跑马灯 >15 分钟、今日最新跨天、新潮热门 >10 分钟 → 触发刷新
订单被接单只影响跑马灯(移除并补位);两态是内容位,不受影响
统一兜底任一块请求失败 → 保留上一次内容;首次失败 → 骨架;都不弹错误窗