在线视频分享网站的设计与实现

2021-01-28 08:49王宇哲杨阳杨立伦顾鑫林志芳
消费导刊 2020年35期
关键词:充值后台对象

王宇哲 杨阳 杨立伦 顾鑫 林志芳

武汉东湖学院计算机科学学院

前言:现阶段,随着短视频的兴起,视频行业已成为生活中必不可少的一部分。例如时下热度较高的抖音短视频,人们总是可以在其中找到属于自己的一份快乐。而作为互联网的一部分,视频分享就显得尤为重要,本网站将奖励制和积分制融合为激励制,用户可以在该平台上分享资源获取积分,也可以使用积分查看其他用户分享的资源,能在增加资源互动的同时又鼓励创作。并且每个资源都附带评论系统,形成一个视频分享社区。

一、系统开发技术

(一)前端

界面采用jsp,结合JQuery第三方js库,bootstrap响应式布局框架,AJAX异步请求,JAVACV部分技术,并结合MySQL、Druid连接池、腾讯云短信API等技术。

(二)后台

使用java作为开发语言,SSM为基本的开发架构,通过Maven对项目依赖包进行管理,Git控制开发进度与更新。

二、数据库设计

结合功能分析用例为三个:视频资源,用户,评论。

设计如下:

资源表(资源id,图片路径,视频路径,价格,用户id,资源名,上传时间)。

用户表(用户id,头像路径,用户名,密码,电话,余额,权限)。

评论表(评论id,资源id,用户id,评论内容,评论时间)。

物理设计:

Resource(rid,imgurl,videourl,price,ui d,rname,uptime)。

User(uid,imgurl,username,password,tel,money,level)。

Chat(cid,rid,uid,words,time)。

三、系统接口设计

(一)用户/user:

1.登录操作/ login (user,request)。

2.注册操作/ reg(user,验证码,request,resources)。

3.发送验证码/sendyzm(user,response)。

4.注册验证/validate(user,手机验证码,随机数,response)。

5.根据用户名获取用户json /getbyusername(username)。

6.分页查询用户/getUserByPage(pagenow,pagesize)。

7.用户注销/logout(request)。

(二)资源/resource

1.分页获取资源/getResourceByPag e。

2.获取所有资源/getAllResource。

3.上传资源/upload。

4.播放资源/play。

四、系统功能模块设计与实现

(一)用户登录注册

用户观看视频必须先登录,并消耗视频所需要的积分。用户注册时需要经过两个验证(图形验证码,短信验证码),图形验证码Vcode经过后台生成后直接以IO流传递给前端显示到IMG标签中。

为了防止恶意小号注册,注册需要使用验证码,绑定手机号(后台生成验证码之后,通过调用腾讯短信api接口,讲验证码发送至用户手机)。设置密码(password)之后下次登录使用手机号作为账号(username)。

本研究根据广西地不容转录组测序的结果开发SSR引物,在此基础上对广西地不容5个居群的63个样品进行遗传分析,以揭示广西地不容在物种水平和居群水平的遗传多样性以及居群间的遗传关系,为其野生资源的保护和分子标记辅助育种等方面提供理论依据。

(二)获取视频列表

通过AJAX异步请求技术,根据页码请求数据库中视频的JSON数据,然后通过jquery将数据渲染成一个个html标签,追加到指定的div中。

每页设置显示20个视频,用户下滑到底之后会出现继续加载按钮,点击按钮,即可在次发送AJAX请求,页码自加1页即可。

(三)上传视频

用户登陆之后,会在session中存储当前用户User对象,主页会从session域中获取当前用户对象,如果存在该对象,则右上角会出现分享视频,以及个人中心的按钮。

用户点击上传视频之后,会跳转到上传视频界面。会提示用户选择视频,设置视频的标题以及查看所需要的积分。

用户点击开始上传后,服务器通过HttpServletRequest对象获取到输入流,后台生成UUID全球唯一识别码,和用户设置的视频标题(title),价格(price),文件路径(path)一并存入MySQL数据库。

