日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么做才能给直播软件开发出“守护功能”的代码教程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在我們觀看直播時(shí),倘若遇見(jiàn)喜歡的主播,我們可以為他贈(zèng)送禮物或者開(kāi)通守護(hù),在我們操作消費(fèi)后,主播方會(huì)獲得一定收益,平臺(tái)方也能夠獲取一定抽成,為此,很多直播平臺(tái)的運(yùn)營(yíng)方都會(huì)希望通過(guò)直播軟件開(kāi)發(fā),為自己的直播平臺(tái)增加“守護(hù)功能”那么,我們?cè)撛趺醋瞿?#xff1f;教程如下:
用戶在給主播開(kāi)通守護(hù)時(shí),首先要獲取守護(hù)的各項(xiàng)信息

public function getList(){$list=DI()->notorm->guard ->select('id,name,type,coin') //獲取守護(hù)信息的id,名稱,類型,價(jià)格 ->order("orderno asc") ->fetchAll(); return $list; } 在用戶獲取這些信息之后,即可購(gòu)買(mǎi)自己想要的守護(hù) /* 購(gòu)買(mǎi)守護(hù) */ public function buyGuard($data){ $rs = array('code' => 0, 'msg' => '購(gòu)買(mǎi)成功', 'info' => array()); $uid=$data['uid']; //購(gòu)買(mǎi)守護(hù)的用戶id $liveuid=$data['liveuid']; //主播的id $guardid=$data['guardid']; //守護(hù)信息的id,用來(lái)獲取守護(hù)的信息 $guardinfo=DI()->notorm->guard ->select('*') ->where('id=?',$guardid) ->fetchOne(); if(!$guardinfo){ //使用用戶守護(hù)信息的id來(lái)搜索守護(hù)信息,進(jìn)行判斷:守護(hù)信息是否存在 $rs['code'] = 1001;$rs['msg'] = '守護(hù)信息不存在';return $rs; } $addtime=time(); $isexist=DI()->notorm->guard_users //檢索該用戶之前有沒(méi)有開(kāi)通過(guò)守護(hù)->select('*')->where('uid = ? and liveuid=?', $uid,$liveuid)->fetchOne(); if($isexist && $isexist['endtime'] > $addtime && $isexist['type'] > $guardinfo['type'] ){ //判斷本次用戶開(kāi)通的守護(hù)和之前開(kāi)通的守護(hù)是否有沖突,倘若用戶正處于更高級(jí)別的守護(hù)有效期內(nèi)(如在開(kāi)通尊貴守護(hù)的同時(shí),又開(kāi)通普通守護(hù))則本次守護(hù)無(wú)法開(kāi)通 $rs['code'] = 1004;$rs['msg'] = '已經(jīng)是尊貴守護(hù)了,不能購(gòu)買(mǎi)普通守護(hù)';return $rs; } $type='expend'; $action='buyguard'; $giftid= $guardinfo['id']; $total= $guardinfo['coin']; /* 更新用戶余額 消費(fèi) */ $isok=DI()->notorm->users->where('id = ? and coin>=?', $uid,$total)->update(array('coin' => new NotORM_Literal("coin - {$total}"),'consumption' => new NotORM_Literal("consumption + {$total}") ) ); //用戶購(gòu)買(mǎi)守護(hù)進(jìn)行扣費(fèi) if(!$isok){ //判斷本次扣費(fèi)是否成功 $rs['code'] = 1002;$rs['msg'] = '余額不足';return $rs; } DI()->notorm->users //主播在被開(kāi)通守護(hù)之后會(huì)收到相應(yīng)的收益 ->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 ); //添加購(gòu)買(mǎi)守護(hù)的記錄,證明該用戶是該主播的守護(hù)DI()->notorm->users_coinrecord->insert($insert); //更新消費(fèi)記錄 $endtime=$addtime + $guardinfo['length_time']; if($isexist){ //如果之前購(gòu)買(mǎi)過(guò)守護(hù) if($isexist['type'] == $guardinfo['type'] && $isexist['endtime'] > $addtime){ //判斷本次購(gòu)買(mǎi)的守護(hù)和之前的守護(hù)是否相同,如果相同測(cè)更新到期時(shí)間 /* 同類型未到期 只更新到期時(shí)間 */ DI()->notorm->guard_users->where('id = ? ', $isexist['id'])->update( array('endtime' => new NotORM_Literal("endtime + {$guardinfo['length_time']}"))); $rs['msg']='續(xù)費(fèi)成功'; }else{ //不同的話就更新全部信息 $data=array( 'type'=>$guardinfo['type'], 'endtime'=>$endtime, 'addtime'=>$addtime, ); DI()->notorm->guard_users->where('id = ? ', $isexist['id'])->update( $data ); } }else{ //如果之前沒(méi)有購(gòu)買(mǎi)過(guò)守護(hù) $data=array( 'uid'=>$uid, 'liveuid'=>$liveuid, 'type'=>$guardinfo['type'], 'endtime'=>$endtime, 'addtime'=>$addtime, ); DI()->notorm->guard_users //添加新的守護(hù)信息->insert( $data ); } return $rs; }

以上就是用戶為主播購(gòu)買(mǎi)守護(hù)之后,直播系統(tǒng)自動(dòng)進(jìn)行的操作,更多與直播軟件開(kāi)發(fā)相關(guān)的資訊和分析會(huì)在以后逐漸放出,敬請(qǐng)期待,需要的朋友請(qǐng)關(guān)注我。
聲明:文章為原創(chuàng)內(nèi)容,轉(zhuǎn)載請(qǐng)注明原文鏈接及作者

總結(jié)

以上是生活随笔為你收集整理的怎么做才能给直播软件开发出“守护功能”的代码教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。