年前,云豹在线直播源码更新时,我们为其添加了“大转盘功能”,该功能在直播间中,可实现“付费转动转盘获得礼物”的功能,那么该功能是如何实现的呢?
用户在使用该功能时,通过点击大转盘图标,触发该功能

$rs = array('code' => 0, 'msg' => '', 'info' => array());
$turntable_con=$this->getConfig(); //获取转盘转动次数和价格的配置
$times=0; //在线直播源码初始化转动次数
$total=0; //在线直播源码初始化价格

``

foreach($turntable_con as $k=>$v){if($v['id']==$id){ //$id是传递过来的转动id,判断穿过来的id和转盘的id进行匹配,匹配到之后系统自动获取转动次数和转动价格$times=$v['times'];$total=$v['coin'];break;}}
if($times<=0){ //在线直播源码判断转动次数配置是否正确$rs['code'] = 1002;$rs['msg'] = '信息错误';return $rs;}if($total<=0){ //判断转动价格是否配置正确$rs['code'] = 1002;$rs['msg'] = '信息错误';return $rs;}
/* 更新用户余额 消费 */
$ifok =DI()->notorm->user->where('id = ? and coin >=?', $uid,$total) //$uid是用户的唯一id->update(array('coin' => new NotORM_Literal("coin - {$total}")) );
 if(!$ifok){ //在线直播源码判断扣费是否成功$rs['code'] = 1001;$rs['msg'] = '余额不足';return $rs;}
/* 添加转盘记录 */
$model = new Model_Turntable(); //实例化
$insert2=array("uid"=>$uid,"liveuid"=>$liveuid,"showid"=>$showid,"coin"=>$total,"nums"=>$times,"addtime"=>$nowtime );
$log=$model->setlog($insert2);//转盘记录id
$domain_pack = new Domain_Backpack();
$domain = new Domain_Live(); //实例化
$giftlist=$domain->getGiftList(); //在线直播源码获取礼物列表
$configpub=getConfigPub(); //获取公共配置
$list=$this->getTurntables(); //在线直播源码获取转盘所有的奖励
$win_list=[]; //初始化中奖列表
for($i=0;$i<$times;$i++){ //循环转盘$win=rand(1,100*1000); //取一个随机数$rate=0;foreach($list as $k=>$v){
  if($v['type']!=0){ //判断如果不是空奖$rate+=$v['rate']*1000; //中奖概率*1000if($win <= $rate){ //判断如果随机数大于中奖概率证明中奖了if(isset($win_list[$v['id']])){ //在线直播源码自动判断中奖的这个奖品,之前有没有中过$win_list[$v['id']]['nums']++; //如果中过就加个数量
                    }else{ //如果没有中过$data=['id'=>$v['id'],'type'=>$v['type'],'type_val'=>$v['type_val'],'name'=>'','thumb'=>'','nums'=>'1',];if($v['type']==1){ //如果中的是钻石$data['name']=$configpub['name_coin'].$v['type_val'];$data['thumb']='/public/app/pay/coin.png';}if($v['type']==2){ //如果中的是礼物foreach($giftlist as $k2=>$v2){if($v['type_val']==$v2['id']){$data['name']=$v2['giftname'];$data['thumb']=$v2['gifticon'];}}}if($v['type']==3){ //如果中的是线下奖品$data['name']=$v['type_val'];$data['thumb']=$v['thumb'];}
                $win_list[$v['id']]=$data; //把奖品放入到中奖列表中 }break;}}
}

}

$win_list=array_values($win_list);if($win_list){$model->uplogwin($logid,1); //在线直播源码修改转盘记录状态为已中奖
}
        /* 写入中奖纪录 */foreach($win_list as $k=>$v){$data=['logid'=>$logid,'uid'=>$uid,'type'=>$v['type'],'type_val'=>$v['type_val'],'nums'=>$v['nums'],'addtime'=>$nowtime,];if($v['type']==3){/* 线下奖品 */$data['thumb']=$v['thumb'];}$model->setWin($data);
if($v['type']==1){/* 钻石奖品 添加余额 */$win_coin=$v['type_val'] * $v['nums'];DI()->notorm->user->where('id = ?', $uid)->update(array('coin' => new NotORM_Literal("coin + {$win_coin}") ) );            }
            if($v['type']==2){/* 礼物放进背包 */$domain_pack->addBackpack($uid,$v['type_val'],$v['nums']);}unset($v['type']);unset($v['type_val']);$v['thumb']=get_upload_path($v['thumb']);$win_list[$k]=$v;}
        /* 余额 */$userinfo2 =DI()->notorm->user->select('consumption,coin')->where('id = ?', $uid)->fetchOne();$rs['info'][0]['coin']=$userinfo2['coin'];$rs['info'][0]['list']=$win_list;return $rs;

在线直播源码需要经过不断的更新和优化才能更好地发展,云豹在线直播源码近期又更新了“付费短视频功能”和“直播小店功能”,有时间把部分源码放出来,和各位共同赏析。

在线直播源码中直播间内大转盘功能的实现相关推荐

  1. 视频直播源码中关于服务端直播开播推送实现

    在视频直播源码中直播app开播时需向客户推送开播消息通知用户,实现方式如下: 1.申请相应的推送服务三方,如下使用极光推送,获取相应的配置资料,并做好相应的配置 2.推送代码如下: /* 极光推送 * ...

  2. 优质在线直播源码进行直播间搭建时需要它的“帮助”才行

    在直播间搭建这方面,可能绝大多数人都存在疑惑:是不是找一开发公司购买一套优质的在线直播源码就可以了?其实源码对于开发来说,确确实实是非常重要的,而且也是最基础的一部分.但是在此基础之上,还需要更多技术 ...

  3. 通过vue实现在线直播源码的直播点赞

    我们可以发现,在线直播源码的直播间中,在右下角会有给主播点赞的按钮,点赞越多,对主播来说好处越多,那么在线直播源码是怎么实现点赞功能的呢? 实现在线直播源码观众的点赞功能. 功能描述:最后一次点赞三秒 ...

  4. 在线直播源码搭建直播平台的后端

    在线直播源码搭建直播平台的后端 后端项目初始化 1.全局安装express脚手架 额,这个应该是属于准备工作的.给忘记了,那就凑合放在这里吧,别打我,我知道错了,但我就是不改[狗头保命] cnpm i ...

  5. r相机采集的图片转化为halcon识别的图像源码_直播系统开发:关于直播源码中美颜SDK的作用...

    美颜.美型.滤镜等功能已经是拍照类APP的标配,直播系统开发中也更是离不开这些功能.拍照拍视频或者开启直播时,总希望能够加一些萌萌的兔耳朵,或者一些更复杂的3D人脸面具等特效.但是由于这类技术涉及人脸 ...

  6. php直播pk规则,直播源码中的主播PK功能是如何实现的

    直播行业为赢得更广泛用户的青睐,自然要不断开发更有趣的玩法.模式,在直播源码中加入主播PK功能就是一种提高直播互动性.激发用户好胜心的方法,一方面这种方法可以吸引更多用户观看,增加主播的曝光率,另一方 ...

  7. 电商直播系统_电商直播源码中购物车功能实现

    有一次淘宝搞活动,有姐妹跟我吐槽,说她在购物车一键下单商品,被淘宝提示最多只能一次下单50个商品,导致一些商品没有抢到--在电商直播系统中,购物车功能是非常常见且重要的基础功能,它负责暂时存放用户感兴 ...

  8. 视频直播源码中主播印象功能开发

    1.在视频直播源码中当用户或主播点击添加印象后进入主播印象界面,首先根据上个页面传值判断自己是否是主播,然后显示不同的标题 mineL = [[UILabel alloc]initWithFrame: ...

  9. 成品app直播源码中Android酷炫礼物动画实现方案(上篇)

    成品app直播源码中Android酷炫礼物动画实现方案(上篇) +在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. 从开发人员 ...

最新文章

  1. android gridview item 边框,Android实现为GridView添加边框效果
  2. boost::units模块实现使用自动前缀的简要示例
  3. 关于HttpWebRequest对象的KeepAlive属性
  4. oracle学习数据,oracle学习中的一些心得
  5. Spark Java API:Action
  6. am335x修改sd卡cd管脚
  7. 最新剑指offer刷题笔记js(含新旧俩版所有题)
  8. 鱼群算法matlab代码,人工鱼群算法MATLAB实现
  9. 移动光猫上插usb储存设备在终端系统中该如何设置才能共享里面的文件。新手,小白,求大神指点
  10. Week 2 Sequence Labelling
  11. 远程桌面无法复制粘贴传输文件解决办法
  12. 非常6+1禁播的片段,把李咏笑趴下的经典瞬间:
  13. 判断域名 转向 php,ASP,PHP,一空间多域名根据域名判断转向地址程序代码
  14. 谷歌io大会2019_Google IO 2012的前5个精选
  15. linux 显卡 1050ti,MAX-Q终于出中端卡了 GTX1050Ti MAX-Q显卡曝光
  16. Android 判断通知栏是否打开及前往设置页面
  17. 高性能网络开发框架vpp,让你的技术提高一个level
  18. 修改vscode左侧目录字体大小
  19. python中plotly subplot的用法_matplotlib 中的subplot的用法
  20. 安卓onKeyDown事件

热门文章

  1. Python爬虫贴吧内容
  2. 为什么机器人不会抢走你的工作?
  3. paper_note
  4. 采购订单管理应该使用什么样的软件比较好
  5. Udacity机器人软件工程师课程笔记(十八)-机械臂仿真控制实例(其三)-KR210机械臂反向运动学
  6. android电子标签,RFID超高频(UHF)智能柜安卓(ANDRIOD)控制器UKA02
  7. Vue3响应式API ref和reactive
  8. 超融合里的服务器怎么复制文件,整整齐齐的超融合机柜,美好!
  9. 根轨迹超前校正matlab,[自动化] 基于根轨迹法的超前校正
  10. 苹果a12_苹果扛起性价比大旗,A12+512GB,大降5000元