《基于微信小程序的学生预约系统设计》9600字(论文)_第1页
《基于微信小程序的学生预约系统设计》9600字(论文)_第2页
《基于微信小程序的学生预约系统设计》9600字(论文)_第3页
《基于微信小程序的学生预约系统设计》9600字(论文)_第4页
《基于微信小程序的学生预约系统设计》9600字(论文)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1摘要对于校园内公共资源有限,学生数量增多等问题,该文设计了基于微信小程序的学生预约系统,用户使用该小程序可以查看预约项目、及时预约并查看自己的预约情况。管理员可以在后台进行预约项目的管理和预约记录的查看。本系统共实现以下功能:注册登陆、通知公告、生活缴费、预约功能、预约记录、缴费记录以及后台管理。本系统的客户端使用微信开发者工具进行开发,使用微信的标签语言WXML和样式语言WXSS、JavaScript等前端技术使用户界面更加美观;服务端则是基于SSM框架开发,将MySQL作为数据源,使得开发效率更加高效。[关键词]:微信小程序;SSM框架;JavaScript;第一章绪论1.1选题研究背景国家近几年一直在呼吁各个高校开展智慧校园的计划。同时,现在智能手机的普及和城市网络基础建设的逐步覆盖,推动了微信小程序的诞生。2017年,腾讯在微信内上线微信小程序,其自身特有的无需安装、加载迅速、用完即走、操作简单的优点在上线之初就广大用户的喜爱,结合当今的移动支付技术的发展,衍生出许多不同的预约系统,比如医院的网上预约挂号、机场车站的网上预约,都给人们的生活带来了极大的便利。随着使用人数的增多,微信小程序已经由当初的开发工具演变为一个独立的生态系统,用户可以在此生态内体验到各种各样的生活服务。1.2选题目的在信息化的时代,人们对环境的碎片化使用需求愈来愈大,传统App需要用户自行下载,且开发周期较长,成本较高。于是轻量化的微信小程序随之产生,其简洁的使用方式,良好的使用体验、丰富的使用场景让人们的生活更加的方便快捷。本课题的目的是将微信小程序和学生预约结合起来,设计并实现一个学生预约系统,缓解校园内公共资源紧张的问题,提高资源使用率,提升管理效率。1.3选题主要内容基于目前社会大环境和人们生活发展水平,这次研究选择的主要内容和方向为:微信小程序前端界面的设计,后端基于SSM框架的搭建,前后端数据的交互。在系统开发之前,本人做了一些相关的研究和调查:查阅相关资料、了解类似系统的设计方式、了解相关的业务流程、调查用户的实际需求、了解目前主流的JavaWeb开发技术、查阅数据库设计相关资料。而后确立了系统的整体需求和需求分析。本次开发遵守软件工程的开发模式,使用敏捷软件开发思想,实行周期性交付机制。在本系统中,核心模块主要有:用户在前端在已有的预约功能内实现预约;用户在前端进行预约项目的缴费;用户在查看自己的预约记录;管理员在后端实现预约功能的添加、查看用户预约记录和缴费记录。1.4本文组织结构第一章绪论。本章主要介绍了学生预约系统这一选题的研究背景、研究目的和主要内容。第二章相关概念和技术基础。本章介绍了课题的相关概念,系统在前端开发过程中用到的MINA框架和后端开发中用到的SSM框架。第三章系统需求分析。本章叙述了用户和管理员的功能需求分析;将各个功能模块的操作流程用流程图展示出来。第四章系统的设计。本章介绍了系统的几个核心模块的功能模块设计和数据库设计。第五章系统实现与测试。使用了软件测试中的一种常见方法——黑盒测试,并设计了测试用例来测试系统的功能。第六章总结与展望,主要介绍了在设计结束后的个人总结与改进之处,展望以后所研究的工作。

