Mudu.Room.LuckyDraw 抽奖组件

获取抽奖信息

Mudu.Room.LuckyDraw.Get(function (response) {
  response = JSON.parse(response)
  if (response.status === 'y') {
    console.log('获取成功,数据为:', response.data)
  }
  if (response.status === 'n') {
    console.log('获取失败')
  }
})
  • response返回结果说明
{
  // 成功状态:y/n
  "status": "y",

  // 详细状态码
  "flag": 100,

  // 状态码说明
  "info": "获取抽奖信息成功",

  // 返回的数据
  "data": {

    // 抽奖数据
    "lucky_draw": {
      "id": 41988,
      "award_name": "iphone 一部",
      "deadline": "2017-05-16 23:48:00",
      "join_type": 2,
      "auto_open": 1,
      "lucky_count": 3,
      "address": { // 地址配置
       "guide_msg": "请填写邮寄地址", // 标题名称
       "is_show": 1, // 开关 2关闭  1开启
       "name": "请填写详细地址、收件人和联系方式", // 提示文字
      },
    },

    // 服务器当前时间戳
    "timestamp": 1494898605,

    // 服务器当前时间
    "time_str": "2017-05-16 09:36:45"
  }
}
  • flag状态码码对照表
flag info status
100 获取抽奖信息成功 y
102 无数据 n
  • lucky_draw对象说明
名称 说明 类型
id 抽奖id int
award_name 奖项名称 string
deadline 抽奖截止时间 string
join_type 参与类型,0 不允许任何观众,1 仅导入观众 ,2 仅报名观众,4 全部观众 int
auto_open 到抽奖报名截止事件是否自动开奖,0不自动开奖,1自动 int
lucky_count 中奖名额 int

抽奖报名

Mudu.Room.LuckyDraw.SignUp(
  {
    // 观众名,类型为string, 可选配置
    userName: 'xiaobaitu23',

    // 抽奖唯一凭证,类型为string,推荐使用手机号作为唯一凭证
    voucher: '13155818359',

    // 如果后台勾选了自定义凭证,请传入该参数,参数类型为:string
    // 如果后台没有勾选了自定义凭证,无需传递custom_voucher参数
    custom_voucher: '123@163.com',

    // 如果后台勾选了自定义字段以及必填,请传入该参数,参数类型为:string[],每多勾选一个自定义字段,请在数组里多添加一个值
    // 如果后台未勾选了自定义字段但是都未勾选必填,可以无需传递custom_field参数
    custom_field: ['自定义字段1','自定义字段2'],
  },

  // 回调函数,参数为response
  function (response) {
    response = JSON.parse(response)
    if (response.status === 'y') {
      console.log('抽奖报名成功')
    }
    if (response.status === 'n') {
      console.log(response.info || '抽奖报名失败')
    }
  }
)
  • 回调函数response参数示例
{
  // 成功状态
  status : 'y',

  // 详细状态码
  flag: 100,

  // 状态码说明  
  info: '参与成功!等待主办方开奖',
}
  • flag状态码码对照表
flag info status
100 参与成功!等待主办方开奖 y
101 已参与!等待主办方开奖 n
102 服务器繁忙 n
103 缺少参数 n
104 抽奖不存在,请稍后再试 n
105 请等待下次抽奖机会 n
106 您来晚了 n

获取最近一次抽奖结果信息

Mudu.Room.LuckyDraw.Result(
  // 回调函数,参数为response对象
  function (response) {
    response = JSON.parse(response)
    if (response.status === 'y') {
      console.log('获取成功,数据为:', response.data)
    }
    if (response.status === 'n') {
      console.log('获取失败')
    }
  }
)
  • 回调函数response对象示例
{
  // 成功状态
  "status": "y",

  // 详细状态码
  "flag": 100,

  // 状态码说明
  "info": "抽奖结果获取成功",

  // 返回的数据
  "data": {
    // 是否中奖
    "is_lucky": true,
    // 奖品名称
    "remark": "iphone 一部",
    // 开奖时间戳
    "uptime_timestamp": "1649834207",
    // 服务器时间戳
    "service_timestamp": "1649834207",
    // 禁止提交修改抽奖邮寄地址的时间戳
    "disable_edit_time": "1649834207",
    // 记录id
    "ld_record_id": "xxx",
    // 获奖数据
    "luckers": [
      {
        "uname": "张先生",
        "voucher": "1655564432",
        "remark": "iphone 一部"
      },
      {
        "uname": "李先生",
        "voucher": "16654335267",
        "remark": "iphone 一部"
      },
      ......
    ]
  }
}
  • flag状态码码对照表
