牛奶之家管理系统的设计与实现-毕业设计论文_第1页
牛奶之家管理系统的设计与实现-毕业设计论文_第2页
牛奶之家管理系统的设计与实现-毕业设计论文_第3页
牛奶之家管理系统的设计与实现-毕业设计论文_第4页
牛奶之家管理系统的设计与实现-毕业设计论文_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计)系统分析2.1可行性分析2.1.1经济可行性分析“牛奶之家”的管理系统是利用了诸如IDEA编程工具、Tomcat服务器和MySQL数据库等开放式且免费的资源构建而成。所有这些环境都是在学校里经过深入学习并掌握的,可以独自执行各种任务而无需额外的支出。所有的开发工具都能在网上获取。综上所述,“牛奶之家”管理系统在经济上是可行的。2.1.2技术可行性分析“牛奶之家”管理系统采用了MySQL的数据库和IDEA、Tomcat等开发工具,这为开发任务提供了极大的方便。该系统采用SSM架构进行构建,使得其具有更好的拓展能力和维护能力,同时降低了Java配置代码量,优化了程序代码结构,如今SSM架构已经成为众多用户的选择。综上所述,从技术层面来看开发“牛奶之家”管理系统是可行的。2.1.3操作可行性分析在这个系统的设计过程中,借鉴了大量相似系统的成功实例,对操作界面和功能进行了全面的剖析。通过将多个实例融合在一起,强调以人为本,简化了操作流程。因此,只要有基础的电脑知识,就可以轻松操作这个系统。所以,这个系统的实施是没有问题的。综上所述,“牛奶之家”管理系统在操作上是可行的。2.2需求分析2.2.1关键技术本系统是基于SSM框架来构建的,并且借助Spring框架来执行依赖注入以及事务的管理。也运用SpringMVC框架来处理各种请求以及响应,并且借助MyBatis框架来完成与数据库的对接。系统的开发环境为Windows11系统,数据库MySQL8.0,编程语言为Java、JavaScript等技术。1、SpringSpring作为一个微型的IOC(控制反转)与AOP(面向切面编程)容器,具备丰富的功能组件,例如依赖注入、事务处理和安全保障等。Spring可以帮助开发者解耦业务逻辑,提高代码的可测试与可维护性REF_Ref1815\w\h[12]。2、SpringMVC作为一种Web框架,SpringMVC遵循了MVC(Model-View-Controller)的设计理念,主要负责对网络请求与响应的管理。通过使用DispacherServlet这个核心部件,可以依据请求信息(URL)去挑选相应的网页管理器以完成相应操作REF_Ref1714\w\h[13];同时,该框架还具备灵活的URL映射、请求参数、视图解析及数据校验等特性,使得开发人员能迅速搭建出高质量的Web应用环境。3、MyBatisMyBatis是一个持久层框架,主要用于与数据库之间进行交互。通过XML或注解配置SQL语句,并提供了强大的对象关系映射(ORM)功能,简化了数据库操作的编写和管理REF_Ref1636\w\h[14]。4、SSM框架作为一种广泛应用的JavaWeb构建工具,SSM框架能够将整个系统的结构划分为四个部分:Web表现层、业务逻辑层(Service层)、数据访问层(DAO层)和持久化对象层。每个组成部分都负责执行各自的功能REF_Ref1580\w\h[15]。在Spring、SpringMVC、MyBatis的协同作用下,提供了高效、灵活和可维护的应用程序开发环境。SSM框架可以适用于各种规模的项目,并且具有良好的可扩展性与可测试性。2.2.2业务流程分析进入网站后,用户需要进行注册登录,在网站选择合适的商品下单后支付产生订单信息,再由管理员进行订单的配送员分配,配送员进入网站登录后查看自己分配的订单进行配送,配送完成后用户填写签收信息。用户业务流程图如图2.1所示。图2.1用户业务流程图管理员业务流程图如图2.2所示。图2.2管理员业务流程图配送员工业务流程图如图2.3所示。图2.3配送员工业务流程图2.2.3功能需求分析本研究基于SSM框架开发了一套“牛奶之家”管理系统,旨在提供高效、可靠的功能模块。该系统主要面向消费者、管理员和配送员工,涵盖了牛奶推荐、订单管理、配送跟踪等核心功能。消费者可以浏览各类牛奶产品,并进行下单购买,同时能够实时追踪订单的配送状态。管理员可以管理用户、配送员工信息、进行处理订单等操作。配送员工可以查看配送任务并管理配送信息。具体功能分析如下。1、普通用户模块(1)通知公告:查看系统发布的通知和公告信息,包括促销活动、配送调整等重要通知。(2)牛奶信息:浏览系统推荐的牛奶产品,包括牛奶品牌、类型、生产日期、保质日期、牛奶价格、配送站点等信息,用户可以进行下单、点赞、收藏、评论等操作。(3)个人中心:编辑用户个人信息,包括用户名、联系方式等,对个人信息管理功能。(4)订单信息:查看已下单的牛奶订单信息,包括用户账号、名称、牛奶品牌、类型、牛奶价格、购买数量、金额、配送地址等信息,查看订单状态、支付情况等。(5)配送信息:查看订单的的配送详情和进行签收操作。(6)签收信息:确认收货并提交签收信息,为配送员提供反馈和评价。(7)收藏:用户可以将喜欢的牛奶产品进行收藏,在个人中心收藏中查看进行下单操作。通过以上用户功能的分析,得出了本“牛奶之家”管理系统的用户角色用例如图2.4所示。图2.4普通用户角色用例图2、管理员模块(1)后台首页:查看系统整体运营情况和关键数据,如收入信息、支出信息等的统计信息。(2)系统用户管理:对系统用户信息(管理员、普通用户、配送员)进行增加、更改、删除、权限控制以及账号管理等功能。(3)牛奶推荐管理:管理系统推荐的牛奶产品,包括添加、编辑和删除推荐信息,根据销售数据和用户反馈进行推荐调整。(4)订单信息管理:查看和处理用户的订单信息,包括确认付款、配送等,提供订单状态更新和管理功能。(5)配送信息管理:跟踪和管理订单的配送状态和进度,协调配送员的工作安排和配送路线。(6)签收信息管理:管理用户的签收信息,包括查看和确认等。(7)收支信息管理:记录和管理系统的收入与支出情况,包括删除、查询、添加、重置等操作。(8)配送站点管理:管理配送站点的信息,包括添加、编辑和删除配送站点,维护配送网络和资源分配。(9)牛奶类型管理:管理牛奶产品的类型信息,包括添加、编辑和删除牛奶类型,为用户提供更好的分类浏览和筛选功能。(10)轮播图管理:管理首页轮播图的展示内容,包括添加、编辑和删除图片及链接,提供宣传和促销的管理功能。(11)通知公告管理:对在客户端发布的通知公告信息进行管理,包含了增加、编辑和删除操作,以便于用户能够及时获取重要消息。“牛奶之家”管理系统的全部数据信息是由Web后台管理的管理员负责维护的。管理员角色用例如图2.5所示。图2.5管理员角色用例图3、配送员工管理模块配送信息管理:跟踪和管理分配给自己的订单的配送状态和进度,更新订单的配送情况和实际配送时间。配送员工角色用例如图2.6所示。图2.6配送员工角色用例图2.2.4性能需求分析确保数据库的性能满足业务需求,包括快速的数据检索、更新和插入操作。对数据库的读写频率,进行优化来提高系统整体的性能表现。数据库读写操作的性能应该在合理的范围内,保证数据的一致性与可靠性。系统必须具备优秀的稳定性和可靠性,能持续稳定运行,避免出现系统崩溃等不正常状况。2.2.5数据需求分析用户注册:账号、密码、确认密码、昵称、邮箱、身份。生成的牛奶信息:牛奶品牌、牛奶类型、生产日期、保质日期、牛奶价格、配送站点。生成的订单信息:普通用户、用户名称、牛奶品牌、牛奶类型、牛奶价格、购买数量、购买金额、配送站点、配送地址。生成的配送信息:配送员工、员工姓名、普通用户、用户名称、牛奶品牌、牛奶类型、配送地址、配送时间、配送站点。生成的签收信息:普通用户、用户名称、牛奶品牌、牛奶类型、签收时间。2.2.6接口需求分析1、用户接口登录过程中,通过登录方法的处理,浏览器传来的数据存储在一个Map类型的参数中。经过非空校验后,通过调用Service层的Select方法,生成格式化的Sql查询语句,并传入Service层的另一方法操作数据库。登录过程中使用了MD5加密,登录成功后会生成一个登录令牌,登录令牌为实体类,映射到数据库中的AccessToken表,其中包含令牌ID和用户信息,并通过Service的Save方法将令牌信息存入数据库。最后将数据以Json格式返回给浏览器,浏览器根据特定格式处理返回的数据REF_Ref604\w\h[16]。2、牛奶信息接口通过WebAPI接口访问数据。可以返回用户所填写的牛奶信息:如牛奶品牌、牛奶类型、配送站点等。3、订单接口通过WebAPI接口访问数据。可以返回用户所填写的订单信息:如购买数量、购买金额、配送站点、配送地址等。4、配送信息接口通过WebAPI接口访问数据。可以返回用户所填写的配送信息:如配送员工、员工姓名、配送地址、配送时间、配送站点等。5、签收信息接口通过WebAPI接口访问数据。可以返回用户所填写的签收信息:如用户名称、牛奶品牌、牛奶类型、签收时间等。2.2.7将来可能提出的需求分析1、“牛奶之家”的管理系统的市场地位取决于其性能,因此最佳的性能才是最理想的选择。2、页面的美化。3、灾难恢复,备份和灾难恢复计划对于系统可用性至关重要。4、业务发展可能需要新增功能,例如推荐引擎、多语言支持等。3系统设计3.1架构设计采用MVC架构构建了这个系统,也就是SSM框架中的MVC模式。M是业务模型(Model):对用户发送的请求进行处理和数据的存储,包含的主体主要分为两种,一种是存储和管理数据的数据承载Bean,另一类是专门用于处理这些信息的处理Bean,如Service或Dao对象;V是用户的使用界面(View):用户可以进行操作和浏览的界面;C是控制器(Controller):接收来自用户的请求,然后将其转接到适当的Model上进行处理,接着从Model获取处理后的结果返回给用户。MVC架构程序的工作流程:用户在View界面中发生了一些请求操作时,View会将这些请求向服务端发送。服务端的Controller收到请求后,会选择对应的Model对这些请求进行处理。一旦Model完成处理,它就会把结果反馈到Controller那里。此时,Controller会寻找一个合适的View页面来显示处理过的结果,该页面经渲染(数据填充)后会发回给客户端REF_Ref12998\r\h[17]。系统架构图如图3.1所示。图3.1系统架构图3.2系统功能模块设计在前一部分的讨论里,重点研究了系统的功能性和非功能性的需求,并且分析了“牛奶之家”管理系统中的各个用例。整体功能模块分成了管理员、普通用户、配送员工等三个模块,每个模块登录进去对应相应的功能,其总体设计模块图如图3.2所示。图3.2系统功能模块图3.3数据库设计3.3.1概念模型设计本系统采用MySQL8.0进行数据库设计,MySQL8.0具有性能高效、可移植性好、稳定可靠等优点,对牛奶信息、订单信息、用户信息等进行了设计,配合Navicat使用使表的设计更加方便,表与表之间的关系更加直观,如图3.3所示。图3.3系统数据关系图(Navicat)3.3.2数据库表设计通过前面系统关系图可以看到项目需要创建很多个数据表。以下是系统中主要的数据库表:1、用户账户表user:存放系统中用户(管理员,普通用户和配送员工)的登录详情,记录了用户的ID、账户状态、创建时间、邮箱等信息,如表3.1所示。表3.1用户账户表user序号列名数据类型长度主键外键允许空默认值说明1user_idmediumint8是否用户ID:[0,8388607]2statesmallint5否1账户状态:[0,10](1可用|2异常|3已冻结|4已注销)3user_groupvarchar32是所在用户组:[0,32767]4login_timetimestamp19否CURRENT_TIMESTAMP上一次登录时刻5phonevarchar11是手机号码:[0,11]用户的手机号码,用于找回密码时或登录时6phone_statesmallint5否0手机认证:[0,1](0未认证|1审核中|2已认证)7usernamevarchar16否用户名:[0,16]用户登录时所用的账户名称8nicknamevarchar16是昵称:[0,16]9passwordvarchar64否密码:[0,32]用户登录所需的密码,由6.16位数字或英文组成10emailvarchar64是邮箱:[0,64]用户的邮箱,用于找回密码时或登录时11email_statesmallint5否0邮箱认证:[0,1](0未认证|1审核中|2已认证)12avatarvarchar255是头像地址:[0,255]

