微信小程序制作抽奖小程序
发布于 3 年前 作者 chuang 2791 次浏览 来自 分享

最近在尝试做抽奖小程序,还在做JS部分,还没有搞一些渲染美化之类的。

目前的已经实现了用户点击获取积分按钮获取积分,还有用积分兑换抽奖票。

我的方法是用户首先得登录,第一次登录后将在一个集合里创建一条记录存放着自带的_openid和积分credit还有抽奖票ticket,后两者都初始化为0。并保存个人的openid用于等会的检索

用户在广场页面可以点击”获取20积分“的按钮来获取积分。该按钮绑定一下事件

  bubbleCredit(){
    DrawUser.where({_openid:app.globalData.userOpenId}).update({
      data:{
        credit:_.inc(20)                //积分加20
        },
        success: function(res) {
          console.log(用户积分已经加了20)
          console.log(res)
        },
      })
    },

 

在另外一个页面可兑换抽奖票,类似的暂时也只是一个按钮。点击后不仅在用户的积分和票会对应变化,然后我分别存下了这两个个数据,方便给用户看

trade300(){
        CreditRecord.add({
            data:{
                creditChange:-300,           //积分减300
                reason:"trade300",           //变化原因
                createdAt:new Date(),        //时间
            }
        })
        let that=this
        DrawUser.where({_openid:app.globalData.userOpenId}).update({
            data:{
              credit:_.inc(-300),
              ticket:_.inc(1)                //更新用户数据
            },
            successfunction(res{
              console.log(用户成功兑换了一张抽奖票)
              DrawUser.where({_openid:app.globalData.userOpenId}).get().then(res=>{
                console.log(res.data)
                that.setData({               
                    usercredit:res.data[0].credit,    //
                    userticket:res.data[0].ticket,    //这两个是为了实时给用户看到积分和票
                })
                //console.log(that.data.usercredit)
            })
            },
          })
          
    },

接着要实现的便是抽奖了。现在我有不会的就是不知道如何随机抽奖,但是想好了怎么对集合进行操作了

    draw(){
        DrawRecord.add({
            data:{
                prize:某奖品,                 //等等写
                createdAt:new Date(),        //时间
             
            }
        })
        let that=this
        DrawUser.where({_openid:app.globalData.userOpenId}).update({
            data:{
              ticket:_.inc(-1)
            },
            success: function(res) {
              DrawUser.where({_openid:app.globalData.userOpenId}).get().then(res=>{
                console.log(res.data)
                that.setData({              
                    //dataob:res.data,
                    usercredit:res.data[0].credit,
                    userticket:res.data[0].ticket,
                })
                console.log(that.data.usercredit)
            })
            },
          })
    },

这大概就是我的想法

现在遇到的困难就是怎么随机抽奖

Math.ceil(Math.random()*10);     // 获取从 1 到 10 的随机整数,取 0 的概率极小。

想试试这个方法,抽到0就算中奖,这样也方便到时候判断

以上就是我大概想到的如何做抽奖小程序

希望有相关经验的大佬可以给我提一点建议,谢谢

4 回复

看到别人做抽奖小程序自己也想做了,写的很棒,表示有学到东西!

好强!学到了😀

解决了我的几个疑惑!!谢谢!

刚刚学就可以达到这个水平了,太强了!

回到顶部