问答抽奖系统
  1. 后台管理端
问答抽奖系统
  • 用户模块
    • 注册一个管理员账户
      POST
    • 登录账号
      POST
    • 当access_token过期时,用refresh_token获取新的access_token
      GET
    • 获取当前登录用户的信息
      GET
    • 谨慎:注销当前登录用户的账号。
      DELETE
  • 后台管理端
    • 创建项目
      POST
    • 创建项目
      POST
    • 编辑项目
      PUT
    • 删除项目
      DELETE
    • 获取项目详情
      GET
    • 获取当前账号的所有项目预览列表
      GET
    • 获取所有账号的所有项目预览列表
      GET
    • 生成参与项目用的二维码
      POST
    • 扫兑奖码返回用户中奖信息及是否已兑奖
      GET
    • 给用户兑奖
      POST
  • 前台用户端
    • 获取项目的问答题目
      GET
    • 获取项目的抽奖信息
      GET
    • 提交答案
      POST
    • 抽一次奖
      POST
    • 生成兑奖二维码
      POST
  1. 后台管理端

创建项目

POST
/api/project
后台管理端
最后修改时间:2025-01-28 04:14:02
责任人:未设置
需要验证token

请求参数

Header 参数
Authorization
string 
可选
示例值:
{{Authorization}}
Body 参数multipart/form-data
name
string 
Name
必需
项目名称
示例值:
毕业跑
description
Description
可选
项目描述
Any of
示例值:
毕业跑展台活动
start_time
string <date-time>
Start Time
必需
项目开始时间,格式为YYYY-MM-DD HH:MM:SS,必须早于截止时间
示例值:
2025-02-01 10:00:00
dead_line
string <date-time>
Dead Line
必需
项目截止时间,格式为YYYY-MM-DD HH:MM:SS,必须晚于开始时间
示例值:
2025-03-15 14:00:00
question
string 
Question
可选
添加的所有问答组成的JSON数组并转换为字符串格式,数组中每个JSON对象中应该包含以下字段:
q: 问题,字符串
o1: 选项1,字符串
o2: 选项2,字符串
o3: 选项3,字符串
o4: 选项4,字符串
a: 正确答案,整数,1-4对应选项1-4,也对应页面上的A-D
也就是形如[{"q": "山东大学是什么时候成立的?","o1": "1900","o2": "1901","o3": "1902", "o4": "1903","a": 2}]的字符串,在JS中只要定义一个数组,然后用JSON.stringify()方法转换为字符串即可。
默认值:
[]
示例值:
[ { "q": "山东大学是什么时候成立的?", "o1": "1900", "o2": "1901", "o3": "1902", "o4": "1903", "a": 2 }, { "q": "山东大学是什么时候成立的?", "o1": "1900", "o2": "1901", "o3": "1902", "o4": "1903", "a": 2 }, { "q": "山东大学是什么时候成立的?", "o1": "1900", "o2": "1901", "o3": "1902", "o4": "1903", "a": 2 } ]
prize
string 
Prize
可选
添加的所有抽奖项目的JSON数组并转换为字符串格式,数组中每个JSON对象中应该包含以下字段:
name: 奖品名称,字符串
level: 奖品等级,整数,是几就是几等奖
amount: 奖品数量(总量),整数,总共可以发多少个奖品
格式同question。
默认值:
[]
示例值:
[ { "name": "帆布包", "level": 1, "amount": 100, }, { "name": "手机支架", "level": 2, "amount": 200, }, { "name": "学线书签", "level": 3, "amount": 300, } ]
images
file 
可选
奖品图片文件组成的数组,按照奖品顺序排列。
比如说,如果一共有3种奖品,索引分别为0、1、2(从0开始),第0种奖品有图片,第1种奖品没有图片,第2种奖品有图片,
则数组中先后添加第0个奖品的图片文件、第2个奖品的图片文件。
示例值:
["file://C:\\Users\\LENOVO\\Pictures\\a90e41b25ae5e797a1af0aea7596c676.jpg","file://C:\\Users\\LENOVO\\Pictures\\博客.png"]
image_index
string 
Image Index
可选
包含图片的奖品的索引数组并转换成字符串格式,按照奖品顺序排列。
比如说,如果一共有3种奖品,索引分别为0、1、2(从0开始),第0种奖品有图片,第1种奖品没有图片,第2种奖品有图片,
则应该输入[0, 2]形式的字符串。
默认值:
[]
示例值:
[0, 2]
prize_claim_way
Prize Claim Way
可选
兑奖方式:0-抽奖现场兑奖,1-指定地点兑奖
Any of
示例值:
1
correct_item_num
Correct Item Num
可选
获得抽奖机会至少需要答对的题目数量, 数值必须小于或等于题目总数(前端校验), 在问答+抽奖项目中给出
Any of
示例值:
5
total_raffle_times
Total Raffle Times
可选
可抽奖次数,在仅抽奖项目中给出
Any of
示例值:
4
prize_claim_place
Prize Claim Place
可选
奖品兑奖地点,在指定地点兑奖项目中给出
Any of
示例值:
展台现场
prize_claim_time
Prize Claim Time
可选
奖品兑奖时间,让用户自由输入即可,不用限制格式, 在指定地点兑奖项目中给出
Any of
示例值:
周五晚7-9点

示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST '/api/project' \
--header 'Authorization: {{Authorization}}' \
--form 'name="毕业跑"' \
--form 'description="毕业跑展台活动"' \
--form 'start_time="2025-02-01 10:00:00"' \
--form 'dead_line="2025-03-15 14:00:00"' \
--form 'question="[
    {
        \"q\": \"山东大学是什么时候成立的?\",
        \"o1\": \"1900\",
        \"o2\": \"1901\",
        \"o3\": \"1902\",
        \"o4\": \"1903\",
        \"a\": 2
    },
        {
        \"q\": \"山东大学是什么时候成立的?\",
        \"o1\": \"1900\",
        \"o2\": \"1901\",
        \"o3\": \"1902\",
        \"o4\": \"1903\",
        \"a\": 2
    },
        {
        \"q\": \"山东大学是什么时候成立的?\",
        \"o1\": \"1900\",
        \"o2\": \"1901\",
        \"o3\": \"1902\",
        \"o4\": \"1903\",
        \"a\": 2
    }
]"' \
--form 'prize="[
    {
        \"name\": \"帆布包\",
        \"level\": 1,
        \"amount\": 100,
    },
    {
        \"name\": \"手机支架\",
        \"level\": 2,
        \"amount\": 200,
    },
    {
        \"name\": \"学线书签\",
        \"level\": 3,
        \"amount\": 300,
    }
]"' \
--form 'images=@"C:\\Users\\LENOVO\\Pictures\\a90e41b25ae5e797a1af0aea7596c676.jpg"' \
--form 'images=@"C:\\Users\\LENOVO\\Pictures\\博客.png"' \
--form 'image_index="[0, 2]"' \
--form 'prize_claim_way="1"' \
--form 'correct_item_num="5"' \
--form 'total_raffle_times="4"' \
--form 'prize_claim_place="展台现场"' \
--form 'prize_claim_time="周五晚7-9点"'

返回响应

🟢201项目创建成功,返回项目uuid
application/json
Body
project_uuid
string <uuid>
Project Uuid
必需
项目UUID
示例
{
    "project_uuid": "1de37675-f868-4726-bb1d-b08d89f463f9"
}
🟠400项目问答或抽奖格式错误
🟠401未获得授权
🟠422Validation Error
修改于 2025-01-28 04:14:02
上一页
创建项目
下一页
编辑项目
Built with