续表3.1用户账户表user序号列名数据类型长度主键外键允许空默认值说明13open_idvarchar255是针对获取用户信息字段14create_timetimestamp19否CURRENT_TIMESTAMP创建时刻牛奶信息表milk_information:用来存放在系统中实体牛奶的基本信息,包含了牛奶品牌、牛奶类型、牛奶图片、生产日期、保质日期、牛奶价格等,如表3.2所示。表3.2牛奶信息表milk_information序号列名数据类型长度主键外键允许空默认值说明1milk_information_idint10是否牛奶信息ID2milk_brandvarchar64是牛奶品牌3milk_typevarchar64是牛奶类型4milk_imagevarchar255是牛奶图片5production_datedate10是生产日期6guarantee_datedate10是保质日期7milk_priceint10是0牛奶价格8introduction_to_milktext65535是牛奶介绍9delivery_sitevarchar64是配送站点10hitsint10否0点击数11create_timedatetime19否CURRENT_TIMESTAMP创建时刻12update_timetimestamp19否CURRENT_TIMESTAMP更新时刻13praise_lenint10否0点赞数14order_idint10是否15user_idint是是16admin_idint是是牛奶类型表milk_type:用来存放在系统中实体牛奶的类型基本信息,包含了牛奶类型ID、牛奶类型、创建时间、更新时间,如表3.3所示。表3.3牛奶类型表milk_type序号列名数据类型长度主键外键允许空默认值说明1milk_type_idint10是否牛奶类型ID2milk_typevarchar64是牛奶类型3create_timedatetime19否CURRENT_TIMESTAMP创建时刻4update_timetimestamp19否CURRENT_TIMESTAMP更新时刻5admin_idint是是6milk_idint10是否7order_idint10是否8delivery_idint是是4、订单信息表order_information:在系统中存储实体订单基础信息的表,包含了用户名称、牛奶品牌、牛奶类型、牛奶价格以及购买数量等基础信息,如表3.4所示。表3.4订单信息表order_information编号列名数据类型长度主键外键允许空默认值说明1order_information_idint10是否订单信息ID2regular_usersint10是0普通用户3user_namevarchar64是用户名称4milk_brandvarchar64是牛奶品牌5milk_typevarchar64是牛奶类型6milk_priceint10是0牛奶价格7purchase_quantityint10是0购买数目

