基于小程序的KTV点播系统设计与实现_第1页
基于小程序的KTV点播系统设计与实现_第2页
基于小程序的KTV点播系统设计与实现_第3页
基于小程序的KTV点播系统设计与实现_第4页
基于小程序的KTV点播系统设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第1章绪论1.1研究目的和意义计算机网络技术的应用越来越广泛,并逐渐渗透到各个领域,网络化和信息化的发展也促进了各种软件的快速发展,为人类生产生活提供了便利。随着微信的流行,微信小程序日渐的替代着我们所用的APP。随着生活节奏的加快,每个人都有自己的压力,因此,娱乐成为缓解压力的一种方式。结合相关实践调查可以发现,去KTV唱歌跳舞的人数在与日俱增,在这种背景之下,也使得KTV点播系统存在着较大的发展空间。但从客观上讲,该系统的发展存在一些用户体验感差,技术落后、页面杂乱等问题,也制约了KTV的发展,经过对KTV点播系统的需求分析后,将根据微信小程序来对KTV点播系统进行设计。该系统将有利于加强用户的体验,不仅是音乐的体验,还增强了用户分享体验,充分发挥点歌音乐系统的效果。而小程序就有这个方便快捷的特点。因此,设计一个基于小程序的KTV点播系统是很有前途的。1.2国内外研究现状微信不再只是一款社交应用,它是目前中国乃至全球唯一的“超级APP”。2016年,微信推出了全新的微信小程序,以满足不同领域的用户需求,并开放了内容分发功能。随着微信小程序的发布,它凭借其强大的生态支持和出色的传播能力,越来越多的应用开发者开始采用它来取代原生应用,以便更快地发布自己的应用。目前KTV点播系统的技术实现主要有PC端软件和手机端APP两种形式,用户可以通过移动端或PC端进行视频点播系统进行点唱,视频点播技术运用了数据库技术、网络技术以及多媒体REF_Ref#b6o\r\h[1]。为了增强用户的互动体验,一些KTV点播系统还会加入互动功能,通过手机端或平板电脑扫码进入线上虚拟包厢即可像线下点歌屏一样进行远程切歌、送祝福等操作,极大地提高了KTV场所的运营效率,也提升了用户的消费体验REF_Ref729\r\h[2]。一些KTV点播系统还加入了精准的个性化推荐,不仅可以帮助用户解决音乐获取及过滤问题,还可以帮助音乐内容服务商获取更多流量,增加收入REF_Ref676\r\h[3]。总的来说,基于小程序的KTV点播系统应用研究呈现出多元化和创新化的趋势,不断为用户带来新的音乐体验和社交互动。但是,也面临着技术、版权、商业模式等多方面的挑战和问题,需要进一步研究和解决。未来,随着技术的发展和用户需求的变化,基于小程序的KTV点播系统的应用研究将会更加广泛和深入。

