Skip to content

生成邀请码

1. 接口定位

  • 接口名称: 生成邀请码
  • 所属域: admin/invitation-code
  • 业务目标: 由服务端按指定长度、数量和字符集批量生成邀请码并落库

2. 请求定义

  • Method: POST
  • Path: /invitation_code/gen
  • Content-Type: 推荐 application/json
  • operationID: 必填,请通过 Header operationID 传入
  • 鉴权: 需要 Header token,且必须是管理员 token
  • 幂等性: 非幂等;每次调用都会重新生成一批邀请码

3. 请求参数

Header 参数

字段必填类型说明
operationIDstring链路追踪 ID
tokenstring管理员 token

Body 参数

字段必填类型说明
lenint32单个邀请码长度,必须大于 0
numint32生成数量,必须大于 0
charsstring候选字符集;协议校验要求非空,RPC 层允许为空后补默认值

字段约束

  • 协议校验要求:
    • len >= 1
    • num >= 1
    • chars != ""
  • RPC 实际逻辑里,如果 chars 为空字符串,会自动使用默认字符集:
    • 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 生成后的邀请码如果在本次结果中重复,会直接返回 gen duplicate codes
  • 生成后的邀请码如果与数据库现存记录冲突,会返回冲突的邀请码列表。

4. 响应结构

通用响应包裹

字段类型说明
errCodeint错误码,0 表示成功
errMsgstring错误简述
errDltstring错误详情
dataobject业务数据

data 字段

  • 本接口成功时返回空对象(不直接回传生成结果)。

5. 业务规则

  • 仅管理员可以调用。
  • 服务端先按 lenchars 随机生成 num 个邀请码。
  • 生成成功后只写入数据库,不在响应中返回邀请码内容;如需查看结果,需要再调用搜索接口。
  • 每条记录会写入:
    • invitationCode
    • usedUserID = ""
    • createTime = 当前服务端时间

6. 错误码与失败场景

错误码场景典型报错
1001len < 1len is invalid
1001num < 1num is invalid
1001chars 为空chars is in invalid
1001RPC 层判定 numlen <= 0num or len <= 0
1001本次生成结果内部重复gen duplicate codes
1001与现有邀请码冲突冲突的邀请码列表字符串
-数据库写入失败由数据库层返回原始错误

7. 示例

fetch 请求示例

javascript
fetch("http://localhost:10009/invitation_code/gen", {
  method: "POST",
  headers: {
    operationID: "550e8400-e29b-41d4-a716-446655440402",
    token: "eyJhbGciOi...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    len: 8,
    num: 20,
    chars: "ABCDEFGHJKLMNPQRSTUVWXYZ23456789",
  }),
})
  .then((res) => res.json())
  .then((data) => console.log(data));

请求示例(JSON)

json
{
  "len": 8,
  "num": 20,
  "chars": "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"
}

成功响应示例

json
{
  "errCode": 0,
  "errMsg": "",
  "errDlt": "",
  "data": {}
}

失败响应示例

json
{
  "errCode": 1001,
  "errMsg": "ArgsError",
  "errDlt": "chars is in invalid"
}

8. 时序流程

  1. 中间件校验管理员 token。
  2. 校验 lennumchars
  3. 使用给定字符集随机生成邀请码集合。
  4. 检查本次生成集合是否有重复值。
  5. 检查数据库中是否已存在相同邀请码。
  6. 批量落库并返回成功响应。

9. 变更记录

  • 2026-03-31: 首版发布,基于邀请码批量生成与冲突检测逻辑补全文档。