续表3.4订单信息表order_information编号列名数据类型长度主键外键允许空默认值说明8purchase_amountvarchar64是购买金额9delivery_sitevarchar64是配送站点10delivery_addressvarchar64是配送地点11pay_statevarchar16否未支付支付状态12pay_typevarchar16是支付类型:微信、支付宝、网银13create_timedatetime19否CURRENT_TIMESTAMP创建时刻14update_timetimestamp19否CURRENT_TIMESTAMP更新时刻15admin_idint是是16milk_idint10是否5、配送信息表delivery_information:在系统中存储实体配送基础信息的表,包含了配送员工、用户名称、配送地点等基础信息,如表3.5所示。表3.5配送信息表delivery_information序号列名数据类型长度主键外键允许空默认值说明1delivery_information_idint10是否配送信息ID2delivery_staffint10是0配送员工3employee_namevarchar64是员工姓名4regular_usersint10是0普通用户5user_namevarchar64是用户名称6milk_brandvarchar64是牛奶品牌7milk_typevarchar64是牛奶类型8delivery_addressvarchar64是配送地点9delivery_timedatetime19是配送时间

续表3.5配送信息表delivery_information序号列名数据类型长度主键外键允许空默认值说明10delivery_sitevarchar64是配送站点11create_timedatetime19否CURRENT_TIMESTAMP创建时刻12update_timetimestamp19否CURRENT_TIMESTAMP更新时刻13admin_idint是是14staff_id是是6、配送站点表delivery_site:用来存放在系统中实体配送站点基本信息,包含了配送站点ID、配送站点、创建时刻、更新时刻,如表3.6所示。表3.6配送站点表delivery_site序号列名数据类型长度主键外键允许空默认值说明1delivery_site_idint10是否配送站点ID2delivery_sitevarchar64否配送站点3create_timedatetime19否CURRENT_TIMESTAMP创建时刻4update_timetimestamp19否CURRENT_TIMESTAMP更新时刻5admin_idint是是6milk_idint10是否7order_idint10是否8delivery_idint是是签收信息表signing_information:用来存放在系统中实体签收的基本信息,包含了用户名称、牛奶品牌、签收时间、牛奶类型等,如表3.7所示。表3.7签收信息signing_information序号列名数据类型长度主键外键允许空默认值说明1signing_information_idint10是否签收信息ID2regular_usersint10是0普通用户3user_namevarchar64是用户名称4milk_brandvarchar64是牛奶品牌5milk_typevarchar64是牛奶类型6create_timedatetime19否CURRENT_TIMESTAMP创建时刻7signing_timedatetime19是签收时刻8update_timetimestamp19否CURRENT_TIMESTAMP更新时刻8、收支信息表income_and_expenditure_information:在系统中存储收支基础信息的表,包含了收支日期、收入金额、支出金额等基础信息,如表3.8所示。表3.8收支信息表income_and_expenditure_information序号列名数据类型长度主键外键允许空默认值说明1income_and_expenditure_information_idint10是否收支信息ID2income_and_expenditure_datedate10是收支日期3income_amountint10是0收入金额4revenue_detailsvarchar64是收入明细5expenditure_amountint10是0支出金额