第2章相关理论和技术2.1Java简介Java是一种面向对象的编程语言,用于编写跨平台应用程序。Java技术因其出色的普及性、高效率、可重复使用的平台、安全的特性而备受欢迎,它已经被广泛地应用到各种领域,包括个人电脑、数字化设备、游戏设备、科学仪器、智能手机和互联网,并且在世界各地都有专门的开发者社群。Java是面向对象编程语言Java(以下简称Java语言)和SumMicrosystems推出的Java平台的总称。Java最初被称为Oak,于1991年开发用于消费电子产品中的嵌入式芯片。它于1995年更名为Java,并针对Internet应用程序开发进行了重新设计。客观上讲,借助Java实现的HotJava浏览器可以将其以下几种优势充分的展现了出来,一是跨平台;二是动态联网;三是互联网计算。从另一个角度来看,该技术也呈现出日益完善的态势,这是因为其本身发展速度就很快,同时也在很大程度上影响着C++和其他语言。无论是针对全球云计算还是移动互联网来说,该技术均存在着较大的潜能。2.2MySQL目前MySQL属于Oracle公司,MySQL全称为MicrosoftSQLServerrelationaldatabase。MySQL数据库可以运行在包括Solaris、MacOS、FreeBSD和Windows在内的多种操作系统上,数据处理是其较为明显的功能,为数据保存提供与之相匹配的空间是其关键功能之一。对于数据库而言,其一般情况下是借助表/索引等相关对象来完成存储的。对MySQL数据库进行分析后可以发现,其属于C/S模型,换句话来说就是客户端-服务器模型,该模型可以通过以下几个方面与服务器相连接,一是帐号;二是密码,对数据库的操作(CRUD:增删改查)能够连接成功后实施。2.3B/S模式对于客户端应用程序而言,其是基于系统之下所设定的模块,该模块默认用户和操作系统数据交互。举例而言,服务器管理员通常会对多资源系统进行全权负责。例如SERVERMANAGERS管理一个用户信息系统数据库,服务器级别的操作系统管理器还具备一个较为明显的功能,即倘若在一段时间内若干个客户端一起对相关资源进行访问时,那么这种情况可以被叫作饥饿,我们所开发出来的服务器管理器能够实现对公共资源的全面管理。对于中间组织者而言,在应用程序以及数据库之间实施交互的过程中,能够更加有效地和以下几个方面配合使用,一是客户端应用程序;二是服务器管理器。这里值得一提的是,B/S模型实际上指的是MIS系统平台,从理论的角度出发,该模型属于一个三层系统管理平台,其中,我们刚刚描述的B/S模型是单层服务器管理,分为一个服务器或者是若干个服务器,积极构建与之相匹配的三层系统管理平台,从而让用户和服务器之间达到信息输送的目的。对三层系统管理平台进行深度剖析后可以发现,接口部位属于该平台的首层,常规运作的应用均会和浏览器集成,在整个环节中,HTML文件能够让原本过于单调的程序演变成多种形式的网页。随着科技的发展,人们可以利用网络来实现更多的交流,从而更好地传递和分享信息。例如,可以通过网络填写表格、发送文字消息,甚至可以直接向服务器发出消息,从而更加便捷地完成各种任务。第二层是服务器的核心部分,它会对用户的请求做出反馈。这些请求会被编写成一系列的网页代码,其中包括了用户希望看到的内容。这些代码发送给用户以帮助他们理解和使用这些请求。当用户发起第一个请求时,WEB服务器就不得不面对一系列极其复杂的挑战,其中最重要的一项就是处理数据库,以便满足用户的需求。第三层是数据库服务器,其管理类似于上面提到的基于并行任务协调的B/S模型。

10869第3章系统分析3.1可行性分析3.1.1技术可行性本次开发是基于小程序的KTV点播系统开发,所使用的语言是Java,在开发过程中主要基于SSM框架,并且整个开发思路采用MVC设计模式,弹性管理代码,这些技术已经比较成熟,并且广泛的运用于类似系统的开发中,有大量案例可借鉴。因此在技术上不存在太大的问题。3.1.2经济可行性从经济角度来看,我所借鉴的论文相关文献都是免费获取的,运用的开发工具是网上可下载到的,开发成本很低。但该系统建成后,开发的KTV点播系统前景广阔,经济价值高,这也是我在开发系统之前考虑的问题。所以,我认为设计开发这KTV点播系统在经济上是可行的。3.1.3操作可行性通常情况下,当把系统交付给用户之后,用户能够在第一时间动手操作,究其原因是因为该系统中的很多功能均是基于图形界面之下才得以实现的,在输入相关数据的时候也较为灵敏,管理员以及用户检查他们的信息。总之,整个系统要简单明了,易于操作,在此基础上结合具体用户赋予其不同的使用权限。在这种背景之下,可以确定这个开发是可操作的。3.1.4法律可行性根据法律规定,开发中使用的数据必须是合法的,开发过程中不得有侵犯他人知识产权和著作权的行为。要保证开发过程中全部来自自己,原始劳动,使其不涉及任何法律责任。3.2需求分析通过对系统功能的详细分析,可以获得有关如何满足软件功能的具体指标,从而使得我的设计更加高效、合理。通过进行有效的分析,可以有效地避免早期错误,从而大幅提升软件的生产效率、降低开发成本,并且提升软件的质量。3.2.1功能需求分析本系统研究的是KTV点播系统,其角色是要分为用户、管理员两个角色。管理员拥有本系统的全部权限,对用户、酒水分类、酒水信息、歌曲类别、明星信息等功能进行增删改查。用户可以登录后查看歌曲信息和明星信息内容,该KTV点播系统预期有如下功能:用户登录后显示歌曲的信息,并且可以查看歌曲类别。(2)进入明星信息中,可以查看明星简介、歌曲类别。(3)实现对KTV点播系统,智能的显示用户所需要的歌曲类别,并推荐给适合的用户。用户用例图如图3.1所示。个人信息维护个人信息维护食品订单支付管理酒水订单歌曲类别点歌歌曲名称点歌明星信息点歌我的收藏管理用户图3.1用户用例图管理员用例图如图3.2所示。

