JX3BOX / lottery

jx3box 抽奖

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

抽奖

该抽奖程序 每次可以抽取多个不同奖品。

直接使用linuxmac

  • 运行脚本build.sh

在项目的release文件夹下执行

  • 生成demo数据 ./app --demo
  • 初始化数据库 ./app --init
  • 执行 ./app
  • 然后用 chrome 打开 http://localhost:14422/ 即可。 windowlinux下 按F11全屏, mac好像是 cmd + shift + f全屏

操作说明

在浏览器查看使用说明即可

二次开发

LinuxMac 执行:

go run main.go
# 新开终端
cd web-src
cnpm install # npm install
cnpm start # npm start

编译

运行脚本build.sh

该脚本不提供 maclinux的跨平台编译。

由于本程序使用了 sqlite3 如果需要跨系统编译需要gcc,或者 通过修改 database/init.go第9行第22行替换成mysql来避免使用gcc编译】

动画配置

参数定义在: web-src/lib/game.tsIAnimationIEndingAnimation 参数配置在: web-src/Lottery.tsxcomponentDidMountnew GameScreen

使用IDE搜索即可找到具体代码

配置文件说明

用户池 配置

修改文件 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,
        }]
    }
]

修改好配置后执行 ./app --init 重新初始化数据库

License

MIT

打赏

如果对你有帮助,可以请喝咖啡。【请备注github帐户】

About

jx3box 抽奖


Languages

Language:TypeScript 57.1%Language:Go 37.0%Language:SCSS 3.5%Language:HTML 1.6%Language:Shell 0.4%Language:JavaScript 0.2%Language:CSS 0.1%