续表3.8收支信息表income_and_expenditure_information序号列名数据类型长度主键外键允许空默认值说明6expense_detailsvarchar64是支出明细7create_timedatetime19否CURRENT_TIMESTAMP创建时刻8update_timetimestamp19否CURRENT_TIMESTAMP更新时刻9admin_idint是是9、公告表notice:公告表是用来存储系统中实体公告基本信息的表,基本信息包括正文、创建时间、更新时间等,如表3.9所示。表3.9公告表notice序号列名数据类型长度主键外键允许空默认值说明1notice_idmediumint8是否公告id2titlevarchar125否标题3contentlongtext2147483647是正文4create_timetimestamp19否CURRENT_TIMESTAMP创建时刻5update_timetimestamp19否CURRENT_TIMESTAMP更新时刻6admin_idint是是7user_idint是是10、轮播图表slides:轮播图表是用来存储系统中轮播图基本信息的表,基本信息包括标题、链接、内容等,如表3.10所示。表3.10轮播图表slides序号列名数据类型长度主键外键允许空默认值说明1slides_idint10是否轮播图ID2titlevarchar64是标题

续表3.10轮播图表slides序号列名数据类型长度主键外键允许空默认值说明3contentvarchar255是内容4urlvarchar255是链接5imgvarchar255是轮播图6hitsint10否0点击量7create_timetimestamp19否CURRENT_TIMESTAMP创建时刻8update_timetimestamp19否CURRENT_TIMESTAMP更新时刻9admin_idint是是4系统实现4.1开发环境本系统采用了SSM结构体系,基于Java开发,选用MySQL8.0数据库等进行“牛奶之家”管理系统详细设计与实现,其具体系统开发环境如表4.1所示。表4.1系统开发环境硬件环境软件环境CPU:Intel(R)Core(TM)i7-9750HCPU@2.60GHz操作系统:Windows11内存:8GB+8GB数据库:MySQL8.0;JDK版本:1.8硬盘:512GB+1TBWeb服务器:Tomcat7.0.88浏览器:GoogleChrome121开发环境:IntelliJIDEA2020.3.1x64、NavicatPremium15、Maven34.2功能模块实现4.2.1注册模块用户想要进行资料相关信息的查询管理的时候,就必须进行登录,若无账户,在登录界面,点击注册按钮入创建新帐户页面并填入所需信息,一旦成功录入这些信息后,系统会自动将其存储于数据库内,再输入填写好的账号和密码进行登录。从请求体中获取参数,包括用户名等信息。检查数据库中用户名是否存在,如果存在则返回相应的错误信息。获取用户输入的密码,使用对密码进行加密的service.encryption方法,将包含用户名和加密后的密码信息插入到数据库中。根据注册结果返回成功或错误信息。实现注册模块代码如图4.1所示。实现注册模块效果图如图4.2所示。图4.1注册模块部分代码图4.2注册模块实现图4.2.2登录模块在登录界面输入账号+密码,点击登录按钮,会从使用者数据库表格里对用者的帐号做比照。如果其与所输的号码及密码相符则可顺利地访问各个用户的主管理界面,反之若不符合条件将会被告知相应的信息然后返回至登录界面。通过HttpServletRequest获取请求对象,查询数据库中的用户信息,若账号或密码为空,返回错误信息。获取用户所属的用户组信息。有审核状态的用户组,则查询审核状态,确保用户已通过审核。根据用户输入的密码进行验证。若验证成功,生成一个AccessToken并存储到Redis中,设置过期时间为7200秒。根据不同条件返回成功或错误信息,携带用户信息及可能的Token。实现登录模块代码如图4.3所示。实现登录模块效果图如图4.4所示。图4.3登录模块部分代码图4.4登录模块实现图4.2.3系统用户管理模块对于管理员、普通用户以及配送人员进行操作,涵盖了添加、修改和删除用户信息的功能,并提供权限控制与账号管理的服务。用户的权限,存储在实体类Entity下的UserGroup.java中,数据库表中,该表格存储的是用户的相应权限,每一个User用户表下的每一条数据,代表一个用户,里面都有一个UserGroup字段,再根据UserGroupController.java文件中的方法来判断当前所具有的身份和权限,并在浏览器中显示对应的操作界面。实现系统用户管理模块代码图如图4.5所示。实现系统用户管理模块部分效果图如图4.6所示。图4.5系统用户管理模块部分代码图4.6系统用户管理模块实现图4.2.4牛奶信息模块用户可以浏览系统推荐的牛奶产品,包括牛奶品牌、类型、生产日期、保质日期、牛奶价格、配送站点等信息,消费者可以进行下单、点赞、收藏、评论等操作。页面分为不同的区域,包括一个大的容器(<div

class=diy_list

page_milk_information

id=milk_information_list>)。区域内有搜索栏、下拉搜索、列表和分页器等功能块。提供了关键字搜索栏,用户可以输入关键字搜索牛奶品牌、类型和配送站点。使用了BootstrapVue(b-form-input和b-button)实现搜索功能。

