操作步骤
1. 随机抽取可以用微信开放文档提供的 开发者资源 来查找,进行随机的查询抽取,抽取的条件是“性别,学校和生命值必须大于0”。
// 随机抽取db.collection('body_girl_yun').aggregate().match({sex: 1,location: parseInt(that.data.indexBody3),life: _.gt(0) // 生命值要大于0}).sample({ size: 1}).end()
2. 抽到则处理,抽不到则提示处理时要把生命值减1。
// 数据库没有这个学校的男生的纸条就if(res.list.length == 0){return wx.showToast({title: '此学校暂无纸条',icon: 'error',mask: true})}// 抽取到了纸条,则进行操作// 生命值减一, 生命值为0的不会抽出来db.collection('body_girl_yun').where({_id: res.list[0]._id}).update({data: {life: parseInt(res.list[0].life) - 1}}).then( resultUpdate => {wx.showToast({title: '抽取成功',icon: 'success',mask: true})}).catch(err=>{wx.showToast({title: err,icon: 'error'})})
3. 把数据写到 body_girl_yun_put 表中。
// 并将数据添加到 body_girl_yun_putdb.collection('body_girl_yun_put').add({data: {picture: res.list[0].picture,des: res.list[0].des,location: res.list[0].location,sex: res.list[0].sex,weChatId: res.list[0].weChatId,openId: app.globalData.openId,time: new Date().getTime()}}).then( resultAdd => {}).catch(err=>{wx.showToast({title: err,icon: 'error'})})})
4. 数据存入成功则跳转页面 history。
wx.switchTab({url: '/pages/history/history',success: res=>{wx.showToast({title: '抽出纸条成功',icon: 'success'})},fail: err => {}})that.setData({outBodyMask: false})
5. 加上提示框与 loading 效果,wx.showLoading, wx.hideLoading(), 并添加了一些基本的错误处理。
// 确认抽取一张男生纸条sureOutBodyBtn: function(){const that = thiswx.showLoading({title: '随机抽取中',mask: true})// 随机抽取db.collection('body_girl_yun').aggregate().match({sex: 1,location: parseInt(that.data.indexBody3),life: _.gt(0) // 生命值要大于0}).sample({ size: 1}).end().then(res => {wx.hideLoading()// 数据库没有这个学校的男生的纸条就if(res.list.length == 0){return wx.showToast({title: '此学校暂无纸条',icon: 'error',mask: true})}console.log(res)// 生命值减一, 生命值为0的不会抽出来db.collection('body_girl_yun').where({_id: res.list[0]._id}).update({data: {life: parseInt(res.list[0].life) - 1}}).then( resultUpdate => {wx.showToast({title: '抽取成功',icon: 'success',mask: true})}).catch(err=>{wx.showToast({title: err,icon: 'error'})})// 并将数据添加到 body_girl_yun_putdb.collection('body_girl_yun_put').add({data: {picture: res.list[0].picture,des: res.list[0].des,location: res.list[0].location,sex: res.list[0].sex,weChatId: res.list[0].weChatId,openId: app.globalData.openId,time: new Date().getTime()}}).then( resultAdd => {wx.switchTab({url: '/pages/history/history',success: res=>{wx.showToast({title: '抽出纸条成功',icon: 'success'})},fail: err => {wx.showToast({title: err,icon: 'error'})}})// console.log("数据add"resultAdd)that.setData({outBodyMask: false})}).catch(err=>{wx.showToast({title: err,icon: 'error'})})})}