怎么做才能给直播软件开发出“守护功能”的代码教程
在我们观看直播时,倘若遇见喜欢的主播,我们可以为他赠送礼物或者开通守护,在我们操作消费后,主播方会获得一定收益,平台方也能够获取一定抽成,为此,很多直播平台的运营方都会希望通过直播软件开发,为自己的直播平台增加“守护功能”那么,我们该怎么做呢?教程如下:
用户在给主播开通守护时,首先要获取守护的各项信息
public function getList(){$list=DI()->notorm->guard
->select('id,name,type,coin') //获取守护信息的id,名称,类型,价格
->order("orderno asc")
->fetchAll();
return $list;
}
在用户获取这些信息之后,即可购买自己想要的守护
/* 购买守护 */
public function buyGuard($data){
$rs = array('code' => 0, 'msg' => '购买成功', 'info' => array());
$uid=$data['uid']; //购买守护的用户id
$liveuid=$data['liveuid']; //主播的id
$guardid=$data['guardid']; //守护信息的id,用来获取守护的信息
$guardinfo=DI()->notorm->guard
->select('*')
->where('id=?',$guardid)
->fetchOne();
if(!$guardinfo){ //使用用户守护信息的id来搜索守护信息,进行判断:守护信息是否存在
$rs['code'] = 1001;$rs['msg'] = '守护信息不存在';return $rs;
}
$addtime=time();
$isexist=DI()->notorm->guard_users //检索该用户之前有没有开通过守护->select('*')->where('uid = ? and liveuid=?', $uid,$liveuid)->fetchOne();
if($isexist && $isexist['endtime'] > $addtime && $isexist['type'] > $guardinfo['type'] ){ //判断本次用户开通的守护和之前开通的守护是否有冲突,倘若用户正处于更高级别的守护有效期内(如在开通尊贵守护的同时,又开通普通守护)则本次守护无法开通
$rs['code'] = 1004;$rs['msg'] = '已经是尊贵守护了,不能购买普通守护';return $rs;
} $type='expend';
$action='buyguard';
$giftid= $guardinfo['id'];
$total= $guardinfo['coin'];
/* 更新用户余额 消费 */
$isok=DI()->notorm->users->where('id = ? and coin>=?', $uid,$total)->update(array('coin' => new NotORM_Literal("coin - {$total}"),'consumption' => new NotORM_Literal("consumption + {$total}") ) ); //用户购买守护进行扣费
if(!$isok){ //判断本次扣费是否成功
$rs['code'] = 1002;$rs['msg'] = '余额不足';return $rs;
}
DI()->notorm->users //主播在被开通守护之后会收到相应的收益
->where('id = ?', $liveuid)
->update( array('votes' => new NotORM_Literal("votes + {$total}"),'votestotal' => new NotORM_Literal("votestotal + {$total}") ));
$insert=array("type"=>$type,"action"=>$action,"uid"=>$uid,"touid"=>$liveuid,"giftid"=>$giftid,"giftcount"=>$total,"totalcoin"=>$total,"addtime"=>$addtime ); //添加购买守护的记录,证明该用户是该主播的守护DI()->notorm->users_coinrecord->insert($insert); //更新消费记录
$endtime=$addtime + $guardinfo['length_time'];
if($isexist){ //如果之前购买过守护
if($isexist['type'] == $guardinfo['type'] && $isexist['endtime'] > $addtime){ //判断本次购买的守护和之前的守护是否相同,如果相同测更新到期时间
/* 同类型未到期 只更新到期时间 */
DI()->notorm->guard_users->where('id = ? ', $isexist['id'])->update( array('endtime' => new NotORM_Literal("endtime + {$guardinfo['length_time']}")));
$rs['msg']='续费成功';
}else{ //不同的话就更新全部信息
$data=array(
'type'=>$guardinfo['type'],
'endtime'=>$endtime,
'addtime'=>$addtime,
);
DI()->notorm->guard_users->where('id = ? ', $isexist['id'])->update( $data );
}
}else{ //如果之前没有购买过守护
$data=array(
'uid'=>$uid,
'liveuid'=>$liveuid,
'type'=>$guardinfo['type'],
'endtime'=>$endtime,
'addtime'=>$addtime,
);
DI()->notorm->guard_users //添加新的守护信息->insert( $data );
}
return $rs;
}
以上就是用户为主播购买守护之后,直播系统自动进行的操作,更多与直播软件开发相关的资讯和分析会在以后逐渐放出,敬请期待,需要的朋友请关注我。
声明:文章为原创内容,转载请注明原文链接及作者
怎么做才能给直播软件开发出“守护功能”的代码教程相关推荐
- 直播软件开发,独特功能简介,“直播+”成标配
直播软件开发对于一家直播平台来讲算是核心的内容,纵观当今直播行业之中几家比较有名的直播平台,都是有着比较先进精细的直播开发.那么直播源码都能搭建出什么样的功能呢?以**直播为例,简单说一些基本的方面; ...
- 在视频直播软件开发中,这样做才能实现svga格式礼物动画
在线直播源码中,礼物功能的开发是必不可少的,它不但可以作为用户对主播的喜爱度的评判标准,还是直播平台变现的方式之一,那么在直播源码中,svga格式礼物动画是如何实现的呢?以云豹的金山demo为例,实现 ...
- 软件开发技术文档_你知道,直播软件开发需要做的准备工作有哪些?
随着互联网技术的发展和智能手机的迅速普及,直播软件市场需求正在增长.那么直播平台的发展如何?在软件开发过程中应注意什么?直播软件开发需要做是准备工作有哪些? 1.直播软件开发方向: 一般而言,开发直播 ...
- 你了解吗?一对一直播软件开发它们才能实现音视频传播
语音聊天软件是当代人民日常生活中最常使用的软件之一,无论是一对一即时聊天的QQ.微信.还是陌陌等支持陌生人语音社交连线的软件,又或者是直播.聊天室等多人聊天软件,你总归会使过其中一种或几种. 以一对一 ...
- 如何实现悬浮窗,看直播软件开发怎么做
使用阿里云直播sdk demo进行直播软件开发,支持直播,点播 视频直播与悬浮窗小窗口无缝衔接切换(一般拉流格式 rtmp m3u8等) 直播点播提示,监听,各种状态返回以及各种提示 视频播放基础库 ...
- android记账软件开发源代码_如何开发直播软件?直播软件开发的具体流程有哪些?...
知乎视频 随着互联网的发展和智能手机的迅速普及,对直播软件的需求也在增加.开发直播软件和直播app开发都属于直播软件开发的服务.那么直播平台的发展过程是怎样的呢?在软件开发期间需要注意什么?小编来说 ...
- 直播软件开发互动直播之WebRTC服务开源技术选型
直播软件开发互动直播之WebRTC服务开源技术选型 1 直播基础知识 最原始的直播系统其实并没有想象的那么复杂,无非就是主播端将音视频数据推送到服务器,观众端则从服务器拉取数据播放. 1.1 基本常识 ...
- 开发视频直播软件需要注重哪些功能?
视频直播给人们的日常生活带来了极大的改变,因此,开发一款视频直播类APP软件,设计的基础是用户的需求,前沿市场信息等.那么,开发视频直播软件需要注重哪些功能呢?下面就跟着摩杜云小杜一起来看看吧! 开发 ...
- ios查看帧率的软件_程序员必看!直播软件开发弱网下保障高清流畅推流的方法...
通常情况下程序员在开发直播软件时,优化卡顿和延迟是比较多的,只要是优化欠佳,就会导致前端APP运行出问题,为了帮助程序员在开发过程中能更加合理有效的优化,小编在这里从开发的层面简要介绍一下影响直播体验 ...
最新文章
- 技巧:Go 结构体如何转换成 map[string]interface{}
- jbutton 数组创建 java_java-将JButton数组添加到JPanel(按钮不可见)
- JS快速获取图片宽高的方法
- Python开发【第十一篇】:JavaScript
- [linx] ubuntu网络重启命令
- web开发环境_Web开发人员的开发环境
- 最优化学习笔记(一)——牛顿法(一维搜索方法)
- 用 npm script 实现构建流水线
- [Contest]2017 ACM/ICPC Asia Regional Shenyang Online(01 03 07 09 10 11待补)
- 对比Excel学Python(二)数据可视化
- 求一个特定函数在定义区间上的值是否都为素数
- 解决办法:无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
- 《女士品茶》读书笔记
- win10计算机管理看不见蓝牙,win10蓝牙不见了的解决方法
- wifi连接一段时间才能上网_Win7连接Wifi一段时间后就掉线的解决方法
- [听风]TBC单体插件头像显示ShadowedUnitFrames
- 把C盘正好分成100G的数值
- 5.2 Lasso回归分析
- matlab奇异矩阵高效求逆,奇异矩阵求逆问题!!!
- Kafka的消息自动提交和手动提交
热门文章
- 汽车之家html5,【图】汽车之家口碑排行(8):中大型轿车篇_汽车之家
- Java处理数据成为树状结构
- Cisco 胖AP简单配置
- 等级保护2.0基础要求 具体测评方法
- 软件测试常见的智力题
- DeepMind联合UCL,推出2021强化学习最新课程!
- Java Ide配置tomcat和maven
- 数据可视化——Pyecharts
- Could not locate zlibwapi.dll. Please make sure it is in your library path!问题解决
- Unity解包提取资源/AssetStudio的简单使用