生活随笔
收集整理的這篇文章主要介紹了
怎么做才能给直播软件开发出“守护功能”的代码教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在我們觀看直播時,倘若遇見喜歡的主播,我們可以為他贈送禮物或者開通守護,在我們操作消費后,主播方會獲得一定收益,平臺方也能夠獲取一定抽成,為此,很多直播平臺的運營方都會希望通過直播軟件開發,為自己的直播平臺增加“守護功能”那么,我們該怎么做呢?教程如下:
用戶在給主播開通守護時,首先要獲取守護的各項信息
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;
}
以上就是用戶為主播購買守護之后,直播系統自動進行的操作,更多與直播軟件開發相關的資訊和分析會在以后逐漸放出,敬請期待,需要的朋友請關注我。
聲明:文章為原創內容,轉載請注明原文鏈接及作者
總結
以上是生活随笔為你收集整理的怎么做才能给直播软件开发出“守护功能”的代码教程的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。