盲盒模块的流程大致如下:
在这里插入图片描述
进入盲盒抽奖页面,需要初始化直接获取一些盲盒的信息,例如:盲盒活动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,好友通过这两个参数为用户助力。
点击分享的时候还需要请求分享操作的接口,在分享的接口里,可能有不同类型的分享,这里需要做一步逻辑判断,当前为哪种分享,是邀请还是分享操作还是邀请操作,然后再请求接口创建分享。


兔子先森
332 声望14 粉丝

致力于新技术的推广与优秀技术的普及。