该抽奖程序 每次可以抽取多个不同奖品。
效果: TODO 补充B站地址
下载本项目的release, 然后 参考 配置文件说明 进行配置
直接双击运行 双击 app.exe.
终端执行 ./app
然后用 chrome 打开 http://localhost:14422/ 即可。 window 和 linux下 按F11全屏, mac好像是 cmd + shift + f全屏
在浏览器查看使用说明即可
Linux 或 Mac 执行:
go run main.go
# 新开终端
cd web-src
yarn install # npm install
yarn start # npm startwindow 下建议使用WSL进行二次开发和部署
运行脚本build.sh
该脚本不提供 mac和linux的跨平台编译。
由于本程序使用了 sqlite3 如果需要跨系统编译需要gcc,那么进行下面软件安装。
【或者 通过修改 database/init.go的 第9行和第22行替换成mysql来避免使用gcc编译】
需要安装:
mac: brew install mingw-w64
ubuntu: sudo apt-get install gcc-mingw-w64
mac下编译 linux版本,或者 linux下编译mac版本 都不推荐使用跨平台编译。 推荐在部署机上克隆代码后进行本机build
参数定义在: web-src/lib/game.ts的 IAnimation和IEndingAnimation
参数配置在: web-src/Lottery.tsx的componentDidMount的new GameScreen
使用IDE搜索即可找到具体代码
启动浏览器后 在 数据配置 点击 生成测试配置,然后点击读取配置生成数据 即可生成demo数据
按照下文配置好配置文件后 ,在浏览器后数据配置 点击读取配置生成数据 即可生成配置好的数据
修改文件 lottery/conf/user.json
[
{
"name": "用户名",
"avatar":"头像",
"uuid":"用户唯一标识",
"pool": "用户池" // 抽奖时 有多个用户池,可选,默认为
},
// ...
]修改文件 lottery/conf/award.json
[
{
"id": 1 , // 奖品id,不重复
"name": "奖品名称",
"avatar":"奖品图片",
},
{
"id": 2 ,
"name": "...",
"avatar":"...",
}
// ...
]文件 setting.json 放在lottery/conf/setting.json
抽奖将按配置依次进行。
[
// 第一条配置表示,第一轮 从用户池1 抽取 奖品1 10个,奖品2 5个
{
"pool":"用户池1", //可选
"rule":[{
"award_id": 1, // 奖品id, 请用 奖品配置 award.json 里面的id,
"count": 10, // 抽多少个奖品,如果每轮抽奖有多个奖品,数组里面填多个奖品的抽奖数量,
},
{
"award_id": 2, // 奖品id, 请用 奖品配置 award.json 里面的id, 如果每轮抽奖有多个奖品,数组里面填多个id
"count": 5, // 抽多少个奖品,如果每轮抽奖有多个奖品,数组里面填多个奖品的抽奖数量,
}]
},
// 第二条配置表示,第二轮 从用户池2 抽取 奖品3 20个
{
"pool":"用户池2",
"rule":[{
"award_id": 3,
"count": 20,
}]
}
]MIT
如果对你有帮助,可以请喝咖啡。【请备注github帐户】