明星信息管理明星信息管理个人中心管理用户管理歌曲类别管理食品信息管理酒水信息管理歌曲信息管理管理员图3.2管理员用例图3.2.2非功能需求分析本文设计了一个KTV点播系统,该系统为用户存储了以下几种信息:一种为歌曲信息;另一种为基本操作系统信息,旨在增强系统数据的完整性以及可靠性,无论是针对用户识别模块还是权限管理模块来说,均对二者实施了专门设置,目的是实现对访问系统用户的有效识别。对于Web管理系统来说,当用户通过相关验证之后均会结合其具体身份布设与之相匹配的权限,这样用户就只能在规定的范围内来对相关数据进行访问。显然通过这种方式,能够让数据的完整性以及安全性得到有效强化,同时还能在发生异常现象时以最快的速度阻止用户访问。倘若想要保障系统得以健康稳定地运作下去,那么在非高峰期的时候要保障系统响应时间保持在不大于3s的范围内为宜,在高峰期要控制在不小于5s的范围内。并且,还要为系统构建科学合理的错误处理机制,旨在促进其运作水平的全面提升。

30811第4章系统设计4.1系统流程图若要使用本系统就要先注册。点击注册按钮进入注册页面进行注册。注册成功,进入登录页面,注册了的用户进行登录,就可以进行点歌、购买酒水、修改个人资料。流程图如下4.1所示。用户登录用户登录否否判断账号是否存在判断密码是否正确个人信息判断是否注册成功是否否是是开始结束用户注册用户注册图4.1用户登录注册流程图登录成功后进入首页,进入歌曲信息页面中,查询歌曲,选择想听的歌曲进行播放,该部分的流程图如图4.2所示。用户登录用户登录判断是否登录歌曲信息查询歌曲播放歌曲选取歌曲开始结束否否是是图4.2用户点歌流程图4.2功能模块设计根据对系统的功能进行分析,KTV点播系统的具体功能模块包括下面的几个主要的功能模块:用户信息管理、歌曲类别管理、歌曲信息管理、明星信息管理、酒水食品信息管理和KTV点歌管理。系统的功能机构图如图4.3所示。用户信息管理用户信息管理KTV点播系统歌曲类别管理歌曲信息管理明星信息管理酒水食品信息管理KTV点歌管理图4.3系统结构框图4.3数据库设计物理设计通常涵盖以下几个阶段:一是对相关存储结构进行科学选择;二是对访问方式加以明确;三是对数据的具体位置加以选择;四是对数据的最终位置加以明确。数据库是关于数据如何在物理上存储和从数据库中检索以及系统数据如何存储在数据库中。接下来的主要任务是索引数据库以访问操作系统信息。根据访问类型,存储结构可以分为索引表和序列表,每个表包含不同的查询结果。系统的特殊表设计如下:(1)歌曲信息评论表discussgequxinxi“歌曲信息评论表discussgequxinxi”是用来记录用户反馈歌曲的评价信息。歌曲信息评论表discussgequxinxi的结构如表4.1所示。表4.1歌曲信息评论表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户id

续表4.1歌曲信息评论表字段名称类型长度字段说明主键默认值avatarurllongtext100头像nicknamevarchar20用户名contentlongtext200评论内容replylongtext200回复内容(2)歌曲信息gequxinxi“歌曲信息gequxinxi”是用来记录歌曲的信息。歌曲信息gequxinxi的结构如表4.2所示。表4.2歌曲信息表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPgequmingchengvarchar20歌曲名称gequleixingvarchar20歌曲类型geshouvarchar5歌手zhuanjivarchar20专辑gequtupianlongtext100歌曲图片gequshipinlongtext100歌曲视频gecilongtext200歌词faxingriqidate发行日期

续表4.2歌曲信息表字段名称类型长度字段说明主键默认值

thumbsupnumint赞0crazilynumint踩clicktimedatetime最近点击时间0clicknumint点击次数(3)明星信息mingxingxinxi“明星信息mingxingxinxi”是用来记录明星的信息。明星信息mingxingxinxi的结构如表4.3所示。表4.3明星信息表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPgexingxingmingvarchar10歌星姓名gequmingchengvarchar10歌曲名称gequleibievarchar10歌曲类别tupianlongtext100图片yinpinlongtext100音频chudaoshijiandate出道时间gexingjieshaolongtext100歌星介绍thumbsupnumint赞0

