在我们观看直播时,倘若遇见喜欢的主播,我们可以为他赠送礼物或者开通守护,在我们操作消费后,主播方会获得一定收益,平台方也能够获取一定抽成,为此,很多直播平台的运营方都会希望通过直播软件开发,为自己的直播平台增加“守护功能”那么,我们该怎么做呢?教程如下:
用户在给主播开通守护时,首先要获取守护的各项信息

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;
}

以上就是用户为主播购买守护之后,直播系统自动进行的操作,更多与直播软件开发相关的资讯和分析会在以后逐渐放出,敬请期待,需要的朋友请关注我。
声明:文章为原创内容,转载请注明原文链接及作者

怎么做才能给直播软件开发出“守护功能”的代码教程相关推荐

  1. 直播软件开发,独特功能简介,“直播+”成标配

    直播软件开发对于一家直播平台来讲算是核心的内容,纵观当今直播行业之中几家比较有名的直播平台,都是有着比较先进精细的直播开发.那么直播源码都能搭建出什么样的功能呢?以**直播为例,简单说一些基本的方面; ...

  2. 在视频直播软件开发中,这样做才能实现svga格式礼物动画

    在线直播源码中,礼物功能的开发是必不可少的,它不但可以作为用户对主播的喜爱度的评判标准,还是直播平台变现的方式之一,那么在直播源码中,svga格式礼物动画是如何实现的呢?以云豹的金山demo为例,实现 ...

  3. 软件开发技术文档_你知道,直播软件开发需要做的准备工作有哪些?

    随着互联网技术的发展和智能手机的迅速普及,直播软件市场需求正在增长.那么直播平台的发展如何?在软件开发过程中应注意什么?直播软件开发需要做是准备工作有哪些? 1.直播软件开发方向: 一般而言,开发直播 ...

  4. 你了解吗?一对一直播软件开发它们才能实现音视频传播

    语音聊天软件是当代人民日常生活中最常使用的软件之一,无论是一对一即时聊天的QQ.微信.还是陌陌等支持陌生人语音社交连线的软件,又或者是直播.聊天室等多人聊天软件,你总归会使过其中一种或几种. 以一对一 ...

  5. 如何实现悬浮窗,看直播软件开发怎么做

    使用阿里云直播sdk demo进行直播软件开发,支持直播,点播 视频直播与悬浮窗小窗口无缝衔接切换(一般拉流格式 rtmp m3u8等) 直播点播提示,监听,各种状态返回以及各种提示 视频播放基础库 ...

  6. android记账软件开发源代码_如何开发直播软件?直播软件开发的具体流程有哪些?...

    知乎视频​ 随着互联网的发展和智能手机的迅速普及,对直播软件的需求也在增加.开发直播软件和直播app开发都属于直播软件开发的服务.那么直播平台的发展过程是怎样的呢?在软件开发期间需要注意什么?小编来说 ...

  7. 直播软件开发互动直播之WebRTC服务开源技术选型

    直播软件开发互动直播之WebRTC服务开源技术选型 1 直播基础知识 最原始的直播系统其实并没有想象的那么复杂,无非就是主播端将音视频数据推送到服务器,观众端则从服务器拉取数据播放. 1.1 基本常识 ...

  8. 开发视频直播软件需要注重哪些功能?

    视频直播给人们的日常生活带来了极大的改变,因此,开发一款视频直播类APP软件,设计的基础是用户的需求,前沿市场信息等.那么,开发视频直播软件需要注重哪些功能呢?下面就跟着摩杜云小杜一起来看看吧! 开发 ...

  9. ios查看帧率的软件_程序员必看!直播软件开发弱网下保障高清流畅推流的方法...

    通常情况下程序员在开发直播软件时,优化卡顿和延迟是比较多的,只要是优化欠佳,就会导致前端APP运行出问题,为了帮助程序员在开发过程中能更加合理有效的优化,小编在这里从开发的层面简要介绍一下影响直播体验 ...

最新文章

  1. 技巧:Go 结构体如何转换成 map[string]interface{}
  2. jbutton 数组创建 java_java-将JButton数组添加到JPanel(按钮不可见)
  3. JS快速获取图片宽高的方法
  4. Python开发【第十一篇】:JavaScript
  5. [linx] ubuntu网络重启命令
  6. web开发环境_Web开发人员的开发环境
  7. 最优化学习笔记(一)——牛顿法(一维搜索方法)
  8. 用 npm script 实现构建流水线
  9. [Contest]2017 ACM/ICPC Asia Regional Shenyang Online(01 03 07 09 10 11待补)
  10. 对比Excel学Python(二)数据可视化
  11. 求一个特定函数在定义区间上的值是否都为素数
  12. 解决办法:无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
  13. 《女士品茶》读书笔记
  14. win10计算机管理看不见蓝牙,win10蓝牙不见了的解决方法
  15. wifi连接一段时间才能上网_Win7连接Wifi一段时间后就掉线的解决方法
  16. [听风]TBC单体插件头像显示ShadowedUnitFrames
  17. 把C盘正好分成100G的数值
  18. 5.2 Lasso回归分析
  19. matlab奇异矩阵高效求逆,奇异矩阵求逆问题!!!
  20. Kafka的消息自动提交和手动提交

热门文章

  1. 汽车之家html5,【图】汽车之家口碑排行(8):中大型轿车篇_汽车之家
  2. Java处理数据成为树状结构
  3. Cisco 胖AP简单配置
  4. 等级保护2.0基础要求 具体测评方法
  5. 软件测试常见的智力题
  6. DeepMind联合UCL,推出2021强化学习最新课程!
  7. Java Ide配置tomcat和maven
  8. 数据可视化——Pyecharts
  9. Could not locate zlibwapi.dll. Please make sure it is in your library path!问题解决
  10. Unity解包提取资源/AssetStudio的简单使用