2.6 高可用与并发要求【已整理,待联调验证】

  • 创建订单、充值、提现、福利兑换、提问扣糖果、退款必须支持幂等;福利兑换达标后不扣糖果,但仍需防重复兑换。
  • 涉及余额、可提现金额、退款、库存、兑换次数的接口必须在数据库事务中处理,必要时使用行级锁、唯一索引或 Redis 锁。
  • 支付回调、退款回调、融云回调必须验签、记录原始回调日志,并按第三方事件 ID、流水号或业务单号做幂等。
  • 订单超时关闭、支付成功后置处理、视频爽约判定、视频通话到点结束、退款处理、超级群成员同步等异步能力使用 Hyperf AsyncQueue Redis 延迟队列,并由 Crontab 做兜底补偿。
  • 福利兑换和收入入账已补充数据库级幂等兜底:需在已有环境手动导入 databases/selfbuilt/updates/20260611_tieup_idempotency_indexes.sql,为 tieup_benefit_redemption 增加 idempotency_key 并建立 fan_user_id + idempotency_key 唯一索引,为 tieup_income_record 建立 business_type + business_id 唯一索引。导入前必须先执行脚本内重复数据检查,若存在重复记录需人工核对处理后再加唯一索引;脚本会在回填后再次检查独立 idempotency_key 字段和收入业务来源的实际重复值,字段或索引已存在、或唯一键候选数据仍有重复时会输出 skip 信息并跳过,便于重复执行或半导入后恢复。