续表4.3明星信息表字段名称类型长度字段说明主键默认值crazilynumint踩0(4)歌曲类别gequleibie“歌曲类别gequleibie”是用来记录歌曲类别的信息。歌曲类别gequleibie的结构如4.4所示。表4.4歌曲类别表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPgequleibievarchar10歌曲类别rpicturelongtext100回复图片(5)食品信息shipinxinxi“食品信息shipinxinxi”是用来记录食品的信息。食品信息shipinxinxi的结构如表4.5所示。表4.5食品信息表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPshipinbianhaovarchar20食品编号shipinmingchengvarchar10食品名称shipinfenleivarchar20食品分类

续表4.5食品信息表字段名称类型长度字段说明主键默认值tupianlongtext100图片jiageint价格shuliangint数量shipinjianjielongtext200食品简介(6)酒水信息jiushuixinxi“酒水信息jiushuixinxi”是用来记录酒水的信息。酒水信息jiushuixinxi的结构如表4.6所示。表4.6酒水信息表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPjiushuimingchengvarchar10酒水名称jiushuifenleivarchar10酒水分类guigevarchar10规格shuliangint数量tupianlongtext100图片

续表4.6酒水信息表字段名称类型长度字段说明主键默认值jiagefloat价格jiushuijieshaolongtext100酒水介绍thumbsupnumint赞0crazilynumint踩0(7)用户yonghu“用户yonghu”是用来记录系统登录用户的信息。用户yonghu的结构如表4.7所示。表4.7用户表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPyonghuzhanghaovarchar20用户账号yonghuxingmingvarchar20用户姓名mimavarchar20密码xingbievarchar2性别touxianglongtext100头像dianhuahaomavarchar11电话号码(8)收藏表storeup“收藏表storeup”是用来记录用户收藏商品的信息。收藏表storeup的结构如表4.8所示。表4.8收藏表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idrefidbigint商品idtablenamevarchar20表名namevarchar10名称picturelongtext100图片typevarchar200类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)1inteltypevarchar20推荐类型remarkvarchar20备注

23288第5章系统实现5.1实现环境本设计将在IDEA2020和微信开发者工具中进行开发,基于SSM框架,使用Java语言设计开发一个KTV点播系统,该系统数据将在MySQL数据库中进行存储和管理,系统部署于Tomcat服务器。5.2点歌管理以用户身份登录到系统中,点击明星信息,进入页面后,首先看到的是全部的歌曲,如图5.1所示,在系统左方是歌曲的类别,点击摇滚类别即可出现摇滚类的歌曲,如图5.2所示,点击第一首歌曲“夜空中最亮的星”,可以看到该歌曲的类别是摇滚类,如图5.3所示。图5.1全部类歌曲图5.2摇滚类歌曲图图5.3歌曲详情图以用户身份登录到系统中,点击明星信息跳转入页面后,会看到系统内的全部歌曲,在系统上方搜索框可以输入明星名字,来查询其相关的歌曲,如搜索“周杰伦”,系统即可出现其全部的歌曲,如图5.4所示;点击第一首歌曲跳转入页面后,将会看到该歌曲的详细信息以及歌星的介绍,如图5.5所示。图5.4明星信息点歌图图5.5歌曲详情图以用户身份登录系统中,点击歌曲信息跳转入页面后,出现系统内的所有歌曲,如图5.6所示,在系统上方搜索框内可以输入关键字来进行模糊搜索,如搜索“爱”字,将会出现歌名里带“爱”字的所有歌曲,如图5.7所示。

图5.6歌名点歌全部歌曲图图5.7歌曲模糊搜索图实现该功能的关键代码如下:@Override

public

PageUtils

queryPage(Map<String,

Object>

params)

{

Page<GequleibieEntity>

page

=

this.selectPage(

new

Query<GequleibieEntity>(params).getPage(),

new

EntityWrapper<GequleibieEntity>());

return

new

PageUtils(page);

}@Overridepublic

PageUtils

queryPage(Map<String,Object>params,Wrapper<GequleibieEntity>wrapper)

{

Page<GequleibieView>

page

=new

Query<GequleibieView>(params).getPage();

page.setRecords(baseMapper.selectListView(page,wrapper));

PageUtils

pageUtil

=

new

PageUtils(page);

return

pageUtil;

}@Override

public

PageUtils

queryPage(Map<String,

Object>

params)

{

Page<MingxingxinxiEntity>

page

=

this.selectPage(

new

Query<MingxingxinxiEntity>(params).getPage(),

new

EntityWrapper<MingxingxinxiEntity>()

);

return

new

PageUtils(page);

}@Overridepublic

