精华内容
下载资源
问答
  • 抽奖奖品表
    2021-02-12 04:34:28

    开奖表

    id,开奖日期,开奖起始号,开奖结束号

    奖项表

    id,开奖表id,奖品名称,中奖起始号,中奖结束号,开奖数量,已中奖数量,添加时间,添加人

    开奖表

    id,奖项表id,用户名称,是否中奖,中奖号,奖项表id(中奖才有否则为0),开奖时间

    1.从开奖表中拉当天数据,并奖项表中没有中完的

    2.得到开奖起始号,开奖结束号

    3.产生随机数=(开奖起始号,开奖结束号之间的数)

    4.随机数与奖项表中的 中奖起始号,中奖结束号比较要是在这个号段间就表示中了这个项

    5.把抽奖数据添加到开奖表中。。

    =======

    开奖表

    id,开奖类型(指定日期/每周) 开奖日期,每周几开奖,开奖起始号,开奖结束号

    奖项表

    id,奖品名称,开奖数量,中奖率,开始角度,结束角度,添加时间,添加人

    当日奖项表

    id,奖品名称,开奖数量,中奖率,开始角度,结束角度,已中奖数量,开奖时间

    中奖表

    id,奖项表id,用户名称,是否中奖,中奖号,奖项表id(中奖才有否则为0),开奖时间

    1.从开奖表中先接特殊日期有不有今天的开奖数据要是没有,再根据今天星期数查按周的数据,(要是没查到表是不是开奖日)

    2.要是查到有数据,把奖项表中所有数据添加到当日奖项表中。(这个添加只加一次,判断里面有数据就不要再加了)

    3.产生奖项,向中奖表中添加数据,要是中奖更新当日奖项表中已中奖数量

    ============

    奖项表

    id,奖品名称,开奖数量,中奖率,开始角度,结束角度,添加时间,添加人

    当日奖项表

    id,奖品名称,开奖数量,中奖率,开始角度,结束角度,已中奖数量,开奖时间

    if(今天是特殊日 || 周2,4,6){

    查当日奖项表中有不有数据

    if(没有数据)

    奖项表 所有数据添加到 当日奖项表中 开奖时间为今天

    }

    开奖判断是否中奖

    if(中奖){

    当日奖项表中已中奖数量-1

    }

    }

    更多相关内容
  • JAVA代码实现抽奖功能,自定义奖品以及奖品概率 大家好,我是梦辛工作室的灵,最近做了一个抽奖功能,然后自己为了以后方便和拓展 就封装了一下,可以自定义奖品 自定义权重 和 价格等信息,还可以自由设置是否每抽...
  • 关于抽奖,需要考虑的点有很多,这里稍微整理了下主要需要考虑以下三点:用户抽奖次数限制奖品数量限制奖品发放的分布中奖的概率的可控性用户抽象次数限制一个用户必须限制抽奖的次数,而同一个用户的并发几率其实是很小...

    关于抽奖,需要考虑的点有很多,这里稍微整理了下主要需要考虑以下三点:

    用户抽奖次数限制

    奖品数量限制

    奖品发放的分布

    中奖的概率的可控性

    用户抽象次数限制

    一个用户必须限制抽奖的次数,而同一个用户的并发几率其实是很小的,所以这里可以用悲观锁来控制用户的抽奖次数。

    奖品数量限制

    因为并发修改一个奖品的数量可能性是很大的,特别是一些安慰奖,如果这里我们再用悲观锁的话,很容易造成锁超时。所以这里我选择用乐观锁来解决可能出现的并发脏读的情况。

    奖品发放的分布

    为了防止用脚本来刷抽奖,所以这里需要控制一下奖品发放的一个分布,中大奖需要一个时间间隔,当然这里通过代码来控制是很容易实现的(当然这里也需要考虑一下并发中到两个大奖的情况,也可以通过乐观锁来控制)

    中奖的概率的可控性

    当我们开始估计抽奖大概会有10W人参加,所以我在设计概率的时候是按照10w来设计的,但是突然发现活动开始一个小时候以后抽奖人数就达到了5W,这个时候就需要可以动态来调整中奖的概率了。这里最好的方式是,不要把中奖概论写死在数据库,而是通过中奖次数/参加人数来计算出来,这样就可以方便的动态的改变中奖概率了。

    关于优化

    如果并发量实在是太大,导致数据库的QPS异常的高。那么可以在数据库前面加一层缓存来挡一下,把需要写进数据库的数据放入队列。当使用了这种架构架构,就需要考虑一些数据一致性的问题了,比如说

    怎么保证数据库的数据和缓存的数据是一致的

    如果队列挂掉了,怎么保证缓存的数据能够及时更新到数据库中。如果缓存挂掉了,怎么保证抽奖能够继续进行下去(当然这里可以进行业务妥协,如果缓存挂掉整个抽奖挂掉,如果来不及写进数据库的数据,就当做这些事情没有发生,这就会导致某些人抽奖次数超过限定次数,或者某些奖中奖次数超过了限定次数)

    关于优化中我对一些异常情况的解决方法不是很了解,希望懂的朋友可以指教一下

    附录(简单流程图)

    28daf5be6b1c9bbc1c4ddc510ac82b5f.png

    展开全文
  • jquery鼠标点击抽奖按钮奖品格子闪烁摇奖随机抽奖 jquery鼠标点击抽奖按钮奖品格子闪烁摇奖随机抽奖
  • 转盘抽奖游戏,可以自定义奖品,可以设定概率。js和html编写,无需后台代码
  • 1、可将抽奖结果进行保存实时下载到 excel 中;2、已抽取人员不在参与抽取,抽中的人员不在现场可以重新抽取;3、刷新或者关掉服务器,会保存当前已抽取的数据,不会进行数据重置,只有点击界面上的重置按钮,才能...
  • 已附带数据库,先导入数据库再运行程序,程序路径http://localhost/lpcj/
  • 九宫格抽奖概率控制不重复奖品
  • 后台使用springboot来实现抽奖的算法逻辑完整版,可直接运行代码访问controller里的/award接口进行测试
  • web实现九宫格抽奖,实现概率抽奖 不重复抽奖,抽到之后改奖品增加盖章效果
  • 抽奖支持概率+数量配置,数量不足,剔除出奖项外,采取分子不变,分母减少的逆向思维动态计算概率(100分之100等1,9分之9也是1)
  • 外圆里面是抽奖的奖项,抽奖奖项由奖品名称和一条线组成,通过将线和奖品名称旋转一定的角度就可以得到界面效果,这里用到的主要功能是:transform: rotate。这里说是线,其实是一个个的view通过设置width宽度和背景...
  • 根据后台自行设置,然后滚动时不让抽的特殊奖品直接跳过滚动(可设置多个特殊奖品),等到设置的第几次抽奖该抽到时滚动特殊奖品也就是抽了几次后必中特殊奖品
  • 大转盘、九宫格、红包雨、砸金蛋、刮刮卡,五大主题随意切换,可自定义奖品、可自定义抽奖码、自定义背景音乐。
  • 大高朋抽奖奖品调查系统使用ASP而写,把代码放在自己的某个网站下,既可以增加流量,同时你在完成一个企业客户的网站时,也可以方便的在客户网站上加入一段代码,即时显示为客户而定制的调查主题,可以同时为不同的...
  • 基于thinkphp5的抽奖实现,支持后台设置抽奖概率、奖品排序namespace app\index\controller;use think\Controller;class Lottery extends Base{//奖品配置信息protected $prize;//用户idprotected $uid;/*** 初始化...

    基于thinkphp5的抽奖实现,支持后台设置抽奖概率、奖品排序

    8a3efd0fa837bcc97c348c728e283dd5.png

    namespace app\index\controller;

    use think\Controller;

    class Lottery extends Base

    {

    //奖品配置信息

    protected $prize;

    //用户id

    protected $uid;

    /**

    * 初始化奖品配置信息

    */

    public function _initialize()

    {

    //从数据库读取奖品信息

    /**

    * 数据表结构

    * id

    * name 奖品名称

    * type 类型,用来标识奖品的类型,比如实物、积分(需要自动充值到用户账户)、谢谢惠顾(不需要做任何处理)

    * points_num 如果是积分、金额这种需要自动充值到账户的,需要填写该字段

    * thumb 缩略图,可在大转盘显示

    * rate 中奖概率,小数表示

    * num 奖品总数

    * overplus_num 剩余奖品数量

    * status 状态 0禁止,1正常

    * sort 排序 奖品出现在转盘或者跑马灯上的顺序

    * addtime 添加时间

    * edittime 修改时间

    */

    $this->prize = db('prize')->where('status',1)->order('sort')->select();

    //获取登录用户的id,写中奖纪录、查询是否有抽奖条件等

    $this->uid = session('uid');

    }

    /**

    * 抽奖

    */

    public function lottery() {

    if(!$this->uid) {

    return json(['status'=>0,'msg'=>'登录之后才能抽奖']);

    }

    //给奖品数组添加数字范围,随机数落到这个范围,就表示抽中该奖品

    $this->addRange();

    //抽奖,得到本次抽奖的奖品信息

    $prize = $this->getPrize();

    //检查这个奖品数量是否被抽完,如果抽完,重新抽奖返回奖品信息,直到抽到有存量奖品;所有奖品都抽完,返回false

    $prize = $this->checkPrizeNum($prize);

    if(false === $prize) {

    return json(['status' => 0,'msg' => '来晚了!奖品已被洗劫一空!']);

    }

    //减少奖品剩余数量

    $this->decreaseNum($prize);

    //写抽奖记录,得到记录id

    $log_id = $this->addLog($prize);

    //抽奖结果是积分,需要充值到用户账户

    if($prize['type'] == 2) {

    $this->handlePoint($prize,$log_id);

    }

    //返回抽奖结果给前台

    // return json(['status' => 1,'msg'=>'抽奖结果:'.$prize['name']]);

    //返回全部奖品信息给前台 $prize中包含所有奖品配置信息,$log_id抽奖记录的id

    return json(['status'=>1,'msg'=>'','data' => $prize,'log_id' => $log_id]);

    }

    /**

    * 增加随机数范围到奖品列表数组中,抽奖的概率精确到千分之一,如果需要更精确的区分,调整基数即可!

    */

    private function addRange()

    {

    $current_number = 0;

    foreach($this->prize as $key=>$item) {

    if($item['rate'] == 0.001) {

    $this->prize[$key]['range_start'] = 1000 * $item['rate'] + $current_number;

    $this->prize[$key]['range_end'] = $this->prize[$key]['range_start'];

    $current_number = $this->prize[$key]['range_end'];

    } else if ($item['rate'] == 0) {

    $this->prize[$key]['range_start'] = 0;

    $this->prize[$key]['range_end'] = 0;

    } else {

    $this->prize[$key]['range_start'] = $current_number + 1 ;

    $this->prize[$key]['range_end'] = 1000*$item['rate'] + $current_number ;

    $current_number = $this->prize[$key]['range_end'];

    }

    }

    }

    /**

    * 抽奖实现,获取奖品

    */

    private function getPrize()

    {

    //生成一个随机数

    $random = mt_rand(1,1000);

    // echo $random;

    foreach($this->prize as $key=>$item) {

    if($item['range_start'] <= $random && $random <= $item['range_end']) {

    return $item;

    }

    }

    }

    /**

    * 检查奖品是否抽完

    */

    private function checkPrizeNum($prize)

    {

    //剩余奖品数量

    $overplus_num = db('prize')->where('status',1)->sum('overplus_num');

    if( 0 >= $overplus_num ) {

    return false;

    }

    if( 0 >= $prize['num'] )

    {

    $prize = $this->getPrize();

    $this->checkPrizeNum($prize);

    }

    return $prize;

    }

    /**

    * 修改y_prize表中的剩余奖品数量--1

    */

    private function decreaseNum($prize)

    {

    db('prize')->where('id',$prize['id'])->setDec('overplus_num',1);

    }

    /**

    * 写入奖品记录到lottery表,返回记录的id

    */

    private function addLog($prize)

    {

    $data = [];

    $data['uid'] = $this->uid;

    $data['prize_id'] = $prize['id'];

    $data['prize_name'] = $prize['name'];

    $data['addtime'] = time();

    if(3 == $prize['type']) {

    $data['status'] = 1; //不需要发奖品,也不需要自动到账的状态写为1,不需要后台处理

    } else {

    $data['status'] = 0; //需要处理的,在后续处理过程中更改状态

    }

    $id = db('lottery_log')->insertGetId($data);

    return $id;

    }

    /**

    * 处理积分问题

    */

    private function handlePoint($prize,$log_id)

    {

    //给用户账户增加积分

    db('user_wallet')->where('uid',$this->uid)->setInc('points',$prize['points_num']);

    //把之前抽奖日志的状态从0改成1,表示该奖品已经处理完毕

    db('lottery_log')->where('id',$log_id)->update(['status'=>1]);

    }

    /**

    * 中奖用户提交领奖信息

    */

    public function addInfo()

    {

    $data['name'] = input('post.name');

    $data['tel'] = input('post.tel');

    $data['address'] = input('post.address');

    $data['edittime'] = time();

    $id = input('post.log_id');

    //用户提交数据验证逻辑

    /*some verify code*/

    $res = db('lottery_log')->where('id',$id)->where('uid',$this->uid)->update($data);

    if(!$res) {

    return json(['status' => 0,'msg' => '领奖信息提交失败']);

    }

    return json(['status' => 1,'msg' => '领奖信息提交成功']);

    }

    }

    打赏

    微信、支付宝、QQ打赏

    程序员,你不是一个人;Web开发QQ群:210916599加入QQ群f501df10b4f7b45359e94127383ef8e5.gif

    展开全文
  • 在我们的日常生活中,经常会遇到各种抽奖活动,幸运大转盘、砸金蛋、刮刮卡等等,奖品的类型也丰富多样,有小小的钥匙扣,也有50寸的大彩电等等。 今天,我们就来讨论下,究竟该如何去设置活动奖品,是“量多奖小”...

    在我们的日常生活中,经常会遇到各种抽奖活动,幸运大转盘、砸金蛋、刮刮卡等等,奖品的类型也丰富多样,有小小的钥匙扣,也有50寸的大彩电等等。
    今天,我们就来讨论下,究竟该如何去设置活动奖品,是“量多奖小”?还是“量少奖大”?对活动的最终效果又有哪些影响?
    对于商家而言,无论是“幸运大转盘”,还是“砸金蛋”,前提条件都是:客户愿意参与。那么问题来了,客户在什么情况下,愿意参与抽奖?
    举两个例子:
    “最近几年的支付宝集福活动,分到的金额越来越少,去年我参与了,最后只分到2元多,今年就不打算参加了。”
    “商场举行了一场活动,完成任务后可以参与抽奖,奖品是一个价值三百元的电饭煲,只不过流程太繁琐了,我也懒得参加了。”
    每位客户在抽奖时,都会对自己付出的时间、精力等综合成本,进行一个模糊的判断,来考虑是否参加抽奖活动:
    1.当抽奖付出的综合成本大于奖品的实际价值,客户更倾向于不参加抽奖。
    2.当抽奖付出的综合成本小于或等于奖品的实际价值,客户更倾向于参加抽奖。
    所以,客户是否参加抽奖活动,最重要的因素是,付出的综合成本是否能够获得更多(或等同)的回报。
    接下来,我们来讨论一下“量多奖小”和“量少奖大”的差别,结合实际情况,选择适合自己的方式。
    一、量少奖大
    当抽奖活动的奖品价值很高的时候,往往能吸引更多不同群体的客户参加抽奖,和大家购买彩票的行为比较类似,大家都会希望自己是那个最幸运的人,所以参与的人数和关注都会比较多。
    所以,抽奖活动选择“量少奖大”,主要有以下三点效果:
    1.通过高价值的奖品,吸引用户,提高客户行动力
    商家可以利用抽奖活动的奖品“高价值”这个特点,让客户做一些比较复杂的事情,例如提高客户的分享程度,可以是评论、转载、点赞,也可以是分享好友、需要一定数量的朋友参与助力等方式。
    通过这种方式,可以让更多的客户参与进来,利用社交来进行传播,提高拉新效果。
    2.羊群效应
    当奖品的价值非常高的时候,往往能吸引更多客户的注意,提高活动的关注度。
    抽奖活动刚开始的时候,知道的人不会很多,客户会认为参与活动的人比较少,中奖几率会比较高,都会积极参与,踊跃度也会极大的提升。
    随着时间的推移,知晓活动的客户越来越多,自己也会想要试试。即使后面参与活动的人数,逐渐减少,但是活动关注度不一定会下降,大多会持续关注,到底是谁获得了大奖。
    3.高价值的奖品,会给客户带来足够的想象空间
    当抽奖活动的奖品价值非常大的时候,所带来的曝光量和话题量,是很多“量多奖小”活动所无法比拟的。
    人性中都有赌徒心理,“超级大奖”会给客户带来足够的想象空间,大家都会抱着“万一是我中了呢”的心态,去积极参与,同时引起客户的购买欲望,提高商品成交的可能性。
    不过,量少奖大这种规则,也存在一些不好的地方。
    比如很多客户会对抽奖活动的公平性和真实性提出质疑,也会怀疑中奖客户是否是内定人员、是否真正有人拿到奖品等等。
    二、量多奖小
    如果说量小奖大的效果是拉新,那么量多奖小的效果往往是促活。
    量小奖大可以吸引很多客户进行参与,快速聚集人群,实现引流效果。量多奖小则可以通过大量的活动奖品,提高客户的参与感,提高客户对于活动商家的好感度。
    1.提高客户的参与感。
    活动商品的投入成本比较低,数量比较多,客户大多能够轻松获得奖品,可以提高大家的参与感。
    2.提高客户的好感度
    抽奖活动不仅仅是吸引客户参加抽奖,也能吸引客户进行消费,即使奖品是一瓶酱油,也能让客户感受到实实在在的奖励,以此来提高客户对于活动商家的好感度。
    3.配合营销活动,促进商品成交
    因为抽奖活动的商品价值比较低,如何利用客户在抽奖的活跃时间段,开展一些有效的营销活动,就显得尤为重要了。
    例如,在客户活跃的时间段,推送差异化的促销信息,刺激客户进行消费,购买更多的商品,有时候商家从中获取的利润,会比奖品的价值都会高很多。
    不过,量多奖小也同样存在不好的地方。
    比如客户对价值比较低的商品比较厌倦,很多生活当中都用不到,导致越来越没有心情去参与,而且中奖的概率也不是100%,奖品的价值也比较低,很容易引起客户吐槽,对商家的印象也会变的不好。
    如果让客户去分享更多的渠道,提高活动的影响力,也容易让参与活动的人数变的很低,但是如果只是点赞之类的方式,对提高用户粘性基本没有什么帮助。
    三、总结
    量少奖大和量多奖小这两种方式,还是要根据商家的活动目的和实际情况,选择最适合自己的,才能带来更好的活动效果。
    当然,也会有同学说,在很多时候,都是两种方式一起混合用的,因为不管采用什么方式,最终目的都是赚钱,而不是在做一场无关紧要的测试题。

    展开全文
  • h5抽奖 每个奖品是单独的图片和所有奖品是一个圆盘两种。转动是圆盘转动
  • 开源版 抽奖小程序源码分享 这是一款抽奖小程序源码, 开源无密版本源码,可研究或升级 开源版抽奖小程序: 1、修改每人每天次数的情况下增加抽奖次数 2、添加强制分享自定义开源版 抽奖小程序源码分享 这是一款抽奖...
  • 原生js写的一个九宫格抽奖程序 (周末在家闲着也是闲着) 我写的这个抽奖是拿来整蛊我女朋友, 因为每次抽奖的结果都是同一个。。 哈哈哈哈哈哈哈哈哈哈哈哈哈 我会附上正常抽奖的的代码和固定只能抽到某一个的代码...
  • 微信抽奖小程序源码.zip 大学生课程设计 基于微信小程序的课程设计 自己大二写的课程设计
  • 源码介绍 大转盘抽奖小程序源码,测试依旧可用,无BUG,跑马灯旋转效果,非常酷炫。
  • 表:desire抽奖商品表 desire_log用户抽奖奖品表 user_desire_log用户抽奖记录表 desire_risk抽奖风控表 需求:用户奖池分为进行中奖池 和已完成奖池 当用户抽到大奖后 用户个人奖池重置 否则将继续抽奖 最后一次...
  • html5 转盘抽奖代码.7z

    2021-03-11 14:59:21
    html5 转盘抽奖代码(支持手机)用着简单 直接就可以用
  • 王者荣耀游戏皮肤抽奖盒QQ微信引流抽奖多渠道分销流量魔盒源码 后台登录的时候、验证码输入正确也提示验证码输入错误。(自行修复吧) 1.全新的UI设计,美观可比一级项目。 2.全网独有,全部开源,可做二开。 3.此...
  • 后台可以设置每个抽奖用户的抽奖次数,后台添加设置奖品,适和企业和商场搞活动,后台添加用户,才能抽奖 2:后台可以添加上传抽奖商品图片和奖品名称 3:后台可以设置每个奖品的中奖概率,中奖概率采用百分制 4:...
  • 这是一个带有抽奖概率和奖品数量的的抽奖 新手小白第一次上传,如果有什么可以改进的地方希望各位dalao们能给予我一些意见,谢谢,有什么错误或有异常的地方也请大家多多包涵。 1. 运用了随机数在0.0-1.0之间的随机...
  • 2.运行程序后,点击开始抽奖按钮时,系统会自动检测d盘根目录下是否有员工信息,若没有,则会给出相应提示 3.可根据自身需求对奖品名称和数量进行设置,奖品等级最多支持6级 4.设定完奖品信息后可查看设置的奖品...
  • js canvas抽奖大转盘,可自定义奖品数量,文字,图片,中奖概率。大转盘自适应满足pc端和移动端,图片和文字能高清显示,
  • 为您提供抽奖模拟器下载,抽奖模拟器是一款穿越火线活动抽奖模拟软件,奖品和概率设置,玩法更加真实,还可以设置概率分母,抽奖次数等信息!使用说明 奖品和概率可自己设定,格式为“奖品丨概率” 如: SSS丨...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,913
精华内容 3,965
关键字:

抽奖奖品表