S1处罚接口文档
基于当前分支 · 2026-09-11
Support Admin / API Change

举报处罚接口
新增类型接入指南

相对 master,处罚枚举按分类编码扩展 5 种类型。本文覆盖后台确认接口的完整请求契约、可复制示例与表单联动规则。

5 种新增类型 3 种当前可用 2 种底层未实现 v1 ProtoJSON
02 / 接口定义

一次确认,写入审核与处罚快照

接口由管理后台聚合层暴露;管理员身份与站点信息由登录上下文注入,请求体不传操作人字段。

POST /admin.admin.v1.support.Support/ResolveReportSupport 后台登录态
Content-Typeapplication/json
请求模型ResolveReportSupportReq
响应模型ResolveReportSupportResp
!
兼容性提醒
处罚类型现采用 category << 12 | subtype 编码。HTTP JSON 推荐始终传枚举名,不要在前端持久化旧数字值。
!
字段迁移
durationSeconds / duration_seconds 已废弃,接入方统一改传 targetValue / target_value。固定时长处罚填秒数,永久处罚填 0
新增枚举

五种类型,一眼辨认可用性

“可用”表示已具备当前业务接入路径;未实现项只完成协议定义,前端应禁用选择并展示原因。

4098 · 1<<12|2

DEVICE_BAN

禁止指定设备登录游戏。

当前可用
8194 · 2<<12|2

RING_BAN

禁止参与匹配或普通对局。

当前可用
8195 · 2<<12|3

MATCH_BAN

当前仅支持禁止所有比赛。

仅全量可用
8196 · 2<<12|4

PURCHASE_BAN

禁止购买商品。

底层未实现
16386 · 4<<12|2

DEDUCT_RATING

扣除用户等级分。

底层未实现
03 / 请求参数

完整请求体

字段名遵循 ProtoJSON 的 lowerCamelCase。int64 在 JSON 中建议使用字符串,枚举建议使用完整符号名。

字段类型要求说明
supportIdint64必填举报工单 ID,必须大于 0。
conclusionenum必填仅允许 CONFIRMEDREJECTEDINSUFFICIENT_EVIDENCE
adjustedRiskLevelenum必填调整后风险等级,NORMAL10
punishmentsReportPunishment[]条件必填仅举报成立时可传;同一 punishmentType 不允许重复。
notificationChannelsenum[]可选通知渠道:INBOXPUSHEMAILSMS;不允许重复。
notificationTargetsenum[]可选通知对象:举报人 REPORTER、被举报人 REPORTED_USER;不允许重复。
coinPenaltiesGameCoinPenalty[]条件必填选择 DEDUCT_COIN 时同步提供;新增 5 种类型均无需传。
resolutionNotestring必填审核备注,1~65535 字节。
versionuint32必填详情接口返回的当前版本号,用于乐观锁。
requestIdstring必填全局唯一幂等 ID,1~64 字节;重试必须复用同一值。
reporterMailTemplateIdstring条件必填站内信通知举报人时必填,最长 64 字节。
reportedUserMailTemplateIdstring条件必填举报成立且站内信通知被举报人时必填,最长 64 字节。
forbiddenGameIdsint32[]可选ACCOUNT_BAN 可传;元素大于 0 且唯一。新增 5 种类型不要传。

ReportPunishment

punishments 数组元素

字段类型要求说明
punishmentTypeenum必填具体处罚枚举;传完整符号名。
durationTypeenum必填DEVICE_BANRING_BANMATCH_BANPURCHASE_BAN 支持 FIXED_SECONDSPERMANENTDEDUCT_RATING 必须为 UNSPECIFIED
durationSecondsint64已废弃兼容字段,不再使用;新请求不要传。
targetValueint64条件必填替代 durationSeconds:固定时长填 1~315360000 秒;永久处罚填 0;DEDUCT_RATING 填正数扣分值。
payloadgoogle.protobuf.Any可选业务自定义透传数据。MATCH_BAN 禁止所有比赛时不传;指定系列赛、配置或场次时才需要,但当前底层尚未支持。构建器中的 StringValue 仅演示已验证的 Any 透传方式,不是已落地的范围协议。
04 / 完整示例

可直接复制的联调请求

示例一次下发设备封禁、普通对局封禁与全赛事封禁;包含接口全部 13 个顶层字段。


        
05 / 交互构建器

选择类型,实时生成处罚片段

用于验证前端表单联动:禁止所有比赛时省略 payload;选择指定范围后才生成透传数据,并明确提示当前不可执行。

Request Builder

处罚措施

时长方式

替代已废弃的 durationSeconds;示例值 604800 秒,即 7 天。

punishments[0]


            
          
06 / 前端交互

对应附件“处理”弹窗的推荐流程

主动作只有一次“确认处罚”。提交前完成条件联动,提交后依据同一 requestId 安全重试。

01

确认结论

只有“举报成立”展示处罚措施;其余结论清空处罚。

02

配置处罚

可添加多个不同类型;固定时长与永久互斥。

03

补齐通知

选择站内信和通知对象后,联动要求对应模板。

04

提交与回显

锁定按钮,成功后刷新工单版本和处罚记录。

07 / 校验与风险

上线前必须守住的边界

以下规则来自当前 proto 校验和业务归一化逻辑;错误响应统一保留英文 message。

处罚类型唯一

同一请求重复 punishmentType 会返回 SUPPORT_INVALID_ARGUMENT

时长严格配对

FIXED_SECONDStargetValue 必须大于 0;永久处罚必须为 0,不再传 durationSeconds

通知模板联动

站内信通知举报人或被举报人时,必须提供对应模板 ID。

幂等与乐观锁

重试复用 requestId;新一次操作重新生成。version 必须来自最新详情。

未实现项禁用

PURCHASE_BANDEDUCT_RATING 不进入生产请求,避免只写快照未产生实际处罚。

赛事范围载荷

禁止所有比赛不传 payload。指定系列赛、配置或场次才传,但当前底层未实现,前端不得放行提交。

已复制到剪贴板