PageUtils

queryPage(Map<String,

Object>

params,

Wrapper<MingxingxinxiEntity>

wrapper)

{

Page<MingxingxinxiView>

page

=new

Query<MingxingxinxiView>(params).getPage();

page.setRecords(baseMapper.selectListView(page,wrapper));

PageUtils

pageUtil

=

new

PageUtils(page);

return

pageUtil;

}

@RequestMapping("/info/{id}")

public

R

info(@PathVariable("id")

Long

id){

GequxinxiEntity

gequxinxi

=

gequxinxiService.selectById(id); gequxinxi.setClicknum(gequxinxi.getClicknum()+1);gequxinxi.setClicktime(new

Date());gequxinxiService.updateById(gequxinxi);

return

R.ok().put("data",

gequxinxi);

}5.3播放管理以用户身份登录系统中,选择喜欢的歌曲来进行播放,当用户对歌曲进行播放时,点击播放符对歌曲进行播放,如图5.8所示,点击暂停符即可暂停歌曲播放,如图5.9所示,在听歌的过程中,可以通过拉动进度条来对歌曲播放进行快进或后退,如图5.10所示。图5.8播放歌曲图5.9暂停歌曲图图5.10歌曲播放快进图实现该功能的关键代码如下:public

class

gequbofang

{public

static

void

main(String[]

args)

throws

Exception,

Exception

{File

file

=

new

File("D:

\\bofang.wav");AudioInputStream

am;am

=

AudioSystem.

getAudioInputstream(file);AudioFormat

af

=

am.

getFormat();SourceDataline

sd

;sd

=

AudioSystem.

getSourceDataline(af);sd

.

open();sd.start();int

sumByteRead

=

0;

byte

[]

b

=

new

byte[320];sumByteRead

=

am.

read(b,

0,

b.length);if(sumByteRead

>=

0

)

{sd.write(b,

0,b.length);}}sd.

drain();sd.close();5.4歌曲信息管理以管理员身份登录到后台系统中,选择歌曲信息管理下的“歌曲信息”按钮,进入歌曲信息列表界面,点击新建歌曲即可跳转到歌曲添加页面,在此页面添加歌曲名称、歌曲类型、歌曲的音频等信息,如图5.11所示;点击提交按钮,弹出操作成功,如图5.12所示。图5.11歌曲添加图图5.12操作成功图添加操作完成后,在歌曲信息管理页面将会看到添加后的歌曲信息,如图5.13所示。图5.13添加成功后歌曲信息图实现该功能的关键代码如下:@RequestMapping("/add")

public

R

add(@RequestBody

GequxinxiEntity

gequxinxi,

HttpServletRequest

request){

gequxinxi.setId(new

Date().getTime()+new

Double(Math.floor(Math.random()*1000)).longValue());

//ValidatorUtils.validateEntity(gequxinxi);

gequxinxiService.insert(gequxinxi);

return

R.ok();

}5.5明星信息管理在此平台中管理员可以对明星信息进行管理,如增加一个明星的信息,如图5.14所示该页面为增加前的页面,点击右侧的增加按钮会跳转到信息页面,在该页面填写明星的所有相关信息,如添加一个明星为“许嵩”的明星,歌曲名称为“有何不可”,歌曲类别为“情歌”如图5.15所示,填写完毕后点击提交,返回明星信息的页面可以看到该明星的信息已经添加成功如图5.16所示。图5.14明星信息图图5.15明星信息新增图图5.16新增成功后明星信息图实现该功能的关键代码如下:@RequestMapping("/add")

public

R

add(@RequestBody

DiscussgequxinxiEntity

gequxinxi,

HttpServletRequest

request){

discussgequxinxi.setId(new

Date().getTime()+new

Double(Math.floor(Math.random()*1000)).longValue());

//ValidatorUtils.validateEntity(discussgequxinxi);

discussgequxinxiService.insert(discussgequxinxi);

return

R.ok();

}5.6歌曲类别管理在此平台中管理员可以对歌曲类别进行管理,如增加一个歌曲类别,如图5.17所示该页面为增加前的页面,点击右侧的增加按钮会跳转到信息页面,在该页面填写要增加的歌曲类别,填写完毕后点击提交,返回歌曲类别的页面可以看到该类别信息已经添加成功,如图5.18所示。图5.17歌曲类别详情图图5.18新增成功后歌曲类别详情图实现该功能的关键代码如下:@RequestMapping("/page")

public

R

page(@RequestParam

Map<String,

Object>

params,GequleibieEntity

gequleibie,

HttpServletRequest

request){

EntityWrapper<GequleibieEntity>

ew

=

new

EntityWrapper<GequleibieEntity>();PageUtils

page

=

gequleibieService.queryPage(params,

MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,

gequleibie),

params),

params));