flag info status
100 抽奖结果获取成功 y
101 查无结果 n
  • luckers数组的对象说明
名称 说明 类型
uname 观众名 string
voucher 抽奖凭证 string
remark 奖项名称 string

LuckyDraw.ConfigChange 事件

LuckyDraw.ConfigChange事件会在控制台保存抽奖配置时触发

Mudu.Room.LuckyDraw.On('LuckyDraw.ConfigChange', msg => {
    const config = JSON.parse(msg).data;
    console.log('抽奖配置变更:', config);
});
  • config格式与Mudu.Room.LuckyDraw.Get返回值中的lucky_draw格式相同

LuckyDraw.Open事件

LuckyDraw.Open事件会在后台开奖的时候被触发

Mudu.MsgBus.On(
  // 事件名,值为LuckyDraw.Open
  "LuckyDraw.Open",

  // 事件处理函数
  function (response) {
    var response = JSON.parse(response)
    console.log('开奖啦')
  })
  • response与获取开奖结果时的response格式相同

获取开奖历史列表

Mudu.Room.LuckyDraw.GetAllResult(
  // 回调函数,参数为response对象
  function (response) {
    response = JSON.parse(response)
    if (response.status === 'y') {
      console.log('获取成功,数据为:', response.data)
    }
    if (response.status === 'n') {
      console.log('获取失败')
    }
  }
)
  • 回调函数response对象示例
{
  // 获取是否成功
  "status": "y",

  // 详细状态码
  "flag": 100,

  // 状态码说明
  "info": "抽奖结果获取成功",

  // 返回的数据列表
  "data": [{
    // 是否中奖
    "is_lucky": true,
    // 奖品名称
    "remark": "奖品22222",
    // 开奖时间(兼容之前的逻辑,提供了一个格式化的时间)
    "uptime": "2020-04-16 11:47:54",
    // 开奖时间戳
    "uptime_timestamp": "1649834207",
    // 服务器时间戳
    "service_timestamp": "1649834207",
    // 禁止提交修改抽奖邮寄地址的时间戳
    "disable_edit_time": "1649834207",
    // 记录id
    "ld_record_id": "yyy",
    // 中奖者列表
    "list": [{
      // 中奖者 填写的领奖人信息 姓名
      "uname": "测试2",
      // 中奖者 填写的领奖人信息 手机号
      "voucher": "15355405542"
    }, {
      "uname": "测试1",
      "voucher": "15355405541"
    }]
  }, {
    "is_lucky": false,
    "remark": "奖品11111",
    "uptime": "2020-04-16 11:46:49",
    "uptime_timestamp": "1649834207",
    "service_timestamp": "1649834207",
    "disable_edit_time": "1649834207",
    "list": [{
      "uname": "测试2",
      "voucher": "15355405542"
    }, {
      "uname": "测试1",
      "voucher": "15355405541"
    }]
    }]
}
  • flag状态码码对照表
flag info status
100 抽奖结果获取成功 y
101 查无结果 n

获取已填写的收货地址

/**
 * 获取已填写的收货地址
 * 注意:在2022/04/27-2022/05/11时间段内用开奖时间戳参数(uptime)的请调整为抽奖记录id
 * @param {string} recordId 抽奖记录id(来自中奖结果或者历史记录)
 * @param {function} cb 回调方法,获取结果
 */
Mudu.Room.LuckyDraw.GetAddress(recordId,function (response) {
  response = JSON.parse(response)
  if (response.status === 'y') {
    console.log('获取成功,数据为:', response.data)
  }
  if (response.status === 'n') {
    console.log('获取失败')
  }
})
  • response返回结果说明
{
  // 成功状态:y/n
  "status": "y",

  // 详细状态码
  "flag": 100,

  // 状态码说明
  "info": "获取信息成功",

  // 返回的数据
   "data": {
     "address": "杭州" // 获取到的地址
   }
}

设置收货地址

/**
 * 提交收货地址
 * @param {string} address 地址内容字符串
 * 注意:在2022/04/27-2022/05/11时间段内用开奖时间戳参数(uptime)的请调整为抽奖记录id
 * @param {string} recordId 抽奖记录id(来自中奖结果或者历史记录)
 * @param {function} cb 回调方法,获取结果
 */
Mudu.Room.LuckyDraw.SetAddress(address,recordId,function (response) {
  response = JSON.parse(response)
  if (response.status === 'y') {
    console.log('提交成功')
  }
  if (response.status === 'n') {
    console.log('获取失败')
  }
})
  • response返回结果说明
{
  // 成功状态:y/n
  "status": "y",

  // 详细状态码
  "flag": 100,

  // 状态码说明
  "info": "获取信息成功",
}

results matching ""

    No results matching ""