第二章相关概念和技术基础2.1课题的相关概念近几年来,随着国家的发展使得愈来愈多的学生能够踏入大学,继续接受深造。大学校园不仅仅是一块用来学习的地方,逐步演变成一个多元、丰富的社区。大学校园是一个培养学生健康体魄和个性的场所,作为管理人员应当充分利用校园内已有的资源来尽最大的可能满足大学生的需求。在中学时往往是通过老师的组织去参加学校的某项活动,但大学校园的人口数量多、校园资源有限,这时候就需要结合当今较为热门的科学技术来解决这些问题,使用微信小程序结合SSM框架来进行相关的服务预约就是一个不错的想法。主要的优势在:(1)微信小程序作为当今热度较高的技术,其用完即走、快速加载的优势,让广大的用户感受到科技带来的便利。(2)传统的组织形式在大学校园中显得有点力不从心,因为班级数量和学生数量的增多使得传统的管理模式费时又费力,所以使用数据库和后端管理就让管理者的效率大大提高。(3)当小程序真正带给学生便利时,一些对新技术有着兴趣的学生就会开始研究,想去开发一个属于自己的微信小程序,这对学生个人拓展实践能力有着一定的帮助。2.2相关技术基础2.2.1MINA框架小程序使用的MINA框架,核心是响应数据绑定,目的是让开发者能用简单、高效的方式进行设计开发。整个框架由视图层(View)和逻辑层(AppSerivce)这两部分组成,这样使得数据和视图实现简单同步。只要开发者在逻辑层内修改数据,相应的视图层就能做出响应并及时更新。图2-1MINA框架图如图2-1所示,MINA框架封装微信客户端提供的一些基础功能,使用JSBridge将Native系统层与上层连接,提供JSAPI,让开发者能通过API使用原生功能,快速搭建小程序。框架程序通过一个app来描述整体程序和多个page来描述页面。一个框架程序主体由3个文件构成,放在项目的根目录下,如表2-1所示:表2-1程序主体结构表文件是否必需意义app.js是小程序逻辑app.json是小程序公共配置app.wxss否小程序公共样式一个框架页面由4个文件组成,如表2-2所示:表2-2程序页面结构表文件类型是否必需意义js是页面逻辑wxml是页面结构wxss否页面样式表json否页面配置2.2.2SSM框架SSM框架是标准的MVC模式,经常用来开发数据源简单的Web项目,对比之前的SSH框架更加灵活,是当今较主流的JavaWeb开发项。其框架图,如图2-2所示。图2-2SSM框架图Spring框架一种以IoC和AOP为核心的轻量级开放源代码框架,为SpringMVC提供了集成功能;在持久层可以将MyBatis整合;在业务层可以处理事务。可以说Spring贯穿各层并将它们整合。SpringMVC框架一个实现MVC设计思想的轻量级Web框架,难度相比于Struts2更加简单。它将控制器、模型对象、分配器这三者分开,使每一部分都更容易定制,从而灵活组合为一个系统。MyBatis框架持久层使用的MyBatis采取ORM的思想,通过封装JDBC,使用XML或注解来配置相关文件等方式,让开发人员更容易对数据库进行持久化操作。2.2.3数据库MySQL是一种关系型数据库管理系统,它是当今数据库管理的主流。为加快处理数据的速度,它在不同的表中有计划地存储数据。因为其对外开源的优点,所以开发成本低,许多中小企业及个人都会选择MySQL。同时,MySQL还支持SQL规范数据语言形式,支持JDBC等多种数据库连接方式,支持多种Java、Python、C等多种编程语言。第三章系统需求分析3.1系统用户定义本系统作为一个在线预约的平台,用户主要被分类为两种:学生:作为系统使用的主体,在系统中可以查看管理者发布的通知公告,可以对系统已有的预约项目进行预约,并且能够随时查看自己的预约记录,对已结束、需要缴费的预约项目可以进行缴费。管理员:作为预约的管理者,可以在后端发布新的预约项目:设定数量、预约价格、预约描述;上传相关的图片和文字用来更新首页公告,也可以查看已有项目的预约情况、缴费情况、用户预约记录。3.2系统功能模块3.2.1学生功能模块游客进入微信小程序预约系统后,可以浏览主页内容。若要点击主页中的任一功能模块时,系统提示用户先注册或登录:学生注册后,可以使用注册时所登记的手机号码、密码进行登录。注册登录后,可以进行通知公告的查看、进行已有预约项目的预约、预约记录的查看、预约之后的缴费和自己的缴费记录。图3-1学生在系统中的用例图1.用户注册功能(1)功能说明游客打开微信小程序后,当点击任一功能时,页面提示用户需要注册账户。填写学生的手机号、姓名、性别、宿舍号、密码等信息。(2)流程图图3-2用户注册流程图2.用户登录功能(1)功能说明进入登录界面,输入用户的手机号和密码后,点击登录按钮。验证成功则系统会弹出“登陆成功”,验证失败则弹出“登录失败”。(2)流程图图3-3用户登录流程图3.用户预约功能(1)功能说明用户点击“校园预约”按钮,可以查看所有的预约功能,点击其中的预约项目,可以查看详情、剩余数量、价格等信息。(2)流程图图3-4用户预约流程图4.用户缴费功能(1)功能说明用户点击“生活缴费”,小程序跳转到二级页面,选择缴费项,输入缴费金额,再点击“缴费”按钮,弹出“缴费成功”即表示缴纳费用成功。(2)流程图图3-5用户缴费流程图3.2.2管理员功能模块管理员在后端使用已有的账号、密码登陆成功后,可以在账户设置里查看个人信息并修改;然后管理员可以在小程序管理中进行通知公告的管理和预约项目的管理;最后可以在小程序数据查询中查看用户的缴费记录和用户的预约记录。图3-6管理员在系统中的用例图1.管理员登陆功能(1)功能说明管理员根据现有账号登陆到后台管理界面。(2)流程图图3-7管理员登录流程图2.管理员发布通知(1)功能说明管理员根据现有账号登陆到后台管理界面后。选择通知公告管理,并点击“增加”按钮,填写公告的相关信息,上传相应的内容和图片后。点击“提交”按钮,即发布了一篇新的通知公告。(2)流程图图3-8管理员发布通知流程图3.管理员修改通知(1)功能说明管理员根据现有账号登陆到后台管理界面后,点击通知公告管理并选择某一通知公告,点击“修改”按钮,选择指定的公告信息,就可对该项通知公告进行修改并发布。(2)流程图图3-9管理员修改通知流程图4.管理员删除通知(1)功能说明管理员根据现有账号登陆到后台管理界面后,点击通知公告管理并选择某一通知公告,点击“删除”按钮,选择指定的公告信息,就可对该项通知公告进行删除。(2)流程图图3-10管理员删除通知流程图5.管理员发布预约(1)功能说明管理员根据现有账号登陆到后台管理界面后,选择预约项目管理并点击“添加”按钮,填写相应的信息,上传相应的内容和图片后点击“提交”按钮,即增加了一个新的预约项目。(2)流程图图3-11管理员发布预约流程图6.管理员修改预约(1)功能说明管理员根据现有账号登陆到后台管理界面后,点击预约项目管理并选择某一预约,点击“修改”按钮,选择指定的预约项目,就可对该预约项目进行修改并发布。(2)流程图图3-12管理员修改预约流程图7.管理员删除预约(1)功能说明管理员根据现有账号登陆到后台管理界面后,点击预约项目管理并选择某一预约,点击“删除”按钮,选择指定的预约项目,就可对该预约项目进行删除。(2)流程图图3-13管理员删除预约流程图8.管理员查询缴费(1)功能说明管理员根据现有账号登陆到后台管理界面后,点击缴费查询就可看见所有用户的缴费项目、缴费金额、缴费时间等信息,点击“刷新”按钮即可刷新当前页面数据。(2)流程图图3-14管理员查询缴费流程图9.管理员查询预约(1)功能说明管理员根据现有账号登陆到后台管理界面后,点击预约查询就可看见所有用户的预约项目、预约时间、预约人姓名等信息,点击“刷新”按钮即可刷新当前页面数据。(2)流程图图3-15管理员查询预约流程图3.3非功能需求3.3.1响应速度要求系统能对用户的不同操作做出快速响应,不该让用户等待太多的时间。3.3.2出错处理当用户操作不当时或系统出现错误时,系统能给出友好、简明的提示并提供相应正确的指引。3.3.3用户界面用户界面是用户与机器之间沟通交流的层面,好的用户界面应该有实用、美观、易用等特点。所以在开发过程中无论是小程序端还是后台管理端,都应该遵循相关的设计规范,让用户体会到乐趣,减少因为界面问题所带来的投诉、咨询等不必要的麻烦,让软件的操作变得简单、舒适。3.3.4性能需求并发要求:要求支持较高级的并发量,在最高负载的状态下系统不能出现异常情况。事务并发:允许多地、多用户、多事务并发,在系统高压时不能响应过长的时间。数据库操作:用户在浏览器发起的每次请求所触发的相应SQL操作不能大于4条。3.3.5硬件的限制1.支持目前普遍使用的Android、iOS系统和PC操作系统。2.支持最低手机配置:Android:Android4.0以上iPhone、iPad:iOS6.1以上CPU:1000MHzROM:1024MBRAM:1000MHz3.支持最低PC配置:处理器:1GHz32/64位双核内存:1GB(32位)/2GB(32位)硬盘:16G显卡:带WDDM驱动的DirectX9图形设备3.3.6安全性1.当数据库数据泄露时,不该暴露用户、管理员的账户和密码。2.当后端上传文件时,若遇到木马和病毒问题时,系统应当拒绝进行上传。3.当使用API调用数据时,通信应用HTTPS来确保其安全性。3.3.7可维护性系统设计结构要清楚简明,方便开发人员在后期对系统进行维护、修复系统故障等操作。避免大段的代码,满足高内聚、低耦合的要求编程风格保持一致,代码能够清晰表达意图,能够让开发人员快速看懂。3.3.8其他需求用户操作需求,具体如下:(1)要求操作简单明了,适用人群广。(2)用户可以清晰的看到系统处理后的结果。3.4本章小结本章主要介绍了预约系统的需求分析,对不同角色的功能需求进行了详细的分析,同时结合流程图对各个功能模块进行了流程演示。第四章系统设计4.1总体功能设计 本系统的用户端主要功能模块包括:查看首页、预约功能、查看个人中心,如图4-1所示:图4-1用户端的系统功能图管理员端的主要功能模块包含公告管理、预订管理、查看预约、查看账单,如图4-2所示:图4-2管理员端的系统功能图4.2系统架构设计该系统后台的架构图,如下图所示:图4-3系统架构图4.3数据库设计4.3.1设计简介本系统采用是MySQL数据库,使用NavicatforMySQL作为数据库可视化工具,在分析用户端的功能模块后,确定主要实体及其属性和关系,并使用E-R图体现出来。本系统的实体包括大学生、管理员、预约项目、缴费情况、公告,如图4-4到图4-8所示。图4-4学生实体属性图4-5管理员实体属性图4-6项目实体属性图4-7通知实体属性图4-8缴费实体属性4.3.2数据库E-R模型 根据实体之间的关系:(1)每个学生可预约多个项目,每个项目可以让多个学生报名预约,二者是n:m的关系;(2)每个学生查看多个通知,每个通知可让多个学生查看,两者是n:m的关系。可以获得系统的E-R图,如图4-9所示:图4-9数据库E-R模型图4.3.3数据表物理视图 根据学生预约系统的功能需求并结合图4-9的数据库E-R模型,采用数据表的格式展现其部分关系表。1.预约项目信息表如表4-1所示,id为该表的唯一主键。表4-1预约项目信息表字段名称字段含义数据类型id项目idintgoods_title项目名称varchargoods_desc项目描述varchargoods_img相关图片varchargoods_price金额doubletime发布时间datatime2.通知公告信息表如表4-2所示:表4-2通知公告信息表字段名称字段含义数据类型id公告idintauthor作者varcharcontent内容varcharimg相关图片varchartitle标题varchartime发布时间datatime4.5本章小结本章主要对学生预约系统的系统结构、数据库进行介绍,并用E-R图展示系统中部分实体间的关系。第五章系统实现与测试5.1系统总体框架本系统的客户端是基于微信的MINA框架开发,使用微信标签语言WXML、样式语言WXSS、JavaScript和有关API实现界面设计和有关功能。在服务器端使用SSM框架开发。数据库使用MySQL,通过本地通信即本机IP地址来实现前后端数据的交互,通过预约项目、项目缴费等业务逻辑操作,实现客户端和服务端的数据请求和处理。5.2搭建项目框架小程序项目的目录框架图,如图5-1所示:图5-1小程序项目目录后台管理项目的目录框架图,如图5-2所示:图5-2后台管理项目目录系统数据库的结构,如图5-3所示:图5-3数据库结构图5.3小程序端系统实现5.3.1用户注册实现(1)功能实现分析小程序端与管理员端的数据传递是通过后台接口实现的。当小程序端需要存储用户信息的数据时,请求被发送到服务器端,调用UserApi接口获取数据,然后根据返回的结果进行响应。(2)代码实现微信小程序端触发JS事务,JS事务触发后调用RegisterUser方法,并传递参数,相关代码如下:RegisterInfo:function(e){e.detail.value.roomId=e.detail.value.buildingNumber+e.detail.value.unitNumber+e.detail.value.roomNumberconsole.log(e.detail.value);varjson=JSON.stringify(e.detail.value)console.log("RegisterInfojson:"+json)console.log("url:"+app.getHeader()+'/SheQu/RegisterUser')wx.request({url:app.getHeader()+'/SheQu/registerUser',//拼接接口地址method:'post',data:json,contentType:'application/json',success(res){console.log('res:'+res)if(res.data=="success"){wx.showToast({title:'注册成功',icon:'success',duration:2000})}else{wx.showToast({title:'注册失败',duration:1000,icon:'none'})}}})},在方法调用之后,调用服务器上的UserApi接口请求,并将请求地址拼接,根据地址调用后台接口。request请求接口向该地址发起,服务器根据请求地址和数据做出响应,这里调用了RegisterUser方法,从而进行用户的注册功能,此处的请求地址为72:8080/SheQu/registerUser。服务端的相应API代码如下:@ResponseBody@RequestMapping(value="/registerUser",method=RequestMethod.POST)publicStringRegisterUser(@RequestBodyMapmap){System.out.println(map.toString());map.put("uid",RandNum.getGUID());intn=userService.insertUser(map);if(n>0){return"success";}return"failure";}相应XML文件代码如下:<insertid="insertUser">insertintouser(uid,name,gender,buildingNumber,unitNumber,roomNumber,phone_number,pwd,roomId) values(#{uid},#{name},#{gender},#{buildingNumber},#{unitNumber},#{roomNumber},#{phone_number},#{pwd},#{roomId})</insert>(3)运行结果注册成功的运行结果,如图5-4所示:图5-4注册运行结果图 5.3.2用户登陆实现(1)功能实现分析小程序端与管理员端的数据传递是通过后台接口实现的,当小程序端需要验证用户信息时,请求被发送到服务器端,调用UserApi接口获取数据,然后根据返回的结果进行响应。(2)代码实现微信小程序端触发JS事务,JS事务后调用userLogin方法,并传递参数,相关代码如下:UserLogin:function(e){varjson=JSON.stringify(e.detail.value)console.log("userlogin:"+json)wx.request({url:app.getHeader()+'/SheQu/userLogin',//拼接接口地址method:'post',data:json,contentType:'application/json',success(res){console.log('res.data:'+res.data)app.globalData.uid=res.dataif(res.data!="failure"){wx.showToast({title:'登录成功',icon:'success',duration:2000})}else{wx.showToast({title:'登录失败',duration:1000,icon:'none'})}}})},在方法调用后,调用服务器上的UserApi接口请求,并将请求地址拼接,根据地址调用后台接口。request请求接口向该地址发起,服务器根据请求地址和数据做出响应,这里调用了userLogin方法,从而进行用户的登陆功能,服务端的相应API代码如下:@ResponseBody@RequestMapping(value="/userLogin",method=RequestMethod.POST)publicStringuserLogin(@RequestBodyMapmap){System.out.println(map.toString());Stringuid=userService.findUidByPNumAndPwd(map);if(uid!=null){returnuid;}return"failure";}相应XML文件代码如下:<selectid="findUidByPNumAndPwd"resultType="String">selectuidfromuserwherephone_number=#{phone_number}andpwd=#{pwd}</select>(3)运行结果登录成功的运行结果,如图5-5所示:图5-5登录运行结果图5.3.3用户预约实现(1)功能实现分析用户在小程序端点击校园预约后,跳转到二级页面可看到所有的预约项目,点击详情后即可进行预约。此过程调用服务端的GoodsApi和GoodsPayApi两个接口。(2)代码实现微信小程序端触发JS事务,JS事务触发后调用findAllGoods、insertBuyGoods方法,并传递参数。相应代码如下:wx.request({url:app.getHeader()+'/SheQu/findMyGoods',method:'GET',header:{'content-type':'application/json;charset=UTF-8'},data:{"uid":app.globalData.uid},success:function(res){that.setData({list:res.data,gl:app.getHeader()+'/SheQu/img'})},fail(){console.log('xxsad')}})}wx.request({url:app.getHeader()+'/SheQu/findPayByUid',method:'POST',header:{'content-type':'charset=utf-8'},data:{"uid":app.globalData.uid},success:function(res){that.setData({list:res.data})},fail(){console.log('xxsad')}})}方法调用后,调用服务器接口请求,并将请求地址拼接,根据地址调用后台接口。request请求接口向该地址发起,服务器根据请求地址和数据做出响应,这里调用了findAllGoods方法和insertBuyGoods方法,从而进行用户的预约功能。服务端的相应API代码如下:@ResponseBody@RequestMapping(value="/insertBuyGoods")publicStringinsertBuyGoods(@RequestBodyMapmap){intn=goodsPayService.insertBuyGoods(map);if(n>0){return"success";}return"failure";}@ResponseBody@RequestMapping(value="/findAllGoods",produces="application/json;charset=UTF-8")publicStringfindAllGoods(){List<Goods>goods=goodsService.findAllGoods();Stringresult=JSON.toJSONString(goods);System.out.println(result);returnresult;}相应的XML文件代码如下:<insertid="insertBuyGoods">insertintogoodspay(goods_id,uid)values(#{goods_id},#{uid})</insert><selectid="findAllGoods"resultType="com.shequ.pojo.Goods">select,g.*fromgoodsginnerjoinadminaong.publisher_id=a.account</select>(3)运行结果注册成功的运行结果,如图5-6所示::图5-6预约运行结果图5.4服务端系统实现5.3.1预约管理实现(1)功能实现分析管理员登陆后可管理小程序端中的功能模块,如预约项目管理。(2)代码实现 GoodController控制层:添加预约项目代码如下:@ResponseBody@RequestMapping(value="/insertGoods")publicStringinsertGoods(@RequestBodyMapmap){Datedate=newDate();map.put("publish_time",date);Stringgoods_id=RandNum.getGUID();map.put("goods_id",goods_id);System.out.println("map:"+map.toString());intn=goodsService.insertGoods(map);if(n>0){return"success";}return"failure";}GoodService服务层:添加预约项目代码如下:publicinterfaceGoodsService{List<Goods>findAllGoods();GoodsfindGoodsById(Stringid);List<Goods>findAllGoodsByPages(intsatrt,intpagesize);intdeleteGoodsById(Stringgoods_id);intupdateGoodsById(Mapmap);intinsertGoods(Mapmap);}GoodsServiceImpl实现层:添加预约项目代码如下:@OverridepublicintinsertGoods(Mapmap){returngoodsMapper.insertGoods(map);} GoodsMapper映射层:添加预约项目代码如下:<insertid="insertGoods">insertintogoods(goods_id,goods_title,goods_desc,goods_img,goods_price,publisher_id,publish_time)values(#{goods_id},#{goods_title},#{goods_desc},#{goods_img},#{goods_price},#{publisher_id},#{publish_time})</insert>(3)运行结果预约添加成功的运行结果,如图5-7所示:图5-7添加预约运行结果图5.3.2查询管理实现(1)功能实现分析管理员登陆后查看小程序端中的数据记录,如预约查询。(2)代码实现 GoodPayController控制层,代码如下:@ControllerpublicclassGoodsPayController{@AutowiredGoodsPayServicegoodsPayService;@ResponseBody@RequestMapping(value="/findAllGoodsPayByPage",produces="application/json;charset=UTF-8")publicStringfindAllGoodsPayByPage(@RequestParam("limit")Stringlimit,@RequestParam("page")Stringpage){intstart=(Integer.parseInt(page)-1)*Integer.parseInt(limit);intpageSize=Integer.parseInt(limit);List<Goods>goods=goodsPayService.findAllGoodsPayByPage(start,pageSize); List<Goods>goodsAll=goodsPayService.findAllGoodsPay();Layuil=Layui.data(goodsAll.size(),goods);Stringresult=JSON.toJSONString(l);System.out.println(result);returnresult;}} GoodPayService服务层,代码如下:publicinterfaceGoodsPayService{publicintinsertBuyGoods(Mapmap);List<Goods>findMyGoods(Stringuid);List<Goods>findAllGoodsPay();List<Goods>findAllGoodsPayByPage(intsatrt,intpagesize);} GoodPayServiceImpl实现层,代码如下:@ServicepublicclassGoodsPayServiceImplimplementsGoodsPayService{@AutowiredGoodsPayMappergoodsPayMapper;@OverridepublicintinsertBuyGoods(Mapmap){returngoodsPayMapper.insertBuyGoods(map);}@OverridepublicList<Goods>findMyGoods(Stringuid){returngoodsPayMapper.findMyGoods(uid);}@OverridepublicList<Goods>findAllGoodsPay(){returngoodsPayMapper.findAllGoodsPay();}GoodPayMapper映射层,代码如下:<selectid="findAllGoodsPay"resultType="com.shequ.pojo.Goods">selectg.goods_id,g.goods_title,g.goods_desc,g.goods_img,g.goods_price,fromgoodsginnerjoingoodspaygpongp.goods_id=g.goods_idinnerjoinuseru ongp.uid=u.uid</select><selectid="findAllGoodsPayByPage"resultType="com.shequ.pojo.Goods">selectg.goods_id,g.goods_title,g.goods_desc,g.goods_img,g.goods_price,fromgoodsginnerjoingoodspaygpongp.goods_id=g.goods_id innerjoinuseru ongp.uid=u.uid limit#{arg0},#{arg1}</select>(3)运行结果查看预约的运行结果,如图5-8所示:图5-8查看预约运行结果图5.5系统测试5.5.1黑盒测试本测试中,主要对系统的用户注册登陆、用户预约、用户查看预约记录、管理员管理预约、管理员查看预约表5-1黑盒测试用例测试功能操作步骤预期目标测试结果登录与注册输入正确手机号和密码点击登陆按钮输入错误用户名或密码点击登陆按钮输入手机号和密码点击注册按钮第2步显示登陆成功第4步显示手机号或密码

温馨提示

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

评论

0/150

提交评论