return

R.ok().put("data",

page);

}5.7订单支付以用户身份登录到系统中,选择我的管理下的“酒水订单”按钮,进入页面确定信息无误后点击下方的支付按钮,进行付款操作,如图5.19所示,点击后跳转入支付页面,如图5.20所示,选择付款方式进行提交,付款成功后会显示支付成功,如图5.21所示。图5.19确认付款信息图图5.20选择支付方式图图5.21支付成功图实现该功能的关键代码如下:@Overridepublic

List<JiushuidingdanVO>

selectListVO(Wrapper<JiushuidingdanEntity>

wrapper)

{

return

baseMapper.selectListVO(wrapper);}@Overridepublic

JiushuidingdanVO

selectVO(Wrapper<JiushuidingdanEntity>

wrapper)

{return

baseMapper.selectVO(wrapper);}@Overridepublic

List<JiushuidingdanView>

selectListView(Wrapper<JiushuidingdanEntity>

wrapper)

{return

baseMapper.selectListView(wrapper);}@Overridepublic

JiushuidingdanView

selectView(Wrapper<JiushuidingdanEntity>

wrapper)

{return

baseMapper.selectView(wrapper);5.8酒水信息管理以管理员身份登录到后台系统中,选择酒水信息管理下的“酒水信息”按钮,进入酒水信息列表界面,可查看酒水的名称、分类、规格、数量、图片和价格等信息,新增和删除酒水信息,修改酒水名称、分类、价格等信息。修改酒水信息如图5.22所示,修改成功后页面如图5.23所示。图5.22酒水信息修改图图5.23酒水信息修改成功图实现该功能的关键代码如下:

@RequestMapping("/page")

public

R

page(@RequestParam

Map<String,

Object>

params,JiushuixinxiEntity

jiushuixinxi,HttpServletRequest

request){

EntityWrapper<JiushuixinxiEntity>

ew

=

new

EntityWrapper<JiushuixinxiEntity>()PageUtils

page

=

jiushuixinxiService.queryPage(params,

MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,

jiushuixinxi),

params),

params));

return

R.ok().put("data",

page); List<JiushuixinxiView>selectListView(Paginationpage,@Param("ew")Wrapper<JiushuixinxiEntity>wrapper); JiushuixinxiViewselectView(@Param("ew")Wrapper<JiushuixinxiEntity>wrapper);}@RequestMapping("/update")@Transactional

public

R

update(@RequestBody

JiushuixinxiEntity

jiushuixinxi,

HttpServletRequest

request){

//ValidatorUtils.validateEntity(jiushuixinxi);

jiushuixinxiService.updateById(jiushuixinxi);

return

R.ok();

}5.9食品信息管理针对食品信息管理来说,通常可分为以下步骤:第一步,登录系统;第二步,对“食品信息”这一按钮进行选择;第三步,可对食品的信息进行新增、查看和修改,具体操作流程如图5.24所示。图5.24食品信息图在右上方食品名称搜索框内,可以输入关键字来对食品进行模糊查询,如输入“爪”字,点击查询,即可出现带“爪”字的所有小吃,查询“爪”信息如图5.25所示。图5.25查询食品信息图实现该功能的关键代码如下:@RequestMapping("/lists")

public

R

list(

ShipinxinxiEntity

shipinxinxi){

EntityWrapper<ShipinxinxiEntity>

ew

=

new

EntityWrapper<ShipinxinxiEntity>();

ew.allEq(MPUtil.allEQMapPre(

shipinxinxi,

"shipinxinxi"));

return

R.ok().put("data",

shipinxinxiService.selectListView(ew));

}@RequestMapping("/query")

public

R

