




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论研究意义随着计算机信息管理技术的逐步普及,信息交流的便捷已被越来越多的人们所利用。本课题就现如今市场的分析,越来越多的用户喜欢养宠物:比如,当我们现在在傍晚时分漫步街头时,随处可见的遛猫、狗现象,理所当然我们所知道的一样,这成为了绝大多数老年人健身的一大主流趋势,显而易见的是,宠物也成为了老年人解决单人寂寞的很好的伴侣。而本课题的宠物猫店管理系统就是一个由人和计算机等组成的能够提供信息以支持一个或多个宠物的作业、管理、配种和交易功能的系统。宠物猫店管理系统作为客户与宠物之间可以进行更便捷的服务的一种方法和模式,正在得到越来越广泛的应用。宠物猫店管理系统可以很好的解决养宠人士的后续问题,为他们的后顾之忧提供了高效的处理平台。使用计算机对宠物猫店进行管理,具有手工管理所无法比拟的优点。例如:检索迅速。查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高宠物猫店管理的效率,也是创业者或经营者的科学化、正规化管理及与世界接轨的重要条件。研究方法宠物猫店管理系统是信息行业业务流程过程中十分重要且必备的环节之一,在信息行业业务流程当中起着承上启下的作用,其重要性不言而喻。但是,目前许多信息行业在具体的业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效果。针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个宠物猫店管理系统。采用Java作为开发工具,结合Mysql数据库,数据库设计遵循3范式,解决了宠物猫店管理系统中存在的数据安全性、数据一致性以及系统运行速度等问题。本文的组织结构六个章节共同组成了本文研究及设计内容,包括:第一章:绪论。本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。第二章:相关技术介绍。主要介绍Springboot框架、Java嵌入式脚本语言、B/S模式等。第三章:系统分析。包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。第四章:系统设计。本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。第五章:系统实现。将本系统分为前提的开发工具介绍和后期的功能代码实现。第六章:系统测试。系统完成后,根据各个模块的测试用例才对各个模块进行功能测试。相关技术介绍开发技术说明本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,ElementUI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。B/S体系工作原理B/S架构采取浏览器请求,服务器响应的工作模式。用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。在B/S模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由WebServer完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。springboot框架介绍Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。MySQL简介MySQL是一个开放的、快速的、多线程的SQL关系型数据库服务器。由于其体积小、免费、运行速度快以及可以通过相关免费的软件来对MySql数据库中的相关数据结构信息等等优点。受广大中等、小型企业所喜爱并占据了很大地位。本系统在数据库方面选用MySQL,并通过Nacivat来进行MySql数据库的管理。在Mysql的安装过程中,最需要注意的就是数据库的编码问题,所以在安装数据库时需要设置数据库的编码为Utf-8,与前台页面和服务器的编码相一致。JavaScript运行模式JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。1.8.1是一种解释性脚本语言(代码不进行预编译)。1.8.2主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。1.8.3可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。1.8.4跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。1.8.5JavaScript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。JavaScript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
系统分析可行性分析法律可行性分析开发软件有没有触犯法律,这涉及到软件或者系统能不能发布的问题。如果触犯了法律,就必将会受到法律的制裁。常见法律问题就是软件抄袭问题,若是抄袭别人软件,将会受到严厉惩罚。技术可行性分析软件产业经过多年的发展,现在已经达到了很大的规模,从事软件开发的专业人员不计其数,软件产业的重要性已经上升到了影响和推动国民经济发展的核心地位。本系统基于的架构,目前技术已经非常的成熟,是不存在技术上面难以实现的麻烦。经济可行性分析开发软件所需的时间、人力和物力成本,开发完成后的收益如何,从投资回报的角度软件所需功能在现有经济条件能不能实现等进行深入的考虑,都符合实际的要求。所以宠物猫店管理系统具有经济可行性和实用性,可以节约管理成本功能需求分析宠物猫店管理系统主要是为了更加地完善宠物猫店的情况,对用户的信息、猫猫用品、订单中心、会员中心、服务中心、服务分类、预约管理等提供了方便的机制。本系统有多类使用者,分别是管理员和用户注册。以下是从这两种用户的角度分别介绍本系统所要实现的功能。用户:注册:首先检查用户名和邮箱是否存在,如不存在即可进行注册,并将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。登录:使用宠物猫店管理系统前是需要用户登录个人账号。宠物资讯:用户登录宠物猫店管理系统首页时,可以浏览宠物资讯信息,根据不同地宠物可以查看每个不同宠物饲养地方式等,还可以将自己感兴趣的资讯点赞以及加入收藏列表中。会员中心:用户可以在系统中的宠物信息栏内搜索宠物信息,具体包括:封面图、标题、分类、标签等。猫猫用品:用户可以浏览猫猫用品,可以自行搜索某样猫猫用品相关详情。具体功能需求如下:猫猫用品搜索:前台用户可以直接在前台输入框内输入关键词进行搜索,页面弹跳出对应猫猫用品信息。服务中心:用户可以查看宠物服务信息表的宠物状态,可以根据宠物状态发起服务申请:包括填写活动标题、内容、要求、图片。管理员:用户管理:对用户进行管理,用户的注册,包括用户昵称、用户名、用户的宠物信息(宠物类别、宠物性别、年龄等)用户的账号信息:猫猫用品:增加与猫猫用品相关的信息,对用品进行列表,列表信息包括:商品编号、商品名称、商品图片、商品价格、商品库存、商品规格、商品详情。订单列表管理:(1)按购买订单编号查询购买订单;(2)查看购买订单详情;(3)支付情况;非功能需求分析系统非功能需求有非常多,比如性能需求、可承载最大用户数、稳定性、易用性需求等。本系统分析时考虑到易用性需求,因为系统是给人使用的,所以必须充分从用户的角度出发,考虑用户体验,使系统易理解易上手易操作。用例分析1.普通用户主要使用宠物猫店管理系统,下图所示为普通用户的用例图3-1普通用户用例图2.管理员主要负责用户管理、猫猫用品、订单中心、会员中心、服务中心、服务分类、预约管理,下图所示描述管理员的用例图。图3-2管理员用例图业务流程分析系统业务流程图如下所示。图3-3系统业务流程图业务流程图(TFD)通过一些特定的符号描述业务的处理过程,它重点强调业务过程中每一项处理活动和具体业务部门的关系,选择部分模块进行具体描述。重点对本系统整体业务中最为主要的宠物交易及订单业务进行描述,用户进入宠物猫店管理系统后进行各种模块信息的浏览,选择想要购买的宠物添加到购买订单,对宠物饲料下单,用户确认购买、填写订单信息,另外,管理人员进入后端管理,以执行该订单信息控制模块的相关管理方法,并在解决后向客户提供反馈机制。数据流程分析如下为系统的顶层数据流图,外部实体有用户和管理员,分别对系统输入数据,从而得到要输出的数据。图3-4系统顶层数据流图如下图所示为系统底层数据流图。图3-5系统底层数据流图宠物猫店管理系统底层数据流图主要描述系统底层模块的数据流、数据载体、数据处理、外部实体的具体交互。本系统就是管理员和普通用户在用户管理、宠物管理、疫苗药物管理、订单列表管理、下单管理、会员信息管理等模块上的数据交互。系统设计系统架构设计本系统架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。图4-1系统架构图系统功能结构为了将系统从“做什么”落实到“怎么做”,基于系统设计原则,对系统功能进行更适合编码实现的功能划分。根据上图的系统架构设计,整理出规范的系统功能结构图,为系统的实现编码做好准备。如下图所示为系统功能结构图。图4-2系统功能结构图功能模块设计用户管理针对所有用户和管理员。未注册用户点击注册,进入注册页面填写新用户信息,得到自定义生成账号后,注册完成。未注册用户注册的活动图如下图所示。图4-3未注册用户注册活动图用户可进行登录使用更多功能,首先进入用户登录界面,输入用户账号和密码,后台对账号和密码信息进行核对验证,验证成功则页面直接显示登录用户昵称代表登录成功,否则返回用户登录界面。用户登录活动图如下图。图4-4用户登录活动图用户登录后,进入功能页面,可对自己的信息进行管理,包括个人信息,公告栏、宠物资讯、猫猫用品、会员中心、服务中心。用户使用功能活动图如下图所示。图4-5用户使用功能活动图用户功能界面可对自己的密码进行修改。进入修改密码界面后核对当前密码,核对成功后填写新密码。修改密码活动图如下图所示。图4-6修改密码活动图数据库设计宠物猫店管理系统采用的数据库是MySQL,该部分将根据系统需求和设计,设计合理的数据库。本系统考虑到之后系统的扩展集群,数据库将不使用外键。此外,不用外键时数据管理也较为简单,操作更加方便,性能更高。E-R图E-R图,更加直观的告诉开发人员系统的各个数据的属性,各个数据之间的联系,各个数据的类型。能通过该模型更直观地了解数据库的设计,并根据对其逐渐改善。本系统图设计,如下图所示。图4-7系统E-R图表结构设计本系统根据第三范式的思想设计数据库,减少最大程度的冗余,总共建立有多个表,用户注册表、管理员表、招聘员工表、宠物信息表、遗弃宠物表、活动中心表、会员信息表、疫苗药物表、志愿者申请表等。表结构如下所示。user_registration表:名称类型长度不是null主键注释user_registration_idint11是是用户注册IDuser_accountvarchar64是否用户账号gendervarchar64否否性别agevarchar64否否年龄membership_levelvarchar64否否会员等级member_discountvarchar64否否会员折扣examine_statevarchar16是否审核状态recommendint11是否智能推荐user_idint11是否用户IDcreate_timedatetime0是否创建时间update_timetimestamp0是否更新时间service_classification表:名称类型长度不是null主键注释service_classification_idint11是是服务分类IDservice_typevarchar64否否服务类型examine_statevarchar16是否审核状态recommendint11是否智能推荐create_timedatetime0是否创建时间update_timetimestamp0是否更新时间service_centre表:名称类型长度不是null主键注释service_centre_idint11是是服务中心IDservice_typevarchar64否否服务类型single_pricevarchar64否否单次价格shop_addressvarchar64否否店铺地址contactsvarchar64否否联系人contact_numbervarchar64否否联系电话remarkstext0否否备注examine_statevarchar16是否审核状态recommendint11是否智能推荐create_timedatetime0是否创建时间update_timetimestamp0是否更新时间order_center表:名称类型长度不是null主键注释order_center_idint11是是订单中心IDorder_numbervarchar64否否订单编号commodity_numbervarchar64否否商品编号trade_namevarchar64否否商品名称commodity_pricevarchar64否否商品价格membership_levelvarchar64否否会员等级member_discountvarchar64否否会员折扣purchase_quantityint11否否购买数量total_pricevarchar64否否总价格user_accountint11否否用户账号order_date_date0否否下单日期examine_statevarchar16是否审核状态pay_statevarchar16是否支付状态pay_typevarchar16否否支付类型recommendint11是否智能推荐create_timedatetime0是否创建时间update_timetimestamp0是否更新时间membership_center表:名称类型长度不是null主键注释membership_center_idint11是是会员中心IDmember_numbervarchar64否否会员编号member_nicknamevarchar64否否会员昵称membership_levelvarchar64否否会员等级member_discountvarchar64否否会员折扣user_accountint11否否用户账号examine_statevarchar16是否审核状态recommendint11是否智能推荐create_timedatetime0是否创建时间update_timetimestamp0是否更新时间cat_products表:名称类型长度不是null主键注释cat_products_idint11是是猫猫用品IDcommodity_numbervarchar64否否商品编号trade_namevarchar64否否商品名称product_picturevarchar255否否商品图片commodity_pricevarchar64否否商品价格merchandise_inventoryvarchar64否否商品库存commodity_specificationsvarchar64否否商品规格product_detailstext0否否商品详情hitsint11是否点击数praise_lenint11是否点赞数examine_statevarchar16是否审核状态recommendint11是否智能推荐create_timedatetime0是否创建时间update_timetimestamp0是否更新时间booking_management表:名称类型长度不是null主键注释booking_management_idint11是是预约管理IDservice_typevarchar64否否服务类型shop_addressvarchar64否否店铺地址contactsvarchar64否否联系人contact_numbervarchar64否否联系电话single_pricevarchar64否否单次价格service_timesint11否否服务次数total_pricevarchar64否否总价格time_of_appointmentdate0否否预约时间user_accountint11否否用户账号examine_statevarchar16是否审核状态pay_statevarchar16是否支付状态pay_typevarchar16否否支付类型recommendint11是否智能推荐create_timedatetime0是否创建时间update_timetimestamp0是否更新时间系统实现开发工具系统中应用的开发工具总结如下表所示。表5-1开发工具名称工具版本操作系统IDE(IntegratedDevelopmentEnvironment)WindowsEclipse7/8/102017服务器Tomcat9.10.7JDK(JavaDevelopmentKit)JDKJavaSE8.0(1.8.0)数据库浏览器界面工具MySQL谷歌Photoshop5.76.02016注册模块未注册用户在用户注册界面uerRegister.jsp,输入新用户信息,点击注册后,新用户信息由界面传入控制层userAction,调用addUser(user)方法,通过userDAOImp向数据库用户表插入用户信息,由于用户账号是自动生成的,若成功则反馈注册成功,并提示新用户的用户账号;若失败则回到登录界面,并显示登录失败。注册界面如下所示。图5-1注册界面用户注册关键代码如下所示。/***注册*@paramuser*@return*/@PostMapping("register")publicMap<String,Object>signUp(@RequestBodyUseruser){//查询用户Map<String,String>query=newHashMap<>();query.put("username",user.getUsername());Listlist=service.select(query,newHashMap<>()).getResultList();if(list.size()>0){returnerror(30000,"用户已存在");}user.setUserId(null);user.setPassword(service.encryption(user.getPassword()));service.save(user);returnsuccess(1);}/***用户ID:[0,8388607]用户获取其他与用户相关的数据*/@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="user_id")privateIntegeruserId;/***账户状态:[0,10](1可用|2异常|3已冻结|4已注销)*/@Basic@Column(name="state")privateIntegerstate;/***所在用户组:[0,32767]决定用户身份和权限*/@Basic@Column(name="user_group")privateStringuserGroup;/***上次登录时间:*/@Basic@Column(name="login_time")privateTimestamploginTime;/***手机号码:[0,11]用户的手机号码,用于找回密码时或登录时*/@Basic@Column(name="phone")privateStringphone;/***手机认证:[0,1](0未认证|1审核中|2已认证)*/@Basic@Column(name="phone_state")privateIntegerphoneState;/***用户名:[0,16]用户登录时所用的账户名称*/@Basic@Column(name="username")privateStringusername;/***昵称:[0,16]*/@Basic@Column(name="nickname")privateStringnickname;/***密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成*/@Basic@Column(name="password")privateStringpassword;/***邮箱:[0,64]用户的邮箱,用于找回密码时或登录时*/@Basic@Column(name="email")privateStringemail;/***邮箱认证:[0,1](0未认证|1审核中|2已认证)*/@Basic@Column(name="email_state")privateIntegeremailState;/***头像地址:[0,255]*/@Basic@Column(name="avatar")privateStringavatar;/***创建时间:*/@Basic@Column(name="create_time")@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss")privateTimestampcreateTime;@Basic@TransientprivateStringcode;}登录/注销模块用户在首页点击登录,进入用户登录界面uerLogin.jsp,输入用户账号和密码,点击登录,用户账号和密码信息由界面传入控制层userAction,调用userLogin(user)方法,通过userDAOImp向数据库用户表搜索该用户账号与密码,将最终结果反馈到前端。若成功则回到首页;用户成功登录,若失败则回到登录界面,并显示登录失败。用户点击注销,清空浏览器session值,然后返回登录页或者首页。登录界面如下所示。图5-2登录界面登录界面关键代码如下所示。/***登录*@paramdata*@paramhttpServletRequest*@return*/@PostMapping("login")publicMap<String,Object>login(@RequestBodyMap<String,String>data,HttpServletRequesthttpServletRequest){("[执行登录接口]");Stringusername=data.get("username");Stringemail=data.get("email");Stringphone=data.get("phone");Stringpassword=data.get("password");ListresultList=null;Map<String,String>map=newHashMap<>();if(username!=null&&"".equals(username)==false){map.put("username",username);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(email!=null&&"".equals(email)==false){map.put("email",email);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(phone!=null&&"".equals(phone)==false){map.put("phone",phone);resultList=service.select(map,newHashMap<>()).getResultList();}else{returnerror(30000,"账号或密码不能为空");}if(resultList==null||password==null){returnerror(30000,"账号或密码不能为空");}//判断是否有这个用户if(resultList.size()<=0){returnerror(30000,"用户不存在");}UserbyUsername=(User)resultList.get(0);Map<String,String>groupMap=newHashMap<>();groupMap.put("name",byUsername.getUserGroup());ListgroupList=userGroupService.select(groupMap,newHashMap<>()).getResultList();if(groupList.size()<1){returnerror(30000,"用户组不存在");}UserGroupuserGroup=(UserGroup)groupList.get(0);//查询用户审核状态if(!StringUtils.isEmpty(userGroup.getSourceTable())){Stringsql="selectexamine_statefrom"+userGroup.getSourceTable()+"WHEREuser_id="+byUsername.getUserId();Stringres=String.valueOf(service.runCountSql(sql).getSingleResult());if(res==null){returnerror(30000,"用户不存在");}if(!res.equals("已通过")){returnerror(30000,"该用户审核未通过");}}//查询用户状态if(byUsername.getState()!=1){returnerror(30000,"用户非可用状态,不能登录");}Stringmd5password=service.encryption(password);if(byUsername.getPassword().equals(md5password)){//存储Token到数据库AccessTokenaccessToken=newAccessToken();accessToken.setToken(UUID.randomUUID().toString().replaceAll("-",""));accessToken.setUser_id(byUsername.getUserId());tokenService.save(accessToken);//返回用户信息JSONObjectuser=JSONObject.parseObject(JSONObject.toJSONString(byUsername));user.put("token",accessToken.getToken());JSONObjectret=newJSONObject();ret.put("obj",user);returnsuccess(ret);}else{returnerror(30000,"账号或密码不正确");}}用户模块个人资料模块登录用户在首页点击进入用户中心userCenter.jsp,再点击修改个人信息按钮进入userChangeInfo.jsp界面,系统根据session中存储的目前登录的用户的账号,向控制层userAction发送请求,搜索当前用户信息,userAction向userDAOImp调用queryByUserId(user),向数据库的用户表搜索当前用户信息并将用户信息以对象的形式层层返回到userChangeInfo.jsp界面,显示出当前用户的个人信息。若用户要对个人信息进行修改,则通过修改当前信息之后点击确认,向控制层userAction发送更改后的用户信息,调用changeUser(user)方法,通过userDAOImp向数据库用户表更新用户信息,若成功则反馈注册成功,则返回的userChangeInfo.jsp界面被更改成功;若失败则显示修改失败。会员中心模块用户可以在首页进行会员中心搜索,在搜索框输入关键词后,前台发起请求,将传递的keyword参数信息从前台传递ShangpinController类里,匹配到list()方法,list()方法调用ShangpinServiceImpl类的getShangpinByKeywordCategory()方法,如果没有该关键词,则返回空的结果集。会员中心界面如下。图5-3会员中心界面猫猫用品模块用户在登录状态下浏览猫猫用品时可将该猫猫用品加入宠物购买订单,从session中取出该用户的信息,点击加入猫猫用品后前台发起请求,将对应的商品数量shuliang、id参数信息从前台传递GoumaiController类里,匹配到add()方法,add()方法调用GoumaiServiceImpl类的add()方法。猫猫用品界面如下所示。图5-4猫猫用品界面服务中心模块用户在登录状态下浏览服务中心信息时可将该服务中心信息加入收藏记录,从session中取出该用户的信息,点击加入服务中心信息收藏前台发起请求,将对应的服务中心信息shichang、id参数信息从前台传递XiadanController类里,匹配到add()方法,add()方法调用XiadanServiceImpl类的add()方法。服务中心信息界面如下所示。图5-5服务中心界面管理员模块会员中心列表模块管理员在后台管理界面点击到所有会员中心列表界面shangpinxinxi_list.jsp,向控制层shangpinxinxiAction发送请求,搜索当前所有会员信息,shangpinxinxiAction向shangpinxinxiDAOImp调用搜索全部会员中心的请求,向数据库的会员中心表搜索当前所有会员并将留言信息以对象的形式层层返回到shangpinxinxi_list.jsp界面,显示出当前所有会员中心信息。若要对会员中心列表信息进行修改和删除,则分别进入shangpinxinxi_updt.jsp或shangpinxinxi_delete.jsp,通过shangpinxinxiAction向shangpinxinxiDAOImp调用对应的修改或删除方法,向数据库的会员中心表做相应的持久层操作。会员中心列表界面如下所示。图5-7会员中心列表界面宠物资讯管理模块管理员在后台管理界面点击到所有宠物资讯界面chongwufuwuxinxi_list.jsp,向控制层chongwufuwuxinxiAction发送请求,搜索当前所有宠物资讯,chongwufuwuxinxiAction向chongwufuwuxinxiDAOImp调用搜索全部宠物资讯的请求,向数据库的宠物资讯表搜索当前所有宠物资讯并将宠物资讯以对象的形式层层返回到chongwufuwuxinxi_list.jsp界面,显示出当前所有宠物资讯列表。宠物资讯列表管理界面如下所示。图5-8宠物资讯列表管理界面订单中心管理模块根据需求,需要对订单中心进行添加、删除或修改详情信息。删除或修改订单时,系统根据订单中心的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询订单状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。添加订单中心时,会给出数据填写的页面,该页面根据填写好的订单同样会事先发送Ajax请求查询订单号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。订单中心页面设计效果如下图所示。图5-9订单中心界面图订单中心管理的关键代码如下。@PostMapping("/add")@TransactionalpublicMap<String,Object>add(HttpServletRequestrequest)throwsIOException{service.insert(service.readBody(request.getReader()));returnsuccess(1);}@TransactionalpublicMap<String,Object>addMap(Map<String,Object>map){service.insert(map);returnsuccess(1);}publicMap<String,Object>readBody(BufferedReaderreader){BufferedReaderbr=null;StringBuildersb=newStringBuilder("");try{br=reader;Stringstr;while((str=br.readLine())!=null){sb.append(str);}br.close();Stringjson=sb.toString();returnJSONObject.parseObject(json,Map.class);}catch(IOExceptione){e.printStackTrace();}finally{if(null!=br){try{br.close();}catch(IOExceptione){e.printStackTrace();}}}returnnull;}publicvoidinsert(Map<String,Object>body){StringBuffersql=newStringBuffer("INSERTINTO");sql.append("`").append(table).append("`").append("(");for(Map.Entry<String,Object>entry:body.entrySet()){sql.append("`"+humpToLine(entry.getKey())+"`").append(",");}sql.deleteCharAt(sql.length()-1);sql.append(")VALUES(");for(Map.Entry<String,Object>entry:body.entrySet()){Objectvalue=entry.getValue();if(valueinstanceofString){sql.append("'").append(entry.getValue()).append("'").append(",");}else{sql.append(entry.getValue()).append(",");}}sql.deleteCharAt(sql.length()-1);sql.append(")");("[{}]-插入操作:{}",table,sql);Queryquery=runCountSql(sql.toString());query.executeUpdate();}系统测试测试概述软件测试是软件开发完成后必须经过的一道程序,它在软件开发过程中地位十分重要,需要由专业的测试工程师来对软件进行各方面的测试,大到功能模块测试,小到代码的单元测试,这对测试工程师来说需要有足够的耐心和专业的测试方案,软件测试归根结底就是对软件的结构和功能的综合测评,需要做到结构稳定和功能正确,二者兼顾。软件测试也叫寻找系统bug的过程,世界上没有完美无缺、不存在bug的软件,只能将软件的bug降到最低最小,来追求极致。测试过程登录测试登录测试是系统最开始就要进行,测试用户能否登录,才能完成后续的功能操作。登录测试用例表如下所示。表6-1登录测试用例编号YL001程序版本1.00功能名称使用者登录测试编制人李铁蛋功能描述根据用户的登录情况测试用例目的测试用户登录情况是否正确测试项测试数据测试结果预期结果用户名为空请输入用户名请输入用户名密码为空请输入密码请输入密码用户密码组合用户名:klouse密码klouses用户与密码不匹配用户与密码不匹配用户密码组合用户名:klouse密码klouse进入系统正确的用户名和密码登录系统信息录入测试管理员在发布信息页面,通过按照预先格式发布信息,如果因为输入时候缺少相关内容,就不能发布成功,且有相应错误提示信息录入发布测试用例表如下所示。表6-1信息录入发布测试用例编号YL002程序版本1.00功能名称信息发布测试编制人李铁蛋功能描述对使用者发布或者录入信息进行测试,判断其功能是否达到预期的要求用例目的对系统使用者录入发布信息进行原型测试。测试项测试数据测试结果预期结果属性1为空请输入属性1对应的数据请输入属性1对应的数据属性2为空请输入属性2对应的数据请输入属性2对应的数据属性3为空请输入属性3对应的数据请输入属性3对应的数据全部输入数据均填入录入发布成功录入发布成功信息更新测试管理员在更新信息页面,通过按照预先格式更新信息,如果因为输入时候缺少相关内容或者更新的数据不符合当前规范的话,就不能更新成功,且有相应错误提示信息更新测试用例表如下所示。表6-1信息更新测试用例编号YL003程序版本1.00功能名称信息更新测试编制人李铁蛋功能描述对使用者更新信息进行测试,判断其功能是否达到预期的要求用例目的对系统使用者更新信息进行原型测试。测试项测试数据测试结果预期结果属性1编号:321编号更新成功编号更新成功属性2名称:名称1名称更新成功名称更新成功属性3内容:内容1234内容内容更新成功内容更新成功全部输入数据均未更改更新成功更新成功信息删除测试管理员在信息页面,通过点击数据删除按钮来删除该条数据,如果该数据和其他数据有关联,则提示是否确定删除。信息删除测试用例表如下所示。表6-1信息删除测试用例编号YL004程序版本1.00功能名称信息删除测试编制人李铁蛋功能描述对使用者删除信息进行测试,判断其功能是否达到预期的要求用例目的对系统使用者删除信息进行原型测试。测试项测试数据测试结果预期结果数据1无任何关联的数据1数据删除成功数据删除成功数据2和其他数据有关联的数据2请确认是否删除请确认是否删除测试结果在经过之前的所有的工作之后,通过对软件的测试方法、测试原则还有典型的测试用例进行全面的、深入的介绍。经过对系统的全面测试,系统目前所具有的所有功能均成功的实现并且通过了测试,整个系统实现了基于Java开发的期望。总结与展望总结宠物猫店管理系统采用Springboot框架开发,该系统非常完美的集优点于一身,成熟、强大、易理解易使用,通过使用这个结构,降低了开发的难度。本系统实现了基于Springboot的宠物管理平台,将数据操作维护的过程转化成电脑操作流程,具体实现了对系统人员管理、猫猫用品数据维护、订单数据维护、预约数据维护、会员信息管理数据维护,并提供查询统计功能来对宠物猫店管理系统的相关数据进行统计分析,让使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 并发编程的挑战与解决方案的试题及答案
- 经济适应能力对政策执行的影响试题及答案
- 软件设计师考试考点回顾试题及答案
- 2025年技术员考试重点复习方法试题及答案
- 信息处理技术员的实战试题及答案
- 年度财务预算的制定与执行计划
- 计算机信息处理科技发展试题及答案
- 2025年法学概论考试的法律实践与试题及答案
- 软件水平测试的成功策略试题及答案
- 2025租赁合同范本常用版
- 广西壮族自治区2025年4月高三毕业班诊断学考试物理试卷及答案(广西三模)
- 现代农业产业园入园合同
- 第六单元《军民团结一家亲》课件 中学音乐人音版七年级下册
- 做情绪的主人培训课件
- 农业灌溉设施设备采购及安装合同
- 银行消防安全知识培训
- 西安市存量房屋买卖合同
- 武汉2025届高中毕业生二月调研考试数学试题及答案
- 山东省日照市2024-2025学年高一上学期期末数学试题(原卷版+解析版)
- 人教版四年级数学下册《图形的运动(二)》试题(含答案)
- 换电站工程施工方案
评论
0/150
提交评论