提供了下拉菜单,允许用户选择牛奶类型、配送站点以及排序方式,使用了BootstrapVue的b-dropdown和b-dropdown-item组件实现。使用了自定义组件list_milk_information展示牛奶信息列表。使用了BootstrapVue的b-pagination组件,允许用户浏览不同页面的牛奶信息。通过Vue.js的事件绑定(@click和@change)实现用户在页面上的交互,如搜索、下拉选择、排序和分页等。总体而言构建了一个交互式的牛奶信息列表页面,用户可以通过搜索、筛选和分页功能查看和管理牛奶信息。实现牛奶信息模块代码图如图4.7所示。实现牛奶信息模块效果图如图4.8所示。图4.7牛奶信息模块部分代码图4.8牛奶信息模块实现图4.2.5牛奶信息管理模块管理系统推荐的牛奶产品,包括添加、编辑和删除推荐信息,根据销售数据和用户反馈进行推荐调整。在构造函数中调用setService(service)方法,用于设置基类控制器的服务。通过@RequestMapping(/milk_information)将该类映射到处理/milk_information路径下的请求。通过@PostMapping(/add)将该方法映射为处理HTTP

POST请求的方法,对应的端点是/milk_information/add。使用@Transactional注解表示该方法涉及到一个事务。从请求体中读取参数,并调用addMap方法进行处理。返回一个表示成功的响应,通常是一个包含成功状态的Map对象。MilkInformationController类实现了处理牛奶信息相关请求的逻辑,包括基类继承、构造函数注入服务、请求映射以及添加牛奶信息的方法。实现牛奶信息管理模块代码图如图4.9所示。实现牛奶信息管理模块效果图如图4.10所示。图4.9牛奶信息管理模块部分代码图4.10牛奶信息管理模块实现图4.2.6牛奶类型管理模块对牛奶类型的管理包括增加、删除、修改以及查询等操作。定义了一个基于Spring框架的MilkTypeController类,用于处理与牛奶类型(MilkType)相关的HTTP请求。MilkTypeController继承自BaseController<MilkType,

MilkTypeService>,通过@Autowired注解注入了MilkTypeService,并在构造函数中将其设置为服务对象。该控制器还定义了一个处理POST请求的add方法,使用@PostMapping(/add)注解将其映射到/add路径。该方法使用@Transactional注解开启事务,并通过HttpServletRequest获取请求体内容,然后调用service.readBody解析请求体,并执行addMap方法,最后返回一个包含成功信息的Map。该控制器实现了牛奶类型功能的HTTP请求处理,包括添加新牛奶类型的功能。实现牛奶类型管理模块代码图如图4.11所示。实现牛奶类型管理模块效果图如图4.12所示。图4.11牛奶类型管理部分代码图4.12牛奶类型管理模块实现图4.2.7订单信息模块查看已下单的牛奶订单信息,包括用户账号、名称、牛奶品牌、类型、牛奶价格、购买数量、金额、配送地址等信息,查看订单状态、支付情况等。使用Element

