盲盒模块的流程大致如下:
进入盲盒抽奖页面,需要初始化直接获取一些盲盒的信息,例如:盲盒活动id
,开奖buff
等。首先需要获取盲盒活动id
,后面的所有请求都是基于盲盒活动id
进行的。
初始化获取:
- 盲盒活动id`
- 抽奖
buff
- 校验抽奖活动状态:判断当前活动是否开启
- 抽奖次数:获取当前活动的抽奖次数,当前用户剩余抽奖次数
- 任务次数:获取当前活动的任务(分享)次数,也就是剩余分享次数
- 获取分享邀请码:获取当前活动的分享邀请码,此码用于分享好友助力,好友进入分享页面后根据抽奖活动id和分享邀请码来为用户助力。一个用户一个活动只获得一个邀请码,不同的用户获取的邀请
码是不同的。 - 当前活动信息:获取当前的活动信息,返回的字段有活动
id
、名称、备注、图片等,根据这些信息,在分享的时候可以设置对应的文案、图片、id
等信息。 - 如果奖池预览是动态的,那么初始化也要请求奖池预览的信息。
抽奖buff模块
由于初始化直接请求接口了,那么这里就可以直接拿到buff
的信息,点击开buff
的时候,直接开启动画渲染buff
信息即可。
活动规则和我的奖品为弹框和跳转。
开盲盒
这里需要判断一下当前盲盒的状态,是否是可开启的,并且是否有剩余抽奖次数,如果条件都符合,那么就请求开盲盒的接口开奖,如果不符合则弹框提示“抽奖次数不足,分享可获得抽奖次数”的弹框。盲盒开奖后抽奖次数肯定会减少,所以这里开完将需要请求初始化的一些接口,比如获取抽奖次数的接口,刷新当前的开奖次数信息。
获取机会:
这里使用微信的开放能力bottom的open-type="share"
的分享功能
onShareAppMessage(e) {
if(e.from == "button") {
console.log('按钮分享');
return {
title: `点击助力“${userInfo.name}”,开盒助力,100%中奖`, //分享出去的标题
imageUrl: "图片路径", //分享时显示的图片
path: `/pages/home/index?goodsid=${xxx}`//别人点击链接进来的页面及传递的参数
}
} else {
console.log('胶囊分享');
return {
title: `盲盒大礼,参与即得!`, //分享出去的标题
imageUrl: "图片路径", //分享时显示的图片
path: `/pages/home/index`//别人点击链接进来的页面及传递的参数
}
}
}
用户点击分享的时候,需要携带分享码
以及活动id
,好友通过这两个参数为用户助力。
点击分享的时候还需要请求分享操作的接口
,在分享的接口里,可能有不同类型
的分享,这里需要做一步逻辑判断
,当前为哪种分享,是邀请还是分享操作还是邀请操作,然后再请求接口创建分享。