query(ShipinxinxiEntity

shipinxinxi){

EntityWrapper<

ShipinxinxiEntity>

ew

=

new

EntityWrapper<

ShipinxinxiEntity>();

ew.allEq(MPUtil.allEQMapPre(

shipinxinxi,

"shipinxinxi"));

ShipinxinxiView

shipinxinxiView

=

shipinxinxiService.selectView(ew);return

R.ok("查询食品信息成功").put("data",

shipinxinxiView);

}5.10用户注册登录一般情况下,如果用户之前从来没有登录过这个系统,那么当点击“个人中心”这一按钮的过程中系统就会在第一时间跳转到一个新的界面,即用户登录注册界面,此时用户应当结合注册要求输入相应的信息,倘若用户之前登录过这个系统,那么此时系统就会给出相应的提示,即注册用户已存在(如图5.26所示)。登录过程中,用户需要结合页面提示输入相应的信息,当所有信息都输入完毕之后就可以单击“登录”按钮了。倘若密码输入不正确的话,那么这个时候系统就会给予相应的提示,即账号或密码不正确(如图5.27所示)。图5.26用户注册图图5.27用户登录图实现该功能的关键代码如下:@IgnoreAuth@RequestMapping(value

=

"/login")public

R

login(String

username,

String

password,

String

captcha,

HttpServletRequest

request)

{YonghuEntity

u

=

yonghuService.selectOne(new

EntityWrapper<YonghuEntity>().eq("yonghuzhanghao",

username));if(u==null

||

!u.getMima().equals(password))

{return

R.error("账号或密码不正确");}String

token

=

tokenService.generateToken(u.getId(),

username,"yonghu",

"用户"

);return

R.ok().put("token",

token);}@IgnoreAuth

@RequestMapping("/register")

public

R

register(@RequestBody

YonghuEntity

yonghu){

//ValidatorUtils.validateEntity(yonghu);

YonghuEntity

u

=

yonghuService.selectOne(new

EntityWrapper<YonghuEntity>().eq("yonghuzhanghao",

yonghu.getYonghuzhanghao()));if(u!=null)

{return

R.error("注册用户已存在");}Long

uId

=

new

Date().getTime();yonghu.setId(uId);

yonghuService.insert(yonghu);

return

R.ok();

}5.11用户个人中心当用户成功进入系统之后还需做这样一件事情,即对“个人中心”这一按钮进行点击,点击完毕之后就会进入到一个界面,该界面就是个人中心界面。当进入该界面之后,用户就能够对个人信息加以编辑抑或是修改,如图5.28所示:图5.28用户个人中心管理图实现该功能的关键代码如下:@RequestMapping("/session")

public

R

getCurrUser(HttpServletRequest

request){

Long

id

=

(Long)request.getSession().getAttribute("userId");

YonghuEntity

u

=

yonghuService.selectById(id);

return

R.ok().put("data",

u);

}@RequestMapping("/update")@Transactional

public

R

update(@RequestBody

YonghuEntity

yonghu,

HttpServletRequest

request){

//ValidatorUtils.validateEntity(yonghu);

yonghuService.updateById(yonghu);

return

R.ok();

}5.12用户管理对于用户管理来说,可分为以下几个步骤:第一步,登录后台系统;第二步,对“用户”这一按钮进行选择;第三步,进入用户列表页面,对用户各种信息进行查看(如图5.29所示),还可根据情况对这些信息进行新增或者是删除,从图5.30中我们就能清晰地看到用户详细信息。图5.29查看用户信息图图5.30用户信息详情图实现该功能的关键代码如下:@RequestMapping("/session")

public

R

getCurrUser(HttpServletRequest

request){

Long

id

=

(Long)request.getSession().getAttribute("userId");

YonghuEntity

u

=

yonghuService.selectById(id);

return

R.ok().put("data",

u);

}}