UI组件创建了一个订单信息表单。包括用户名称、牛奶品牌、牛奶类型的输入字段以及支付状态的下拉选择。搜索、重置、添加和删除等按钮的显示取决于用户角色和权限。使用Element

UI的el-table组件展示订单信息表格。定义了各个字段的列,如用户名称、牛奶品牌、牛奶类型、购买详情、配送信息、支付状态、支付类型和时间戳等。表格支持排序,并对时间戳进行了自定义格式化。在订单信息表格中添加了一个用于操作的额外列(如详情、配送、支付)。列和按钮的显示受用户角色和权限的控制。按钮包括详情链接、配送按钮和支付按钮,每个按钮的显示受用户权限的条件限制。实现订单信息模块代码图如图4.13所示。实现订单信息模块效果图如图4.14所示。图4.13订单信息模块部分代码图4.14订单信息模块实现图4.2.8订单信息管理模块订单信息管理:对生成的订单进行管理,包含查询、筛选、删除、修改、重置等操作。定义了一个基于Spring框架的OrderInformationController类,用于处理与订单信息(OrderInformation)相关的HTTP请求。OrderInformationController继承了BaseController<OrderInformation,OrderInformationService>的方法,利用@Autowired注解实现了对OrderInformationService的自动注入,在构造函数中将其设定为了服务实例。使用@Transactional注解开启事务,并通过HttpServletRequest获取请求体内容,然后调用service.readBody解析请求体,并执行addMap方法,最后返回一个包含成功信息的Map。该控制器实现了订单信息功能的HTTP请求处理。实现订单信息管理模块代码图如图4.15所示。实现订单信息管理模块效果图如图4.16所示。图4.15订单信息管理模块部分代码图4.16订单信息管理模块实现图4.2.9配送信息管理模块跟踪和管理订单的配送状态和进度,协调配送员的工作安排和配送路线。基于Spring框架的Java后端控制器(DeliveryInformationController),该控制器继承了BaseController<DeliveryInformation,

DeliveryInformationService>,基类提供了通用的基本操作,如增、删、改、查。构造函数通过依赖注入(@Autowired)注入DeliveryInformationService服务,并通过setService方法将服务设置到基类中。通过@PostMapping(/add)映射HTTP

POST请求路径为/delivery_information/add。通过HttpServletRequest获取请求对象,从中读取请求体内容(request.getReader()),并通过service.readBody解析为Map对象。调用this.addMap方法,将Map参数添加到配送信息中。返回一个包含成功状态的Map对象,如success(1)。这个控制器实现了配送信息的添加功能,通过HTTPPOST请求将请求体解析为Map,然后通过服务层进行具体的添加操作,最终返回一个包含操作结果的Map。实现配送信息管理模块代码图如图4.17所示。实现配送信息管理模块效果图如图4.18所示。图4.17配送信息管理模块部分代码图4.18配送信息管理模块实现图4.2.10配送站点管理模块对配送站点进行管理,包含增加、删除、查询、添加操作。定义了一个基于Spring框架的DeliverySiteController类,用于处理与配送站点(DeliverySite)相关的HTTP请求。DeliverySiteController继承自BaseController<DeliverySite,

DeliverySiteService>,其中通过@Autowired注解注入了DeliverySiteService,在构造函数中将其设定为了服务实例。该方法使用@Transactional注解开启事务,并通过HttpServletRequest获取请求体内容,然后调用service.readBody解析请求体,并执行addMap方法,最后返回一个包含成功信息的Map。该控制器实现了配送站点功能的HTTP请求处理,包括添加新配送站点的功能。实现配送站点管理模块代码图如图4.19所示。实现配送站点管理模块效果图如图4.20所示。图4.19配送站点管理模块部分代码图4.20配送站点管理模块实现图4.2.11签收信息管理模块管理用户的签收信息,包括查看和确认等。后端控制器(SigningInformationController)继承了BaseController<SigningInformation,SigningInformationService>,基类提供了通用的基本操作,如增、删、改、查。构造函数通过依赖注入(@Autowired)注入SigningInformationService服务,并通过setService方法将服务设置到基类中。通过@PostMapping(/add)映射HTTP

POST请求路径为/signing_information/add。通过HttpServletRequest获取请求对象,从中读取请求体内容(request.getReader()),并通过service.readBody解析为Map对象。调用this.addMap方法,将Map参数添加到签收信息中。返回一个包含成功状态的Map对象,如success(1)。这个控制器实现了签收信息的添加功能,通过HTTP

POST请求将请求体解析为Map,然后通过服务层进行具体的添加操作,最终返回一个包含操作结果的Map。实现签收信息管理模块代码图如图4.21所示。实现签收信息管理模块效果图如图4.22所示。图4.21签收信息管理模块部分代码图4.22签收信息管理模块实现图4.2.12收支信息管理模块记录和管理系统的收入和支出情况,包括收入信息、支出信息等功能。后端控制器(IncomeAndExpenditureInformationController)继承BaseController<IncomeAndExpenditureInformation,IncomeAndExpenditureInformationService>,基类提供了通用的基本操作,如增、删、改、查。构造函数通过依赖注入(@Autowired)注入IncomeAndExpenditureInformationService服务,并通过setService方法将服务设置到基类中。通过@PostMapping(/add)映射HTTP

