最近在尝试做抽奖小程序,还在做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) //更新用户数据
},
success: function(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就算中奖,这样也方便到时候判断
以上就是我大概想到的如何做抽奖小程序
希望有相关经验的大佬可以给我提一点建议,谢谢
看到别人做抽奖小程序自己也想做了,写的很棒,表示有学到东西!
解决了我的几个疑惑!!谢谢!
好强!学到了😀
刚刚学就可以达到这个水平了,太强了!