Files
photo-live/docs/diagrams/02-业务流程.md
T
浅念 d973c714f0 chore: init repository skeleton
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-17 16:13:49 +08:00

4.7 KiB

图片直播业务流程导图

版本:V1.3 · 日期:2026-09-17
依据:需求说明书 · 技术实施方案
相关:项目全景 · 实施计划

1 从创建活动到观众互动

flowchart TB
  A["接口同步资料并激活账号"] --> B["工作人员登录<br/>账号密码"]
  B --> C["创建配置相册<br/>宣传图 时间 地点 多语言 分类"]
  C --> D["邀请同事加入相册"]
  D --> E["拍摄或选图<br/>准备本地文件并入队"]
  E --> F["OSS 临时授权直传<br/>后台锁屏与失败恢复"]
  F --> G["服务端核验并固定原图<br/>生成浏览图和可选水印"]
  G --> H{"处理成功且<br/>允许对外展示?"}
  H -->|否| HOLD["保留待处理或非公开状态<br/>失败重试或等待开放"]
  HOLD -->|恢复后重新检查| H
  H -->|是| SYNC["国内事件推送与定时补漏<br/>海外核验资源与版本"]
  SYNC --> I["海外可见<br/>无需人工审核"]

  C --> LINK["生成观众链接和二维码"]
  LINK --> V["观众免登录打开活动页"]
  I --> V
  COUNT --> STATS["统计快照回传国内<br/>版本替换不重复相加"]
  LIKE --> STATS
  V --> COUNT["上报有效浏览<br/>海外去重累计并展示"]
  V --> LIST["瀑布流 分类 最新或热门"]
  LIST --> FULL["点击全屏看图<br/>缩放 左右滑动"]
  FULL --> LIKE["连续点赞<br/>海外批次幂等累计"]
  LIKE --> BUBBLE["同相册在线观众气泡<br/>自身去重 密集动画合并"]
  FULL --> SHARE["分享定位当前照片"]
  FULL --> DL["按下载权限获取图片"]
  SHARE --> V

  C --> SLOT["绑定官网展示位"]
  SLOT --> JS["官网接入一次 JS"]
  I --> ROTATE["轮询近期公开照片<br/>右侧悬浮轮播"]
  JS --> ROTATE
  ROTATE -->|点击照片| V

浏览统计只由观众页实际访问触发;自动轮播、图片请求、分页和点赞不额外累计。30 分钟去重窗口为待确认参数。

2 上传与异常恢复

flowchart TB
  CAP["拍摄成功或选择照片"] --> PREP["准备中<br/>获取源文件 检查空间 本地复制"]
  PREP -->|失败| PF["准备失败<br/>保留原因和恢复入口"]
  PF -->|重新获取或释放空间| PREP
  PREP -->|成功| QUEUE["持久化队列<br/>固定账号 相册 分类 任务 ID"]
  QUEUE --> AUTH{"账号权限与<br/>上传开关有效?"}
  AUTH -->|否| WAIT["等待恢复权限或开放上传<br/>也可明确取消任务"]
  WAIT -->|条件恢复| AUTH
  AUTH -->|是| UP["原生系统传输至 OSS 暂存区"]
  UP -->|断网或授权过期| RETRY["保存任务<br/>等待网络或续签后重试"]
  RETRY --> AUTH
  UP -->|系统中止或强制退出| REOPEN["保留可恢复记录<br/>系统允许或下次启动后校准"]
  REOPEN --> AUTH
  UP -->|文件传输完成| CONFIRM["服务端核验与幂等确认<br/>固定不可覆盖的正式原图"]
  CONFIRM -->|失败| CF["确认失败或待补偿<br/>核验已有对象 不盲目重传"]
  CF --> CONFIRM
  CONFIRM --> JOB["处理图片与生成浏览资源"]
  JOB -->|失败| JF["记录处理失败<br/>有限重试或人工重试"]
  JF --> JOB
  JOB -->|完成| READY["处理就绪"]
  READY --> CHECK{"相册公开且<br/>照片未隐藏删除?"}
  CHECK -->|是| SYNC["元数据同步海外<br/>幂等 版本检查 定时补漏"]
  SYNC --> LIVE["海外资源可用后可见<br/>通知观众并进入轮播"]
  CHECK -->|否| INTERNAL["内部保留<br/>原图继续长期保存"]
  INTERNAL -->|公开状态变化后检查| CHECK

“后台继续上传”依赖平台系统调度,不等于强制退出后持续执行。换手机可查看服务端历史,不能恢复另一台手机尚未上传的本地源文件。

3 相册控制规则

操作 上传处理 观众与轮播 文件
关闭上传 拒绝新任务和续签,已核验处理可继续 保持原公开设置 不删除
关闭公开 内部上传处理可继续 停止公开查询和订阅,组件更新后收起或空态 长期保留
批量隐藏 不影响其他照片上传 移除相关照片和待展示气泡 原图保留
重新公开 不自动修改上传开关 仅展示符合可见性条件的照片 不恢复已隐藏或删除照片
转移负责人 更新操作权限,已有任务重新校验 不改变相册公开地址 保留历史上传归属

已签发资源链接按约定缓存失效窗口处理,不能撤回已下载图片。

国内处理就绪与海外可见分开显示。同步中断不阻止海外访问既有内容,国内新增内容等待补发;下线优先同步,跨境中断时使用海外紧急停用通道。观众图片统一经全球 CDN,冷缓存首次访问单独验收。