POST请求路径为/income_and_expenditure_information/add。通过HttpServletRequest获取请求对象,从中读取请求体内容(request.getReader()),并通过service.readBody解析为Map对象。利用this.addMap()方法,再收支信息中加入Map参数,并返还一个成功状态的success(1)。这个控制器实现了收支信息的添加功能,通过HTTP

POST请求将请求体解析为Map,然后通过服务层进行具体的添加操作,最终返回一个包含操作结果的Map。实现收支信息管理模块代码图如图4.23所示。实现收支信息管理模块部分效果图如图4.24所示。图4.23收支信息管理模块部分代码图4.24收支信息管理模块实现图4.2.13轮播图管理模块管理客户端首页中的轮播图,进行增加、删除、修改、查询等操作。定义了一个基于Spring框架的SlidesController类,用于处理轮播图相关的HTTP请求。SlidesController继承自BaseController<Slides,

SlidesService>,其中通过@Autowired注解注入了SlidesService,并在构造函数中将其设置为服务对象。该控制器实现了轮播图功能的HTTP请求处理,并通过注解配置了相应的服务。实现轮播图管理模块代码图如图4.25所示。实现轮播图管理模块效果图如图4.26所示。图4.25轮播图管理模块部分代码图4.26轮播图管理模块实现图4.2.14通知公告管理模块管理系统的通知公告信息,包含了查看、添加、修改、删除和查询等操作。控制器(@RestController)继承了

BaseController<Notice,

NoticeService>,用于处理通知相关的业务逻辑。在构造函数中通过

setService(service)

方法将注入的

NoticeService

设置为控制器的服务对象,确保控制器可以调用服务层的方法来处理业务逻辑。控制器通过继承通用基类,实现了处理通知相关请求的功能。实现通知公告管理模块代码图如图4.27所示。实现通知公告管理模块效果图如图4.28所示。图4.27通知公告管理模块部分代码图4.28通知公告管理模块实现图5系统测试5.1测试计划5.1.1测试范围与主要内容登录模块:测试用户登录成功的情况。牛奶信息管理模块:测试牛奶信息添加成功的情况和添加失败的情况。通知公告管理模块:测试查询通知公告成功的情况。收支信息功能模块:测试收支信息添加成功的情况和收支信息添加失败的情况。订单信息模块:测试订单信息支付成功的情况。5.1.2测试方法1、边界条件测试对系统的在边界条件下进行测试,如输入最大值、最小值或者特定值。2、手工测试手动对待测试对象进行校验,可以灵活地调整测试步骤和环境。3、功能测试对系统的功能进行测试,检查系统的核心功能能否具有可用性。5.1.3测试环境使用了两台不同的电脑进行测试,一个配置较高,两台电脑的系统环境不一致以及软件的版本不同,在不同的浏览器进行了测试,其具体的环境如表5.1所示。表5.1测试环境客户端软、硬件配置备注硬件软件ACPU:lntel(R)Core(TM)i5-9500CPU@3.00GHzOS:Windows10内存:8GIntelliJIDEA2019.3.3x64、Navicat12硬盘:512GB浏览器:GoogleChromeBCPU:Intel(R)Core(TM)i7-9750HCPU@2.60GHzOS:Windows11内存:8G+8GIntelliJIDEA2020.3.1x64、Navicat15硬盘:512GB+1TB浏览器:Edge5.2功能测试登录功能测试如表5.2所示。表5.2登录功能测试用例表所属模块登录模块用例作者小祝BUG编号BUG-001测试人员小祝测试日期2024.2.20测试类型非业务功能测试测试工具无用例IDTest-001用例描述用户在登录界面,进行登录测试,检测登录情况。前驱条件用户已经注册好账号、密码并进入到登录界面。操作步骤点击前登录界面输入账号和密码。分别输入admin和asd123。点击登录按钮。期望结果登录成功。调整到用户界面。实际结果登录成功。调整到用户界面。测试结果在登录界面输入注册好的账号密码,成功登录到操作界面,测试通过。牛奶添加功能测试如表5.3所示。表5.3牛奶添加功能测试用例表所属模块牛奶信息管理模块用例作者小祝BUG编号BUG-002测试人员小祝测试日期2024.2.20测试类型业务功能测试测试工具无用例IDTest-002