25086第6章系统测试6.1测试方法系统各功能模块和运行前界面设计完成后,正式使用前还需要进行一系列的功能和性能测试,以确保系统可靠稳定运行,及时促成。系统正式使用前的维护和完善。通过对黑盒测试的分析,可以从中了解到其属于检测系统功能的手段之一,在具体检测期间,相关测试工作者应当以用户需求为主,借助功能测试这一方式来对以下几个方面加以详细对比,一是实际测试状态;二是预期状态,便于及时发现系统中存在的缺陷。以下几点一般用于黑盒测试当中的处理,一是位错分析;二是边界分析。通常情况下,系统错误一般极易出现在以下几个地方,一是输入的边界处;二是输出值的边界处,而非内部,所以边界值分析往往是在明确输入输出范围的基础上,选择一个边界值对系统进行测试,然后进行判断。系统性的稳定性和可靠性。6.2测试用例6.2.1登录测试用例对于登录测试用例而言,主要是在充分结合用户需求的基础上加以设计的,对黑盒测试技术进行了有效运用,因为文章篇幅有限,这里仅给出比较典型的登录测试用例表,具体内容如表6.1所示。表6.1登录测试用例表测试编号测试目的操作步骤预期结果实际结果001登录测试输入正确的用户名和密码登录成功登录成功002登录测试输入错误的用户名登录失败登录失败003登录测试输入错误的的密码登录失败登录失败6.2.2歌曲信息管理测试用例管理端在运行时要满足浏览器的运行需求,比如添加歌曲信息测试、修改歌曲信息测试、删除歌曲信息测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.2所示。表6.2歌曲信息管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加歌曲信息测试在添加页面输入歌曲信息,点击确认按钮添加成功添加成功002修改歌曲信息测试在修改页面修改歌曲信息,点击确认按钮修改成功修改成功003删除歌曲信息测试在管理歌曲信息页面,点击某一用户的删除按钮删除成功删除成功004查询歌曲信息测试在管理歌曲信息页面查询输入框输入要查询的用户名字,点击查询按钮查询成功查询成功6.2.3食品信息管理测试用例管理端在运行时要满足浏览器的运行需求,比如添加食品信息测试、修改食品信息测试、删除食品信息测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.3所示。表6.3食品信息管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加食品信息测试在添加页面输入食品信息,点击确认按钮添加成功添加成功002修改食品信息测试在修改页面修改食品信息,点击确认按钮修改成功修改成功003删除食品信息测试在管理食品信息页面,点击某一用户的删除按钮删除成功删除成功

续表6.3食品信息管理测试用例表测试编号测试目的操作步骤预期结果实际结果004查询食品信息测试在管理食品信息页面查询输入框输入要查询的用户名字,点击查询按钮查询成功查询成功6.2.4酒水信息管理测试用例管理端在运行时要满足浏览器的运行需求,比如添加酒水信息测试、修改酒水信息测试、删除酒水信息测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.4所示。表6.4酒水信息管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加酒水信息测试在添加页面输入酒水信息,点击确认按钮添加成功添加成功002修改酒水信息测试在修改页面修改酒水信息,点击确认按钮修改成功修改成功003删除酒水信息测试在管理酒水信息页面,点击某一用户的删除按钮删除成功删除成功004查询酒水信息测试在管理酒水信息页面查询输入框输入要查询的用户名字,点击查询按钮查询成功查询成功6.3测试结论通过依托若干个测试用例这一方式检测了系统的部分功能,在整个环节中,均能够将安全可靠的数据呈现在用户面前,且在以下几个方面中均能实现理想的目的,一是功能方面;二是系统使用方面。

结论与展望在本次研究所实现的基于小程序的KTV点播系统过程中,考虑了KTV点播系统的发展存在一些用户体验感差,技术落后、页面杂乱等问题。通过对这些问题的分析,进而来确定本系统的关键技术和方法,在需求分析和可行性分析的基础上,基于SSM框架、使用Java语言、MySQL的后台数据库和方便简捷的微信小程序设计实现了KTV点播系统。该系统的主要功能有用户信息管理、歌曲类别管理、歌曲信息管理、明星信息管理、酒水食品信息管理和KTV点歌管理。在进行系统研究之前,应该充分考虑到它的实际价值,并且要深入探讨当前的情况。在此之后,将详细阐述本次开发的技术要素,包括编程语言、编程工具以及编程技巧。此外,还将对开发的可行性进行详细的分析,以确保该项目的成功。结合系统需求分析,对以下几个方面进行了阐述:一是系统的总体设计;二是数据库的分析与实现;三是详细设计,为各种各样的用户提供了相应的功能界面,并在此基础上还阐述了关键代码,以便更好地满足用户的需求。在这次开发中,主要将时间和精力投入到了以下几个环节中:一是基础知识到需求分析;二是系统设计和代码实现;三是部分功能测试和效果展示。尽管本次研究取得了一定的成果,但仍有许多不足之处,例如,界面设计不够美观;整体界面效果不够人性化等等。为了提高系统的完善度,将在接下来的工作中不断改进。参考文献[1]乔飞飞.KTV点歌系统的设计与实现[J].电脑知识与技术,2017,13(30):79-81.[2]赵飞,游宁.多平台移动点歌软件的设计与实现[J].福建电脑,2021,37(06):66-68.[3]郝陆风.基于用户行为的音乐推荐系统设计与实现[D].华中科技大学,2019.[4]张家麒.基于微信小程序的音乐播放实现[J].延安市宝塔区第四中学,2021.[5]陈和,周绍彬,林静等.微信小程序在机构知识库服务中的应用实践与分析——以厦门大学机构知识库为例[J].情报理论与实践,2021.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论