(四)视频预览图生成

如果主页预览的都是单个完整视频的话,会极大地占用服务器带宽,这个时候就要求上传视频的时候,自动生成缩略图(imgurl),会和视频在数据库中共同存储。

(五)用户观看视频

想要查看其他用户上传的视频时,需要消耗相应的积分。扣除成功后,会在该用户的消费记录中新增本视频的ID以判断该用户已经购买本视频,可以查看。

同时这样也防止了部分用户恶意使用工具跳过支付。因为每次查看视频就会检测当前登录用户User的消费记录是否包含该视频。

(六)用户购买视频

用户购买视频之后,调用减少积分接口(buyVideo),将当前用户的用户id(uid),当前视频的id(vid)传递到后台。后台解析视频的视频主(uid),价格(price)。给当前用户扣除相应的积分,给视频主增加积分的90%,10%归平台,最后在用户的购买记录上增加购买视频的id即可完成一次视频的购买。

(七)用户充值积分

新用户初始会赠送10积分(1元),用户使用完之后可以进行积分充值。点击右上角充值中心之后,会跳转到充值界面,选择相应的充值套餐,会跳转到支付宝收款接口,付款后会根据当前记录用户id(uid)增加相应的积分。

(八)用户举报视频

所有登录用户都可以对某个视频进行举报,举报分类存在服务器本地json文件中,用户举报时,会记录举报用户id(uid),视频id(vid),以及违规类型(wtype)。后台管理员可以在违规处理页面对举报视频进行违规筛查。

(九)用户退出登录

用户点击退出登录时,后台直接从session中删除当前用户的对象即可,如不手动退出,用户也会在半个小时后自动退出(session生命周期半个小时)。

(十)用户评论视频

登录用户查看视频之后,进入视频界面,下方有评论区。视频的评论单独作为一个数据库表(chat)。通过视频id(vid)和评论id(cid)进行绑定。一个视频可以有多个评论,同时记录评论用户id。

五、系统架构分析

本系统基于使用SSM(Spring+Spring MVC+MyBatis)作为基础架构。而其中的Spring-MVC又是经典的MVC(模型-视图-控制器)模型。这两个框架能够极大地提高开发的效率和维护能力。

其中Spring-MVC的作用如下:

Model(模型)表示应用程序核心(数据库实体类对象)。

View(视图)显示数据,也就是web前端页面。

Controller(控制器)处理输入(负责接口的跳转)。

MyBatis则可以将sql语句写在XML文件中,便于统一管理和优化,解除sql和程序代码的耦合。并且提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建。还可以提供XML标签,支持编写动态sql。

而Spring-core核心提供了通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。还可以利用AOP(面向切面编程)特性,很容易实现事务,日志,权限的控制。

六、系统优点

系统基于JAVA开发,可以在各类服务器环境上运行,只需要安装java虚拟机即可,个人站长能够轻松地完成服务器的后台配置。

本视频网站的视频全部都是由用户自行上传,没有官方发布的公共视频,用户可以进行自行交易。

网站的视频分类丰富,涵盖各类短视频,基本满足各类用户的需求。

维护成本低,只需要对违规的视频,用户交易问题进行管理即可。用户交易时可以提取少量的积分即可盈利。也就是成本只有服务器的维护,以及少量人力费用即可运营。

网站不经营官方视频,不会引进需要版权的电影电视剧,主要交易的是个人制作的短视频,以及视频素材等等,所以不会有版权纠纷的问题。如果涉及到侵权,维护人员对举报视频进行及时处理下架即可。

猜你喜欢
充值后台对象
神秘来电
奇妙的智商充值店
攻略对象的心思好难猜
后台暗恋
充值
基于熵的快速扫描法的FNEA初始对象的生成方法
前台、后台精彩花絮停不了
基于NFC的ETC卡空中充值服务应用系统实现
区间对象族的可镇定性分析
以“后台”的名义节省电池用量