续表5.3牛奶添加功能测试用例表用例描述管理员在牛奶添加页面进行添加。前驱条件管理员进入牛奶添加页面。操作步骤在牛奶的页面中将点击添加,输入牛奶相关信息,输入正确的信息后然后点击提交按钮。在牛奶页面中不填写的牛奶名称,其他信息正常输入提交按钮。期望结果提示添加成功。提示添加失败,信息不能为空。实际结果提示添加成功。提示添加失败,信息不能为空。测试结果系统会根据底层代码逻辑进行用户输入数据的判断,并显示对应成功、失败的提示,测试通过。查询通知公告功能模块测试如表5.4所示。表5.4查询通知公告功能测试用例表所属模块通知公告管理模块用例作者小祝BUG编号BUG-003测试人员小祝测试日期2024.2.21测试类型业务功能测试测试工具无用例IDTest-003用例描述管理员在通知公告页面进行查询。前驱条件管理员进入通知公告页面。操作步骤在通知公告页面。输入通知公告名称。进行查询。期望结果查询成功。显示对应通知公告内容。实际结果查询成功。显示对应通知公告内容。测试结果系统能够根据界面搜索框的信息显示对应的通知公告,测试通过。收支信息添加功能测试如表5.5所示。

表5.5收支信息添加功能测试用例表所属模块收支信息管理模块用例作者小祝BUG编号BUG-004测试人员小祝测试日期2024.2.21测试类型业务功能测试测试工具无用例IDTest-004用例描述管理员在收支信息添加管理页面进行添加。前驱条件管理员进入收支信息添加管理页面。操作步骤在收支信息添加管理的页面中,输入收支明细,输入正确的信息后然后点击提交按钮。在收支信息页面中不填写的收支日期,其他信息正常输入提交按钮。期望结果提示添加成功。提示添加失败,信息不能为空。实际结果提示添加成功。提示添加失败,信息不能为空。测试结果系统会根据底层代码逻辑进行用户输入数据的判断,并显示对应成功、失败的提示,测试通过。订单信息支付功能功能测试如表5.6所示。表5.6订单信息支付功能测试用例表所属模块订单信息模块用例作者小祝BUG编号BUG-004测试人员小祝测试日期2024.2.22测试类型业务功能测试测试工具无用例IDTest-005用例描述进入在订单信息页面后,用户对订单进行支付操作。前驱条件用户下单后进入订单信息页面。

续表5.6订单信息支付功能测试用例表操作步骤用户下单。在订单信息页面点击支付。选择支付方式。确定支付。期望结果提示支付成功。在订单信息界面不出现支付按钮。实际结果提示支付成功。在订单信息界面不出现支付按钮。测试结果订单支付后提示支付成功并显示成功后的订单状态,测试通过。5.3兼容性测试如表5.7所示为系统的各项兼容性测试。表5.7兼容性测试用例表测试项测试内容测试环境预期结果实际结果是否通过浏览器兼容性测试系统在不同浏览器中各项功能和界面的兼容性ChromeEdge在各个浏览器中,系统应该能够正常运行,各项功能和界面都应该能够正确显示和响应用户操作正常运行通过数据库兼容性测试数据库升级后,现有数据是否正确迁移并保持一直;测试在不同数据库环境下性能表现MySQLSQLServer数据库升级后,现有数据成功迁移并保持一直;在不同数据库环境下性能因使用场景和具体配置有所不同正常运行通过操作系统兼容性测试系统在不同操作系统上的部署和运行情况WindowsLinux在Windows、Linux操作系统中系统部署、运行成功正常运行通过Java版本兼容性测试系统在不同的Java版本上运行情况Java8Java11在Java8、Java11版本中系统都能成功运行正常运行通过Web容器兼容性测试系统在不同Web容器上的部署和运行情况TomcatJetty在Tomcat、JettyWeb容器上部署成功、启动关闭正常、运行正常正常运行通过5.4测试结论“牛奶之家”管理系统的测试案例已完成,涵盖了用户的登录模块、牛奶信息管理模块、通知公告管理模块、收支信息管理模块、订单信息模块的功能测试。在此过程里,发现了很多潜在的问题并对之加以修正。经由多轮次的重复试验,该系统能够顺利运作且无任何问题。当然随着时间的推移,将持续优化其性能。6总结与展望6.1总结随着人们对健康生活方式的追求和生活水平的提高,牛奶销售行业面临着新的机遇和挑战。为了满足消费者需求并提升销售效率,牛奶销售管理系统应运而生。“牛奶之家”管理系统的开发以Java编程语言为基础,采取了SSM框架,系统的整体架构为B/S,数据库为MySQL8.0.,Java版本为1.8,服务器为Tomcat7等。在本文中详细分析了“牛奶之家”管理系统的选题背景、需求分析、系统设计等内容。该系统已实现牛奶销售管理系统所需要的基本功能,通过多次反复测试优化完善,提高了系统的整体的实用性、易用性,各项功能都能成功运行,“牛奶之家”管理系统的设计与实现均已完成。6.2展望虽然本系统实现了牛奶销售管理系统所需要的基本功能,但是并没有做到十分成功。在未来的研究中,更加关注用户的体验,可以加入手机版的访问界面和优化前端界面交互,。在数据方面,学习并整合大数据技术,可以实时数据分析以及只能决策,优化业务的流程。强化系统的安全性,整合更安全的身份认证等,以及对系统的优化,如模块化开发、更加灵活的部署和管理等。整体而言,“牛奶之家”管理系统将在技术创新、功能创新、系统优化、用户体验等方面迎接更多的挑战,让“牛奶之家”管理系统不再那么普通。参考文献伊伟.仓储与配送管理课程思政教学实践与应用研究[J].化纤与纺织技术,2024,53(01):228-230.赵彩霞,张栽培,杨

温馨提示

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

评论

0/150

提交评论