Files
shaguabijia-app-server/docs/api/admin/feedbacks/admin-feedback-handle.md
T
2026-07-09 14:23:59 +08:00

2.2 KiB
Raw Blame History

/admin/api/feedbacks — 反馈审核族(采纳/拒绝/标记处理/统计)

所属:Admin·反馈 组(前缀 /admin/api/feedbacks | 鉴权:Bearer admin_token(角色:operator,super_admin 恒通过,require_role("operator");summary 任意 admin | ← 返回 API 索引

列表见 admin-feedbacks-list。#94 引入 采纳(发金币)/拒绝 审核语义,#105 加运营回复 admin_reply;旧「标记已处理」保留。

POST /admin/api/feedbacks/{feedback_id}/approve — 采纳并发金币(#94)

  • body:{reward_coins?(int,可 0), admin_reply?(string,用户可见), review_note?(string,内部)}
  • 行为:status → adopted;reward_coins > 0 时走 grant_coins 同事务发币(流水 coin_transaction);写审计(detail.after="adopted")。已终态(非 pending/new)→ 400
  • 出参:更新后的 FeedbackOut。

POST /admin/api/feedbacks/{feedback_id}/reject — 拒绝采纳(#94)

  • body:{reject_reason(string,用户可见), admin_reply?, review_note?}
  • 行为:status → rejected;写审计(detail.after="rejected")。已终态 → 400

GET /admin/api/feedbacks/summary — 审核统计

  • 出参:各状态计数(pending / adopted / rejected / handled),审核台顶部卡片用;任意 admin 可读。

POST /admin/api/feedbacks/{feedback_id}/handle — 标记反馈已处理(旧口径)

入参

  • 路径:feedback_id(int)
  • body:无

出参

响应 200:OkResponse = { "ok": true }

幂等说明:将该反馈 status 置为 handled(不校验原状态,重复调用结果一致)。

错误码

  • 401 未带/无效/过期 admin token、管理员被禁用(头带 WWW-Authenticate: Bearer)
  • 403 角色不足(需 operatorsuper_admin)
  • 404 反馈不存在(detail: "反馈不存在")
  • 422 feedback_id 非合法 int

说明

  • 写操作记审计 admin_audit_log:action="feedback.handle"target_type="feedback"target_id=<feedback_id>detail={"before": <原 status>, "after": "handled"}ip=<客户端 IP>
  • 状态变更与审计写入在同一事务(commit=False 后统一 db.commit())。
  • 关联表 feedback