admin管理员组

文章数量:1657309

每当短视频软件端切换一个视频时,短视频APP软件把用户当前视频的观看时间通过接口发送到服务端。服务端接收后处理,会根据观看视频时长可领取金币奖励 。下面介绍一下短视频软件开发在服务端是如何进行实现的;
1、必要的参数验证

 if($uid<1 || $token=='' || $length<1 || $sign=='' ){
            $rs['code'] = 1001;
			$rs['msg'] = '信息错误';
			return $rs;
        }    

2、验证接口参数签名,确保一定的安全性

        $checkdata=array(
            'uid'=>$uid,
            'token'=>$token,
            'length'=>$length,
        );
        $issign=checkSign($checkdata,$sign);
        if(!$issign){
            $rs['code']=1001;
			$rs['msg']='签名错误';
			return $rs;	
        }

3、查询用户奖励记录,根据结果做相应的更新处理

$isexist=DI()->notorm->view_reward
                    ->select('*')
                    ->where('uid=?',$uid)
                    ->fetchOne();
        if($isexist){
            /* 有记录 */
            if($nowtime>$isexist['addtime']){
                /* 新一天 */
                DI()->notorm->view_reward
                    ->where('uid=?',$uid)
->update(['length'=>$length,'addtime'=>$today_end,'status'=>'0']);     
            }else{
                /* 累计 */
                DI()->notorm->view_reward
                    ->where('uid=?',$uid)
                    ->update(array('length'=> new NotORM_Literal("length + {$length} ")));
            }
        }else{
            /* 无记录 */
            DI()->notorm->view_reward
                    ->insert(['uid'=>$uid,'length'=>$length,'addtime'=>$today_end,'status'=>'0']);
        }

4、判断今天是否未奖励

        $info=DI()->notorm->view_reward
                    ->select('*')
                    ->where('uid=? and status=0',$uid)
                    ->fetchOne();
        if($info){
/* 获取配置信息,比较是否达到标准 */
            $configPri=getConfigPri();
            $agent_v_l=$configPri['agent_v_l'] * 60;
            if($info['length'] >= $agent_v_l){
                $rs=DI()->notorm->view_reward
                    ->where('uid=?',$uid)
                    ->update(['status'=>'1']);
                if(!$rs){
                    return '1';
                }    
                /* 添加奖励 */
                $agent_v_a=$configPri['agent_v_a'];
                DI()->notorm->users
                    ->where('id=?',$uid)
                    ->update(array('votes'=> new NotORM_Literal("votes + {$agent_v_a} ")));
/* 添加奖励记录 */
                $data=[
                    'action'=>'2',
                    'uid'=>$uid,
                    'votes'=>$agent_v_a,
                    'addtime'=>$nowtime,
                ];
                DI()->notorm->votes_record
                    ->insert($data);
            }
        }

短视频软件开发是基于自研的移动端短视频拍摄、视频及图片编辑、人脸识别及手势识别特效处理、视频拼接、播放等功能于一体的移动端APP。并提供一套完整的短视频解决方案,提供强大的视频上传、存储、转码、水印、分发等一站式解决方案,帮助用户实现快速集成、快速上线、功能使用更加便捷,让短视频APP变得更简单。
声明:本篇文章为小编原创文章,转载请注明出处及作者。

本文标签: 视频新功能时长金币软件