基于SSM的校园二手物品交易平台设计与实现
摘 要
在大学校园里,每年毕业生由于各种原因都会存在大量无法带走的物品。除了这些,还有各种闲置的专业辅导书籍资料、衣架等生活用品、四级耳机等各种电子产品,直接丢弃就会浪费,一般都会二手转卖给其他同学,而有的同学则认为二手物品更有性价比更高,也愿意购买二手物品,但二手交易市场因为场地限制,不能时常出现在校园内,为了解决这些问题,本文在可行性分析、需求分析和流程分析的基础上,利用Java、MySQL数据库设计实现了一个基于SSM的校园二手物品交易平台,该平台的主要功能包括用户管理、二手物品类别管理、二手商品信息管理、求购信息管理、订单管理、论坛管理、支付、公告管理、评价管理、数据统计与分析等,借助于这些功能为校园用户提供了更加便捷、安全的二手物品交易服务。此外,主要使用黑盒测试法对本平台进行测试,测试结果表明,系统各功能运行正常,达到了预期目标,可为后续类似系统的开发提供参考和借鉴,具有一定的推广和应用价值。
关键词:校园二手物品交易平台;SSM框架;Java;MySQL数据库
Abstract
On university campuses, every year, due to various reasons, a large number of graduating students have items that they cannot take away with them. In addition to these, there are also various idle items such as professional tutoring books and materials, daily necessities like clothes hangers, and various electronic products such as CET-4 headphones. If these items are directly discarded, it will be a waste. Generally, they are sold second-hand to other students. Some students also think that second-hand items are more cost-effective and are willing to buy them. However, due to the limitation of the venue, the second-hand trading market cannot always be available on campus. In order to solve these problems, based on the feasibility analysis, demand analysis, and process analysis, this paper uses Java and the MySQL database to design and implement a second-hand goods trading platform based on SSM. The main functions of this platform include user management, second-hand goods category management, second-hand commodity information management, purchase request information management, order management, forum management, announcement management, evaluation management, data statistics and analysis, etc. With the help of these functions, it provides more convenient and secure second-hand goods trading services for campus users. In addition, the black-box testing method is mainly used to test this platform. The test results show that all functions of the system operate normally and meet the expected goals. It can provide reference and guidance for the development of subsequent similar systems and has certain promotion and application value.
Keywords: campus second-hand trading;SSM framework;Java ;MySQL database
第1章 绪论
1.1 研究目的和意义
随着生活水平的提高,学生们的购买力不断提高,每年毕业生因为各种原因都会在大学校园中存在大量无法带走的物品。另外,生活中也存在各种大量堆积的专业书籍资料、衣架等生活用品、四级耳机等各种电子产品,直接丢弃会浪费,通常会二手转卖给其他同学,而有些同学认为二手物品更有性价比,愿意购买二手的物品,但二手交易市场因为场地限制,不能时常出现在校园内,但随着网络化和信息化的发展,网络上交易二手物品更加方便快捷,越来越多的人尝试在网上交易平台进行售卖,基于此,尝试基于SSM设计开发一个校园二手物品交易平台,该平台投入使用后,预期在该平台中用户可以发布自己出售的物品,并且找到合适的购买者,双方时时沟通,方便快捷,使用户既可以妥善处理自己物品的同时,获得一些收益。还通过信息化的方式使资源再利用,实现绿色环保。
1.2 国内外研究现状
随着社会经济的快速发展和人们生活水平的不断提高,物品更新换代的速度日益加快,各种堆积的专业书籍资料、衣架等生活用品、四级耳机等各种电子产品,直接丢弃会浪费,这不仅造成了资源的极大浪费,也对环境产生了不小的负担。通常有些人转手卖给其他愿意购买的人,而有些人认为购买二手物品更有性价比,愿意去购买二手物品,在这种情况下,就促进了二手交易的诞生,但是传统二手物品交易方式中存在信息不对称、时间成本高等问题,这种模式主要依赖于人工操作,不仅效率低下,而且极易出现人为错误。为了解决此问题,就迫切需要引入二手物品交易平台,在这种情况下,国内外研究者在二手物品交易平台的设计与开发开展了工作,形成了丰富的研究成果。
在国内,2018年于鑫在《大学生二手交易市场研究与APP架构与实现》[1]中使用SSL/TLS先进的保密技术,设计开发了一个具有用户信息管理,订单管理,信息发布,实施实名认证和手机号码验证等功能的二手物品交易平台,增加账户安全性,有利于处理纠纷时的公正性。对于一些敏感操作,如大额交易、修改关键信息等,采用二次验证,如短信验证码或一次性密码,确保操作由账户持有者本人进行。但是用户角色不同也需要分配不同的权限,上述系统没有解决此问题,而利用AES技术可以解决此问题并提高数据的一致性和可靠性。2020年,高星宇在《校园二手交易平台的设计与实现》[2]中使用AES等对称加密算法技术,设计开发了具有会员管理,商品管理,个人发布管理等功能的二手物品交易平台,对用户信息进行加密存储和传输,在信息上添加附属签名,确保信息的不断完整,更加真实。此外,根据角色(如普通用户、管理员等)不同分配的权限也不相同。确保用户可以浏览符合条件内的数据。不仅关注到用户身份认证等问题,还提升了数据的一致性和可靠性问题,但是随着使用平台的用户逐渐增多,资源加载速度缓慢,而上述平台没有解决资源加载缓慢的问题,而基于SpringBoot的校园二手物品交易系统致力于解决此类问题,2021年,陈冰在《基于SpringBoot的校园二手商品交易系统的设计与实现》[3]中使用SpringSecurity技术,设计开发了具有用户权限管理,用户申请权限等功能的二手商品交易系统,确保用户信息的安全信和交易的可靠性。在前端使用Vue.js或HTML5等技术实现用户交流。使用异步通信,使前后端进行数据交换,实现动态加载和更新页面内容,还使用CDS技术来加速资源加载。2016年,苏玉慧在《基于B/S架构的高校二手网络交易平台的设计与实现》[4]中使用JSP/Servlet技术,设计开发了具有密码找回,商品发布,在线支付等功能的二手物品交易平台,并应用了B/S架构,B/S架构是一种网络结构模式,其客户端主要通过浏览器来访问服务器上的数据及应用,具有易于部署、维护和升级,以及用户访问便捷等优点。但是B/S主要依赖于服务器端,没有体现页面交互,效率相对较低,上述平台并未解决此问题,而基于微信小程序的客户端主要承担显示和交互任务,致力于解决此问题,2022年赵冰在《基于微信小程序的校园二手闲置物品交易平台的设计与实现》[5]中使用微信小程序的WXML、WXSS、JavaScript等技术,设计开发了具有用户注册与登录,物品发布和展示,物品搜索,在线交流和交易,安全性与隐私保护等功能的二手物品交易平台,后端使用Node.js开发,使用Express作为web框架,MySQL作为数据库,实现数据增删改查等操作,尽量减少用户的操作步骤,使用户能够快速上手,在技术层面,用户体验,运营和管理以及法律层面上不断改进和完善,但是因为扩展性的问题,微信小程序会受到微信平台的限制,上述平台并未解决此问题,而基于Android平台的二手物品交易平台扩张性较好,其原生应用可以访问更多的系统资源和API,2020年,郭雨洁在《基于Android的校园二手物品交易平台的设计与实现》[6]中使用Android Studio等专业的Android开发技术,设计开发了具有用户注册登录,商品浏览与发布,购物车与下单,评价体系,个人信息管理,后台管理信息等功能的二手物品交易平台,前台页面展示主要使用XML语言,以及HBuilderX编辑器、uni-app框架等用于辅助开发。采用MVC等设计模式,以及Spring、Spring MVC等Java后端框架,针对Android客户端,通常会直接使用Android的框架,根据页面布局,结合Android原生控件进行创建。采用MVVM等设计模式,有助于完成页面和数据的交互逻辑,提高代码的重用率。Android系统的多样化使得开发者需要面对不同尺寸的设备和不同版本的系统,也不断的推动技术的更新。随着国产安卓手机在市场份额,用户口碑和技术创新等方面都取得了显著进步,使越来越多的用户使用安卓手机,进而推动了基于Android技术的APP开发成为主流。
国外学者深入研究二手交易平台的信任机制,包括身份认证,交易监督、信用评价等方面,通过构建完善的信任机制,提高交易的安全性和可靠性。许多国内学者加强了实名认证技术。2023年,H D A ,Syndi N ,Mia M在《Central nervous system infection in a pediatric population in West Java》[7]中使用Vue3,Spring Boot,MySQL等前沿前后端技术,设计开发了一个具有用户登录,二手物品发布等功能的二手物品交易的系统,为学生提供了一种实用经济实惠的交换和购买教材书的方式,他促进了学生间的社区感,并通过直观的界面和有效的管理功能实现顺畅的交易。但是顺畅交易之后后续步骤也应加强关注消费者争议问题,而上述系统并未解决此问题,而利用ODR技术可以逐步解决该问题,使消费者争议问题不断完善,2024年G. D C在《CheckFoV:A Java tool to compute and draw Field of View, visual overlapping and targets coverage》[8]中引入ODR技术,设计开发了一个具有用户调解,用户登录注册,验证信息等功能的二手物品交易平台,为消费者和卖家提供了一个便捷、高效的争议解决平台,通过平台,双方可以提交争议信息,证据材料,并由平台或者第三方调解机构进行在线调解或仲裁,简化了争议解决流程,还降低了解决成本,提高了效率。此外,二手商品平台的在线争议解决机制在解决消费者满意度问题方面仍存在提升空间。
1.3主要研究内容
针对传统的二手交易市场杂乱,信息沟通有障碍,买卖双方无法立即联系的问题,本文尝试用SSM框架,使用Java语言,结合MySQL数据库,设计实现一个二手物品交易平台,使用户可以发布自己出售的物品,并且找到合适的购买者,双方即时沟通,方便快捷。
该平台预期功能有用户管理、二手商品类别管理、二手商品管理、订单管理、求购信息管理、支付、公告管理、评价管理、数据统计与分析、论坛管理等。
应完成的主要工作有:1.查找不同年限学者的论文,学习论文的基本要点,了解前沿技术;2.对平台进行可行性分析和业务流程分析,确定二手物品交易平台的主要功能;3.对平台进行功能设计,包括功能结构划分和数据库设计,选取合适的数据库;4.了解系统功能实现的主要技术;5.对平台的功能进行测试,不断完善相关功能,以保障平台运行减少卡顿。
第2章 关键技术简介
2.1 Java语言
Java框架是一个为开发人员提供的一套预定义的结构和模板,通过抽象化和模块化的方式,使得开发者能够避免重复造轮子,提高开发效率。这意味着,只要目标系统装有Java虚拟机(JVM),Java程序便能轻松运行于各类操作系统之上,为开发者带来了极高的灵活性,确保了应用程序能无缝适应多种运行环境。同时,Java框架通常会遵循一定的设计模式和约定,使得开发者在开发过程中不需要关注大量底层细节,可以将更多精力集中在业务逻辑的实现。
2.2 SSM框架
SSM框架是JavaWeb开发中经常使用的组合,主要由Spring、SpringMVC和MyBatis三个部分整合而成。Spring它是一个轻量级的 Java 开发框架,核心特性为依赖注入(DI)和面向切面编程(AOP);SpringMVC能清晰的分离模型、视图和控制器,使得开发者可以专注于业务逻辑的实现;MyBatis使开发者只需关注 SQL 语句本身,而无需处理数据库连接、Statement 创建等繁琐操作。SSM框架整合了这三个组件,使开发者更高效、便捷的构建出高质量的JavaWeb应用程序。
2.3 Vue框架
Vue.js是一个轻量级且高效的框架,其文件体积小巧,加载迅速,这对于提升应用性能和加快用户加载及交互体验至关重要。Vue.js的渐进式设计理念允许开发者根据项目需求逐步引入,既可以将其融入现有项目,也能用来构建完整的单页面应用(SPA)。这种灵活性使得Vue.js能够很好地适应不同种类的项目,可以更好的融入进项目。Vue.js的语法简洁直观,学习门槛相对较低[9]。它配备了详尽的文档和友好的API接口,极大地缩短了开发者的学习周期,让新手也能快速上手。并且,Vue.js引入了双向通信的机制,实现了两相邻层的即时更新。这一特性简化了开发流程,大幅减少了手动操作DOM的需求,提升了开发效率。
2.4 MySQL数据库
MySQL是一款开源的数据库管理系统,其免费获取与使用的特性,让它深受众多开发者及组织的青睐,特别是对于小型项目和个人开发者来说更是如此[10]。MySQL兼容性极强,支持多平台,MySQL 采用了多种优化技术,如查询优化器、索引优化等,能够快速处理大量数据和高并发的访问请求。它可以在不同的硬件环境下高效运行,无论是在低端服务器还是高端集群系统中,都能提供良好的性能表现。
2.5 B/S架构
B/S架构允许用户借助标准的Web浏览器,在Windows、Mac或Linux等多种操作系统上轻松访问应用程序。这种跨平台特性赋予了系统高度的灵活性,确保用户能在不同设备和操作系统上享受一致的应用体验。由于前端应用直接在浏览器中运行,用户不用再次安装客户端软件,只要有一个正常工作的Web浏览器就行。这不仅降低了部署和维护的成本,还明显提高了系统的易用性和普及度。在B/S架构下,应用程序的更新与维护工作均在服务器处进行,无需思考更新问题。这种集中分布的维护方法降低了维护的复杂度[11]。此外,用户只需通过浏览器便能访问应用程序,无论身处何地,只要能接入互联网,便能远程使用系统。这对于地理上分散的团队之间的协作以及业务流程的灵活调整具有极大的推动作用。
第3章 系统分析
3.1可行性分析
3.1.1技术可行性
平台将采用的 SSM框架,Java语言,MySQL三种技术均具有较好的实践经验,并通过了实际工程的检验。SSM框架具有开发速度快、配置简单、功能丰富等优点,随着技术的不断进步与革新,SSM及其相关技术也在持续迭代升级,这为平台的长期稳定运行、维护以及后续的功能拓展提供了坚实可靠的技术保障,Java 语言丰富的生态环境和强大的开发能力,MySQL 数据库的性能高、可靠性高、使用方便,为本平台的实施奠定了坚实的基础。这些技术的成熟性以及丰富的案例资源,可以让我快速学习和掌握相关技术,减少开发过程中遇到的困难,加快项目进度。因此,平台的开发在技术上是可行的。
3.1.2经济可行性
在投入方面,SSM框架凭借其庞大且丰富的依赖库,以及代码的自动配置功能,能够大幅削减重复性代码的编写量,从而显著节省开发过程中的人力成本与时间成本。数据库选用MySQL开源数据库,可免去高昂的数据库授权费用。Java作为一种免费的编程语言,可以免费获取和使用,极大的降低本设计的开发成本。鉴于这个平台可以极大地提高校园二手物品交易的效率,减少用户的时间成本,提升校园管理的水平,增强用户体验。所以在开发上是一个低投入、高产出的平台,因此在经济上是可行的。
3.1.3操作可行性
本平台将采用图形化的用户界面,设计理念简洁明了,确保用户无需专业知识,也无需复杂流程,就能轻松完成各项操作。界面布局直观,功能模块清晰,操作步骤简单,使得无论是普通用户还是管理员,都能迅速上手。用户和管理员能够在没有任何技术背景的情况下,轻松地完成系统中的各项任务。让每个人都能在短时间内掌握操作要领,享受高效便捷的服务体验。因此在操作上是可行的。
3.2 需求分析
平台将为用户能找到合适的二手物品提供帮助,帮助用户发布购买物品的信息,也允许用户可以发布要出售的物品的信息,为买卖双方提供一个交流的平台,双方即时沟通,方便快捷,还可以用信息化的方式避免资源的浪费,实现绿色环保。
该系统用户角色拟确定有用户和管理员。
管理员可以管理平台,能够对用户进行管理,记录用户的信息,管理员需要进行商品类别添加,方便用户分类查看商品,还可进行二手商品管理,审核二手商品的发布,最重要的是求购信息审核,方便用户寻找想要的物品,进行商品订单管理,查看订单,管理员进行论坛信息管理和公告信息管理,可进行删除、修改操作,此外,管理员还可以对数据进行分析,查看浏览人数等,其用例图如图3.1所示。
管理员用户管理商品订单管理商品类别添加求购信息审核论坛信息管理公告信息管理评论管理二手商品管理数据统计分析管理员用户管理商品订单管理商品类别添加求购信息审核论坛信息管理公告信息管理评论管理二手商品管理数据统计分析图 3.1 管理员用例图
用户可注册新账号并使用账号密码登录,用户可以去个人中心进行信息维护,进入个人中心界面进行二手商品管理,对商品进行添加、删除的操作,此外还可以查看他人发布的二手商品挑选想要的,可以添加进订单中,进行订单管理,如取消订单,当找不到要购买的物品时,可以进行求购信息发布,寻找想要的物品,支付,最后进行论坛发布,用户可根据某个话题发布自己的想法,也可去某个商品下直接进行商品评价,还可以进行公告查看,其用例图如图3.2所示。
用户登录注册个人信息维护二手商品管理求购信息发布论坛发布订单管理评论发布公告查看支付用户登录注册个人信息维护二手商品管理求购信息发布论坛发布订单管理评论发布公告查看支付图 3.2 用户用例图
3.3业务流程分析
该平台专门为校园学生提供定制化服务,拥有两种专属角色:用户和管理员。管理员添加商品类别,生成商品分类表,用户可查看商品分类去添加商品信息,生成商品表,用户可查看商品信息,去购买物品生成相应的订单,订单完成后可发表评价,还可查看评价,业务流程如图3.3所示。
商品分类表添加商品信息商品表管理员查看商品信息下单订单表支付订单完成评价用户查看评价管理员用户用户添加商品类别用户用户商品分类表添加商品信息商品表管理员查看商品信息下单订单表支付订单完成评价用户查看评价管理员用户用户添加商品类别用户用户
图 3.3业务流程图
第4章 系统设计
4.1功能模块设计
基于需求分析的结果,按照高内聚低耦合的原则,将系统功能分为用户管理、二手商品类别管理、二手商品管理、订单管理、求购信息管理、支付、评价管理、订单管理、数据统计与分析、论坛管理等功能。系统的功能模块图如图4.1所示。
基于SSM的校园二手物品交易平台用 户 管 理 二 手 商 品 类别 管 理 二 手 商 品 管 理 求 购 信 息 管 理 订 单 管 理 支 付评 价 管 理数 据 统 计 与 分 析论 坛 管 理公 告 管 理基于SSM的校园二手物品交易平台用 户 管 理 二 手 商 品 类别 管 理 二 手 商 品 管 理 求 购 信 息 管 理 订 单 管 理 支 付评 价 管 理数 据 统 计 与 分 析论 坛 管 理公 告 管 理
图4.1系统功能模块图
4.2数据库设计
4.2.1 数据库概念结构设计
数据库概念结构设计就是把真实世界中的各种要素与关系进行抽象,使之成为一种能够被信息系统所理解与处理的方式,也就是所谓的实体关联模型(Entity Connectivity Model)。它以实体、属性、关联等形式对真实世界中的事物以及它们之间的联系进行描述,可以帮助开发人员对数据库的结构进行深入的了解和设计。
用户实体包含用户id、密码等属性,其实体属性图如图4.2所示。
用户性别用户id昵称手机号码年龄密码创建时间账号用户性别用户id昵称手机号码年龄密码创建时间账号
图 4.2用户实体属性图
二手商品实体包含用户id、名称、类别等属性,其实体属性图如图4.3所示。
二手商品价格商品id图片新旧程度名称类别id内容用户id二手商品价格商品id图片新旧程度名称类别id内容用户id
图 4.3二手商品实体属性图
二手商品类别实体中包括id,图像等属性,其实体属性图如图4.4所示。
二手商品类别别类别名称类别id图像创建时间二手商品类别别类别名称类别id图像创建时间
图 4.4 二手商品类别属性图
订单实体包含订单id、订单编号、下单时间等,其实体属性图如图4.5所示。
订单收货地址订单id交易方式订单编号商品id用户id价格订单收货地址订单id交易方式订单编号商品id用户id价格
图 4.5订单实体属性图
求购实体包含商品名称、id、内容等属性,其实体属性图如图4.6所示。
求购商品名称用户id内容审核信息Id发布日期类别id求购商品名称用户id内容审核信息Id发布日期类别id
图 4.6 求购实体属性图
公告实体包括id、浏览量等属性,其实体属性图如图4.7所示。
公告公告id浏览量内容图像标题简介类别名称发布时间公告公告id浏览量内容图像标题简介类别名称发布时间
图 4.7 公告实体属性图
评论实体包括了回复内容、赞等属性,其实体属性图如图4.8所示。
评论Id用户id头像订单id回复内容赞踩评论Id用户id头像订单id回复内容赞踩
图 4.8评论实体属性图
论坛实体包括内容等属性,其实体属性图如图4.9所示。
论坛用户idId内容创建时间头像论坛用户idId内容创建时间头像
图 4.9论坛实体属性图
系统ER图如图4.10所示。
商品订单包含属于属于商品分类用户1N1N1属于N1评价N属于1N商品订单包含属于属于商品分类用户1N1N1属于N1评价N属于1N
图 4.10系统ER图
4.2.2数据库逻辑结构设计
数据库逻辑结构设计是数据库设计过程中的一个重要阶段,它是将概念结构设计阶段得到的概念模型(如E-R图表示的模型),转换为具体的数据库管理(DBMS)所支持的数据模型(如关系模型、层次模型、网状模型等,目前最常用的是数据模型,并对数据模型进行优化,以提高数据库的性能和效率。得到一个结构合理、数据完整、冗余度低、易于实现和维护的数据库逻辑结构,使其能够有效地存储和管理数据,满足应用系统的功能需求。
用户信息表包括用户id、创建时间、年龄、手机号码等字段,具体表结构如表4.1所示。
表4.1用户信息表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 用户id | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| zhanghao | varchar | 20 | 账号 | ||
| mima | varchar | 10 | 密码 | ||
| nicheng | varchar | 20 | 昵称 | ||
| xingbie | varchar | 20 | 性别 | ||
| nianling | int | 年龄 | |||
| shoujihaoma | varchar | 11 | 手机号码 |
二手商品类别表包括二手商品id、图像等字段,具体表结构如表4.2所示。
表4.2二手商品类别表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 二手商品类别id | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| leibiemingcheng | varchar | 8 | 类别名称 | ||
| image | longtext | 4294967295 | 图像 |
二手商品表包括二手商品id、内容、价格等字段,具体表结构如表4.3所示。
表4.3二手商品表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 商品id | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| mingcheng | varchar | 8 | 名称 | ||
| leibieid | varchar | 8 | 类别id | ||
| xinjiuchengdu | varchar | 5 | 新旧程度 | ||
| shangpinneirong | longtext | 200 | 商品内容 | ||
| jiage | double | 价格 | |||
| yonghuid | varchar | 15 | 用户id |
二手商品评论表包括用户id、回复内容、赞等字段,其表结构如表4.4所示。
表4.4二手商品评论表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 评论编号 | 主键 | ||
| userid | bigint | 用户id | |||
| dingdanid | longtext | 4294967295 | 订单id | ||
| reply | longtext | 4294967295 | 回复内容 | ||
| thumbsupnum | int | 赞 | 0 | ||
| crazilynum | int | 踩 | 0 | ||
| Picture | longtext | 4294967295 | 头像 |
论坛表包括创建时间等字段,具体表结构如表4.5所示。
表4.5论坛表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 论坛id | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| userid | bigint | 用户id | |||
| content | longtext | 4294967295 | 评论内容 | ||
| touxiang | bigint | 头像 |
求购信息表包括商品名称及id等字段,具体表结构如表4.6所示。
表4.6求购信息表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 求购信息id | 主键 | ||
| Yonghuid | varchar | 8 | 用户id | ||
| Shangpinneirong | longtext | 4294967295 | 商品内容 | ||
| faburiqi | date | 9 | 发布日期 | ||
| 类别id | varchar | 10 | 类别id | ||
| shenhexinxi | longtext | 4294967295 | 审核信息 | ||
| shangpinmingcheng | varchar | 18 | 商品名称 |
商品订单表包括收货地址、交易方式等字段,具体表结构如表4.7所示。
表4.7商品订单
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 订单id | 主键 | ||
| dingdanbianhao | varchar | 20 | 订单编号 | ||
| yonghuid | varchar | 10 | 用户id | ||
| shangpinid | varchar | 200 | 商品id | ||
| shouhuodizhi | varchar | 50 | 收货地址 | ||
| jiaoyifangshi | varchar | 10 | 交易方式 | ||
| Jiage | varchar | 20 | 价格 |
公告信息包括id、标题、发布时间等字段,其表结构如表4.8所示。
表4.8公告信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
|---|---|---|---|---|---|
| id | bigint | 公告id | 主键 | ||
| addtime | timestamp | 发布时间 | CURRENT_TIMESTAMP | ||
| title | varchar | 200 | 标题 | ||
| introduction | longtext | 4294967295 | 简介 | ||
| Gonggaoleibie | varchar | 8 | 公告类别 | ||
| picture | longtext | 4294967295 | 图像 | ||
| content | longtext | 4294967295 | 内容 | ||
| liulanliang | bignit | 20 | 浏览量 |
第5章 系统实现
5.1 实现环境
Java 开发环境:JDK1.8
开发工具:IDEA
数据库:MySQL5.7
部署环境:Windows 11
测试工具:Edge 浏览器
5.2用户管理
对于那些没有账号的用户,登录页面提供了“注册用户”的选项。点击注册选项后,用户将会进入注册页面,他们需要按照提示填写必要的用户信息,包括姓名、密码、邮箱等,验证用户账号不重复,然后点击“注册”即可完成,如图5.1所示。

图 5.1 用户注册界面
注册完成后,用户点击“登录/注册”按钮,输入账号和密码,当密码与账号一致时,将会跳转至首页,如图5.2所示。

图 5.2用户登录界面
当用户密码不对时,将显示账号或密码不正确,如图5.3所示。

图 5.3登录失败界面
实现用户注册登录关键代码如下:
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
用户登录成功,将会进入用户平台界面,如图5.4所示,就会看到在平台界面导航栏里有首页、二手商品、求购信息、论坛、公告信息、留言板。

图 5.4用户首页界面
用户点击5.4图的个人中心按钮,进入个人中心页面,如图5.5所示。

图 5.5个人中心界面
用户可以修改和查看自己的个人信息。当用户电话信息发生变化时可以选择更改按钮,更改信息,但不可更改账号,账号用于辨别用户,无法更改如图5.6所示。

图 5.6 用户信息更改界面
个人中心关键代码:
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UsersEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UsersEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
管理员想要对平台的所有信息进行管理,先进行登录,登录界面如图5.7所示。

图 5.7管理员登录界面
管理员登录成功后进入管理员平台界面,如图5.8所示。

图 5.8 管理员端首页界面
管理员登录关键代码:
* 登录用户信息
*/
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginUser {
}
管理员点击图5.8导航栏中的用户就会进到用户管理界面,如图5.9所示,可以查看、修改用户资料,包括性别、姓名、联系方式等。 管理员可修改、更新用户的信息。

图 5.9用户管理界面
管理员还可以点击5.9中的状态对用户进行账号锁定,当用户登录的时候显示账号已锁定,请联系管理员,如图5.10所示。

图 5.10用户锁定时的登录界面
管理员锁定用户关键代码:
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", username));
if(u!=null && u.getStatus().intValue()==1) {
return R.error("账号已锁定,请联系管理员。");
}
if(u==null || !u.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(u.getId(), username,"yonghu", "用户" );
return R.ok().put("token", token);
}
5.3二手商品类别管理
管理员点击5.8中的分类,进入到二手商品类别管理界面,管理员可以对已有的类别进行管理,实行查看、修改等操作,如图5.11所示。如果有需要添加的,点击添加按钮。

图 5.11二手商品类别管理界面
用户想要售卖二手商品时,可添加二手商品,在图5.4个人中心的二手商品栏里添加商品,下拉类别,将商品分入各自类别里面,如图5.12所示。

图 5.12商品按类别添加界面
当用户想要查看商品时,可分类查看,也可按交易方式查看,点击“包”,即可显示所有的包,如图5.13所示。

图 5.13用户分类查看界面
二手商品类别关键代码:
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
FenleiEntity fenlei = fenleiService.selectById(id);
fenlei = fenleiService.selectView(new EntityWrapper<FenleiEntity>().eq("id", id));
Map<String, String> deSens = new HashMap<>();
DeSensUtil.desensitize(fenlei,deSens);
return R.ok().put("data", fenlei);
}
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
FenleiEntity fenlei = fenleiService.selectById(id);
fenlei = fenleiService.selectView(new EntityWrapper<FenleiEntity>().eq("id", id));
Map<String, String> deSens = new HashMap<>();
DeSensUtil.desensitize(fenlei,deSens);
return R.ok().put("data", fenlei);
}
/**
* 后台保存
*/
@RequestMapping("/save")
public R save(@RequestBody FenleiEntity fenlei, HttpServletRequest request){
//ValidatorUtils.validateEntity(fenlei);
fenleiService.insert(fenlei);
return R.ok().put("data",fenlei.getId());
5.4二手商品管理
用户在图5.4个人中心中点击“二手商品”可以进入二手商品添加界面,发布二手商品,如图5.14所示,填写商品名称,选择分类等信息,即可发布成功。

图 5.14二手商品添加界面
其他用户点击图5.4中的“二手商品”进入二手商品界面,一旦进入二手商品界面,便会看到所有用户发布的二手商品列表。如图5.15所示。

图 5.15二手商品查看界面
用户点击图5.15中的图片,会看到相应商品详情,查看新旧程度等信息如图5.16所示。

图 5.16二手商品详情界面
用户点击图5.16的“联系TA”按钮,进入用户聊天框,用户可以留言询问物品的各种信息包括用户间如何交易,还可以彼此给联系方式,加好友。如图5.17所示。

图 5.17用户联系界面
大数据将会根据用户点击浏览的次数完成信息筛选对用户进行商品推荐。用户进入到二手商品推荐界面中,平台中二手商品信息进行推荐,使用协同过滤推荐算法进行推荐。如图5.18所示。

图 5.18推荐信息查看界面
二手商品推荐关键代码:
/**
* 协同算法(基于用户收藏的协同算法)
*/
@RequestMapping("/autoSort2")
public R autoSort2(@RequestParam Map<String, Object> params,ErshoushangpinEntity ershoushangpin, HttpServletRequest request){
String userId = request.getSession().getAttribute("userId").toString();
Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
List<StoreupEntity> storeups = storeupService.selectList(new EntityWrapper<StoreupEntity>().eq("type", 1).eq("tablename", "ershoushangpin"));
Map<String, Map<String, Double>> ratings = new HashMap<>();
if(storeups!=null && storeups.size()>0) {
for(StoreupEntity storeup : storeups) {
Map<String, Double> userRatings = null;
if(ratings.containsKey(storeup.getUserid().toString())) {
userRatings = ratings.get(storeup.getUserid().toString());
} else {
userRatings = new HashMap<>();
ratings.put(storeup.getUserid().toString(), userRatings);
}
if(userRatings.containsKey(storeup.getRefid().toString())) {
userRatings.put(storeup.getRefid().toString(), userRatings.get(storeup.getRefid().toString())+1.0);
} else {
userRatings.put(storeup.getRefid().toString(), 1.0);
}
}
}
// 输出推荐结果
System.out.println("Recommendations for " + targetUser + ":");
for (String item : recommendations) {
System.out.println(item);
}
EntityWrapper<ErshoushangpinEntity> ew = new EntityWrapper<ErshoushangpinEntity>();
ew.in("id", String.join(",", recommendations));
if(recommendations!=null && recommendations.size()>0) {
ew.last("order by FIELD(id, "+"'"+String.join("','", recommendations)+"'"+")");
}
PageUtils page = ershoushangpinService.queryPage(params, ew);
List<ErshoushangpinEntity> pageList = (List<ErshoushangpinEntity>)page.getList();
if(pageList.size()<limit) {
int toAddNum = limit-pageList.size();
ew = new EntityWrapper<ErshoushangpinEntity>();
ew.notIn("id", recommendations);
ew.orderBy("id", false);
ew.last("limit "+toAddNum);
pageList.addAll(ershoushangpinService.selectList(ew));
} else if(pageList.size()>limit) {
pageList = pageList.subList(0, limit);
}
管理员点击图5.8中的“二手商品”,进入二手商品管理界面,可查看物品上架的时间,可对二手商品进行查看和删除的操作,如图5.19所示。

图 5.19二手商品管理界面
管理员点击5.19中的“二手物品类型统计”按钮,查看二手商品类型统计,点击5.19中“点击量统计”按钮对商品的点击量进行统计,更好的了解商品的售卖情况,如图5.20所示。

图 5.20点击量统计界面
5.5求购信息管理
当用户浏览二手商品信息界面,并没有找到自己想要的物品信息时,用户可以自己添加求购信息,获得想要的物品,用户点击5.4中的个人中心点击“求购信息”进入求购信息界面,发布求购信息,如图5.21所示。

图 5.21求购信息发布界面
求购信息关键代码:
/**
* 查询
*/
@RequestMapping("/query")
public R query(QiugouxinxiEntity qiugouxinxi){
EntityWrapper< QiugouxinxiEntity> ew = new EntityWrapper< QiugouxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( qiugouxinxi, "qiugouxinxi"));
QiugouxinxiView qiugouxinxiView = qiugouxinxiService.selectView(ew);
return R.ok("查询求购信息成功").put("data", qiugouxinxiView);
}
管理员点击5.8中的“求购信息”,进入求购信息管理界面,点击“查看”、“删除”按钮,可对求购信息进行查看、删除等操作,如图5.22所示。

图 5.22求购信息管理界面
管理员点击图5.22中的“审核”按钮,可对用户发布的求购信息进行审核,查看商品质量,反馈审核内容,如图5.23所示。

图 5.23求购信息审核界面
用户填写完图5.21中的求购信息后,经管理员审核完成后,将会看到自己发布的二手物品求购信息在求购信息界面中,如图5.24所示。

图 5.24求购信息查看界面
管理员审核关键代码:
@RequestMapping("/shBatch")
@Transactional
public R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf){
List<QiugouxinxiEntity> list = new ArrayList<QiugouxinxiEntity>();
for(Long id : ids) {
QiugouxinxiEntity qiugouxinxi = qiugouxinxiService.selectById(id);
qiugouxinxi.setSfsh(sfsh);
qiugouxinxi.setShhf(shhf);
list.add(qiugouxinxi);
}
qiugouxinxiService.updateBatchById(list);
return R.ok();
}
5.6论坛管理
用户点击图5.4中的“论坛”,进入论坛界面,用户想要对某些话题进行讨论时,可以在图5.4中的个人中心界面点击论坛“添加”按钮发布论坛帖子,具体要发布信息如图5.25所示。

图 5.25帖子发布界面
论坛发布关键代码:
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,LuntanEntity luntan,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
luntan.setZhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<LuntanEntity> ew = new EntityWrapper<LuntanEntity>();
PageUtils page = luntanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, luntan), params), params));
Map<String, String> deSens = new HashMap<>();
DeSensUtil.desensitize(page,deSens);
return R.ok().put("data", page);
}
管理员点击图5.8中的“论坛”进入论坛管理界面,可查看用户发布的论坛,点击“审核”按钮可审核用户的论坛话题是否合规,如图5.26所示。

图 5.26 管理员论坛审核界面
为了保证用户交流文明,点击图5.8中的“敏感词”,进入敏感词设置界面,设置具体的敏感词,如图5.27所示,

图 5.27 敏感词界面
当用户涉及到此类文字时,无法完整展现,如图5.28所示。

图 5.28敏感词无法展示界面
用户看到他人发的论坛,可以点击论坛页输入内容,点击“立即提交”按钮,即可看到发布信息,也可以回复他人内容,如图5.29所示。


图 5.29论坛信息回复界面
论坛发布关键代码:
@RequestMapping("/shBatch")
@Transactional
public R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf){
List<LuntanEntity> list = new ArrayList<LuntanEntity>();
for(Long id : ids) {
LuntanEntity luntan = luntanService.selectById(id);
luntan.setSfsh(sfsh);
luntan.setShhf(shhf);
list.add(luntan);
}
luntanService.updateBatchById(list);
return R.ok();
}
5.7订单管理
当用户想要购买物品时,点击5.16下方的“立即购买”按钮,进行下单如图5.30所示,生成相应的订单。

图 5.30商品下单界面
用户点击图5.4中的个人中心界面,点击“订单”进入订单界面,可以查看相应的订单,点击“未支付”按钮可查看所有未支付的物品,如图5.31所示。

图 5.31商品订单界面
用户点击图5.31中的物品,显示相应的订单,会看到详细的订单内容,如图5.32所示。

图 5.32商品订单详情界面
在用户未完成交易时,买家用户可以单方面取消订单,点击“立即取消”按钮,填写取消原因如图5.33所示,填写取消原因后进行二次审核,点击“审核”按钮,若卖家用户不想取消,则需审核不通过。

图 5.33订单取消界面
订单审核关键代码:
@RequestMapping("/update")
@Transactional
public R update(@RequestBody QuxiaodingdanEntity quxiaodingdan, HttpServletRequest request){
//ValidatorUtils.validateEntity(quxiaodingdan);
//全部更新
quxiaodingdanService.updateById(quxiaodingdan);
return R.ok();
}
/**
* 审核
*/
@RequestMapping("/shBatch")
@Transactional
public R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf){
List<QuxiaodingdanEntity> list = new ArrayList<QuxiaodingdanEntity>();
for(Long id : ids) {
QuxiaodingdanEntity quxiaodingdan = quxiaodingdanService.selectById(id);
quxiaodingdan.setSfsh(sfsh);
quxiaodingdan.setShhf(shhf);
list.add(quxiaodingdan);
}
quxiaodingdanService.updateBatchById(list);
return R.ok();
}
5.8支付
点击5.32中的“支付”按钮,对购买物品进行支付,如图5.34所示。但如果用户已支付时,缴费后取消订单必须要通过用户审核。

图 5.34订单支付界面
用户点击图5.34中的“确认支付”按钮,会显示“支付成功”,如图5.35所示。

图 5.35支付成功界面
当物品已经被购买时,点击图5.32中的“支付”按钮,会显示商品已出售,如图5.36所示,用户将不能购买该商品。

图 5.36商品已出售界面
5.9评价管理
用户购买完物品后,可点击订单下“评论”按钮,通过与用户交流,可以评价该用户态度如何,以及商品的信息观看程度,如图5.37所示。

图 5.37用户评价界面
用户可以在该商品下方看到其他用户评论内容,可以更好的了解物品,如图5.38所示。

图 5.38评论内容界面
评论关键代码:
@IgnoreAuth
@RequestMapping("/autoSort")
public R autoSort(@RequestParam Map<String, Object> params,DiscussershoushangpinEntity discussershoushangpin, HttpServletRequest request,String pre){
EntityWrapper<DiscussershoushangpinEntity> ew = new EntityWrapper<DiscussershoushangpinEntity>();
Map<String, Object> newMap = new HashMap<String, Object>();
Map<String, Object> param = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = entry.getKey();
if (pre.endsWith(".")) {
newMap.put(pre + newKey, entry.getValue());
} else if (StringUtils.isEmpty(pre)) {
newMap.put(newKey, entry.getValue());
} else {
newMap.put(pre + "." + newKey, entry.getValue());
}
}
params.put("sort", "clicktime");
params.put("order", "desc");
PageUtils page = discussershoushangpinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussershoushangpin), params), params));
return R.ok().put("data", page);
}
管理员点击5.8中的“敏感词”进入敏感词设置界面,设置用户发言的不当词汇,使用户无法发布此类不当词汇,可对敏感词进行删除、修改等操作,如图5.39所示。

图 5.39不当词汇设置界面
敏感词关键代码:
/**
* 获取用户密保
*/
@RequestMapping("/security")
@IgnoreAuth
public R security(@RequestParam String username){
SensitivewordsEntity sensitivewords = sensitivewordsService.selectOne(new EntityWrapper<SensitivewordsEntity>().eq("", username));
return R.ok().put("data", sensitivewords);
}
5.10公告管理
管理员点击5.8中的“公告”进入公告管理界面,可进行公告信息管理,进行修改、删除等一系列操作,如图5.40所示。

图 5.40公告信息管理界面
管理员点击图5.40的“添加”按钮,进入公告发布界面,填写标题、内容、图片、分类名称等,点击提交,即可发布新的公告,公告信息发布界面如图5.41所示。

图 5.41公告信息发布界面
用户点击图5.4中的“公告信息”进入公告信息界面,可以查看全部公告信息,点如图5.42所示。

图 5.42公告信息查看界面
用户点击5.41中的安全公告,可查看完整的公告信息,其完整公告信息如图5.43所示。

图 5.43公告详情界面
公告发布关键代码:
@IgnoreAuth
@RequestMapping("/autoSort")
public R autoSort(@RequestParam Map<String, Object> params,NewstypeEntity newstype, HttpServletRequest request,String pre){
EntityWrapper<NewstypeEntity> ew = new EntityWrapper<NewstypeEntity>();
Map<String, Object> newMap = new HashMap<String, Object>();
Map<String, Object> param = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = entry.getKey();
if (pre.endsWith(".")) {
newMap.put(pre + newKey, entry.getValue());
} else if (StringUtils.isEmpty(pre)) {
newMap.put(newKey, entry.getValue());
} else {
newMap.put(pre + "." + newKey, entry.getValue());
params.put("sort", "clicktime");
params.put("order", "desc");
PageUtils page = newstypeService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, newstype), params), params));
return R.ok().put("data", page);
}
5.11数据统计与分析
管理员点击5.8中的“系统首页”,有最新的数据统计与分析列表,可以查看二手商品分类的占比,比较哪种物品占比最大,如图5.44所示。

图 5.44二手商品分类占比统计界面
统计各类物品的数量,清楚明确的知道每种商品有多少,更重要的是记录每类物的收藏量有多少,才能更好的为用户推荐商品,如图5.45所示。

图 5.45收藏量统计界面
第6章 系统测试
6.1测试目的
在平台开发流程中,平台测试占据着非常重要的地位。它如同一把锐利的刀,能够精准地剖析出平台功能上的瑕疵,并及时修复,以保障网站功能的流畅运作,完美贴合用户的实际需求。不仅如此,平台测试还像一名严谨的守护者,能够敏锐地捕捉并清除潜在的小错误和漏洞,减少平台的不安全因素,促进平台的发展。另外,测试环节也是不断考验着平台的稳定性和可靠性,确保平台在大量用户涌入时,不至于崩毁。同时,平台测试还能对平台的各项关键性能指标进行反复测试,帮助平台节约成本,提高交易速度,方便用户交易,从而全面提升平台的运行效率。
6.2测试方法
平台使用了黑盒测试的方式来确保其质量。黑盒测试犹如一位不知情的用户,对平台的各个功能点和流程进行全面而细致的探查,确保平台能按照预期的功能正常运行。从而有效避免了因代码依赖而导致的测试偏差,同时也保护了程序内部的错误不被轻易暴露。
6.3测试用例
6.3.1 用户管理
在用户管理的用例测试中,主要测试新用户的注册问题,注册成功后进行登录,并且验证用户身份的正确性,看用户账号如果重复是否登录,最后,管理员要能查看用户的基本信息,以及锁定用户,如表6.1所示。
表6.1 用户管理测试用例表
| 测试编号 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
|---|---|---|---|---|
| 001 | 注册用户测试 | 进入平台注册界面,输入账号120,密码123456,手机号码13823888881,年龄15,收货地址河北省邯郸市,上传头像,点击注册 | 用户注册成功 | 与预期结果一致 |
| 002 | 验证身份是否正确 | 进入登录界面,填写账号120,密码456789 | 系统提示“用户密码或账号错误”,登录失败 | 与预期结果一致 |
| 003 | 注册账号重复 | 进入平台注册界面,输入账号120 | 系统提示“账号重复,无法注册”,注册失败 | 与预期结果一致 |
| 004 | 正常登录 | 进入平台登录界面,输入账号120,密码123456 | 系统验证通过,成功进入主界面 | 与预期结果一致 |
| 005 | 修改个人信息 | 登录平台后点击个人中心界面,点击更新信息,修改电话号码为12345678910 | 个人信息发生变化,电话更新为12345678910 | 与预期结果一致 |
| 006 | 管理员查看用户信息 | 管理员在用户管理界面点击用户梦的信息详情 | 界面跳转到梦的详情界面 | 与预期结果一致 |
| 007 | 管理员锁定用户 | 管理员可以点击锁定按钮,锁定用户,然后用户登录 | 用户锁定,无法登录 | 与预期结果一致 |
6.3.2 二手商品类别管理
该测试主要验证管理员能成功的添加商品类别,出现种类较少时可以修改名称甚至是删除,另外,用户可查看所有分类,具体如表6.2所示。
表6.2 二手商品类别管理测试用例表
| 测试编号 | 测试功能 | 输入操作过程 | 预期输出 | 测试结果 |
|---|---|---|---|---|
| 001 | 管理员添加二手商品类别 | 管理员添加二手商品类别,如耳机,音响,包,生活类,书籍等分类 | 用户可以选择查看分类 | 与预期结果一致 |
| 002 | 管理员删除二手商品类别 | 管理员删除耳机类 | 用户将看不到耳机类别 | 与预期结果一致 |
| 003 | 管理员修改二手商品类别 | 管理员将生活类改为衣架类 | 可看到生活类改为衣架类 | 与预期结果一致 |
| 004 | 用户查看二手商品分类 | 点击二手商品分类 | 页面显示管理员发布的所有二手商品类别 | 与预期结果一致 |
6.3.3 二手商品管理
该测试主要验证用户对二手商品的一系列操作及管理员审核用户发布二手商品等操作,具体如下表6.3所示。
表6.3 二手商品管理测试用例表
| 测试编号 | 测试功能 | 输入操作过程 | 预期输出 | 测试结果 |
|---|---|---|---|---|
| 001 | 用户是否能成功创建二手商品信息 | 在二手商品管理模块点击创建按钮,输入分类运动鞋,新旧程度:全新,出手价格60元,交易方式:面交等上传成功 | 商品信息中可以看到价格,新旧程度等信息 | 与预期结果一致 |
| 002 | 用户是否能成功修改二手商品信息 | 在二手商品管理模块点击修改按钮,将新旧程度改为九成新 | 商品新旧程度已修改成 九成新 | 与预期结果一致 |
| 003 | 用户是否能成功删除二手商品信息 | 在二手商品管理界面,点击双肩包删除商品 | 无法找到双肩包商品 | 与预期结果一致 |
| 004 | 用户是否能成功查询二手商品信息 | 在二手商品信息列表上的搜索框对应内容输入四级书籍 | 页面显示四级书籍列表信息 | 与预期结果一致 |
| 005 | 管理员审核用户发布的二手商品 | 看四级书籍用户填写信息合规,合规则通过 | 页面显示已审核通过的四级书籍 | 与预期结果一致 |
6.3.4 求购信息管理
该测试主要验证用户发布、删除、修改、查看求购信息等操作,求购信息管理测试用例表如下表6.4所示。
表6.4 求购信息管理测试用例表
| 测试编号 | 测试功能 | 输入操作步骤 | 预期输出 | 测试结果 |
|---|---|---|---|---|
| 001 | 发布求购信息 | 在个人中心的求购信息模块发布要买的物品信息,商品名称:双肩包,具体要求:要褐色的,期望价格50等信息发布 | 成功发布双肩包得求购信息 | 与预期结果一致 |
| 002 | 删除求购信息 | 在求购信息界面删除足球鞋的求购信息 | 成功删除信息,系统不再显示球鞋的信息 | 与预期结果一致 |
| 003 | 查看求购信息 | 用户在求购信息界面能点击查看所有用户发布的求购信息 | 成功看到所有人发布的求购信息 | 与预期结果一致 |
6.3.5 论坛管理
该测试主要验证用户更好的发布论坛和用户的回复问题,如果管理员发布敏感词“垃圾”的话,会影响一些不好的言论,具体如下表6.5所示。
表6.5论坛管理测试用例表
| 测试编号 | 测试功能 | 输入操作过程 | 预期输出 | 测试结果 |
|---|---|---|---|---|
| 001 | 用户发布论坛 | 用户在论坛功能模块发布论坛,输入:这个人卖的商品物超所值 | 论坛发布成功 | 与预期结果一致 |
| 002 | 用户回复 | 用户根据这一话题继续讨论,输入:我也买过他的商品 | 回复成功 | 与预期结果一致 |
| 003 | 管理员发布敏感词“垃圾” | 用户输入“垃圾”,将无法显示 | 无法看到“垃圾”词汇 | 与预期结果一致 |
6.3.6 订单管理
该测试主要验证用户对订单的一系列操作,比如用户添加订单后,不想要可以取消订单,如下表6.6所示。
表6.6订单管理用例测试表
| 测试编号 | 测试功能 | 输入操作过程 | 预期输出 | 测试结果 |
|---|---|---|---|---|
| 001 | 添加订单 | 用户在二手商品下点击购买衣架,生成相应的订单 | 可以看到衣架的订单 | 与预期结果一致 |
| 002 | 取消订单 | 用户在订单内点击取消衣架订单,填报取消原因 | 无法看到相应订单 | 与预期结果一致 |
6.4测试结论
本平台采用黑盒测试技术,主要测试了校园二手物品交易平台中的用户管理、二手商品类别管理、二手商品管理、论坛管理、订单管理、求购信息管理功能,以上功能均能在平台按照预期结果运行,在对以上功能进行测试时,并未发现有功能性缺陷,说明本平台的主要功能模块均能达到预期结果。
结论与展望
随着生活水平的提高,学生们的购买力日益提高,每年毕业生因为各种原因都会在大学校园中存在大量无法带走的物品。另外,生活中也存在各种大量堆积的专业书籍资料、衣架等生活用品、四级耳机等各种电子产品,直接丢弃会浪费,通常会二手转卖给其他同学,而有些同学认为二手物品更有性价比,愿意购买二手的物品,但二手交易市场因为场地限制,不能时常出现在校园内,但随着网络化和信息化的发展,网络上交易二手物品更加自由方便,更多的人尝试在网上交易平台进行售卖,基于此,使用SSM框架,Java语言,结合MySQL数据库,设计开发了一个基于SSM的校园二手物品交易平台,在平台中用户可以发布自己出售的物品,并且找到合适的购买者,双方时时沟通,方便快捷,使用户既可以妥善处理自己物品的同时,获得一些收益。还通过信息化的方式使资源再利用,实现绿色环保。
虽然平台实现了大部分功能,但依然存在一些不足之处,比如:在数据统计与分析功能模块中只能看到各类物品的种类占比,无法预测未来几个月商品的交易数量。本平台主要解决的是二手物品交易不便的问题,而不能对用户进行实时的定位,无法知道用户的具体位置。对于订单的问题,并不像传统的快递行业,进行物流运输,只针对在学校内,管理员无法参与订单交易过程,全权交由用户管理,容易造成用户逃单,但管理员无法强制执行的结果。平台无法对用户的身份进行严格审查,无法实名认证用户。期待在日后工作中,更加完善平台。
参考文献
[1]张艳,曹红蕊,于鑫,等.大学生二手交易市场研究与App架构实现[J].物联网技术,2017,7(09):86-87+90.
[2]高星宇,张家骏.校园二手交易平台的设计与实现[J].福建电脑,2020,36(02):87-89.
[3]陈冰.基于SpringBoot的校园二手商品交易系统的设计与实现[D].华中师范大学,2021.
[4]苏玉慧.基于B/S架构的高校二手网络交易平台的设计与实现[D].南昌大学,2016.
[5]赵冰,刘星含,杨泰森,等.基于微信小程序的校园二手闲置物品交易平台的设计与实现[J].电脑知识与技术,2022,18(21):64-66.
[6]郭雨洁,徐强生,朱中龙,等.基于Android的校园二手物品交易平台的设计与实现[J].信息与电脑(理论版),2020,32(04):70-72.
[7]H D A ,Syndi N ,Mia M , et al.Central nervous system infection in a pediatric population in West Java.[J].PLoS neglected tropical diseases,2023,17(11):e0011769-e0011769.
[8]G. D C .CheckFoV: A Java tool to compute and draw Field of View, visual overlapping and targets coverage[J].Software Impacts,2024,19
[9]赵明,贲祺舒,吕怡.基于微信小程序的高校校园二手物品交易平台的设计与实现[J]. 科技与创新,2022,(07):55-58.
[10]苏翀宇,木更乾,吴德.基于微信小程序的校园二手平台设计[J].电子技术,2020,49(10):44-46.
[11]罗志敏.基于SHC的校园二手交易APP的设计与实现[D].南昌大学,2018.
[12]李彬.基于ASP.NET的大学校园二手物品交易平台的设计与实现[M]. 2014.
[13]赵俊杰,葛敬军,朱文婷.基于微信小程序的校园二手书交易平台的设计与实现[J].科技与创新,2024,(09):7-11+15.
[14]胡佳静.基于React Native的校园二手交易平台的设计与实现[J].电脑知识与技术,2023,19(25):42-44.
[15]高耀,许诺,李博,等.基于Web的新型校园二手交易平台实践研究——以“校易集市”为例[J].中国商论,2023,(01):130-132.
[16]周姣.基于微服务架构的高校二手物品交易系统设计与实现[J].电脑知识与技术,2023,19(22):67-70.
[17]张皓,闫宁,崔春雨,等.基于微服务架构的高校闲置物品交易平台[J].电脑知识与技术,2023,19(29):63-66.
[18]张柱,宋存进,蒋乐,等.基于微信小程序校园二手交易平台设计与开发[J].电脑编程技巧与维护,2022,(12):59-61+142.
[19]白忠军.基于云平台的校园二手商品交易系统的设计与实现[D].贵州大学,2018.
[20]何丹.基于O2O的某高校二手物品交易平台的设计与实现[D].江西财经大学,2017.
[21]于萧.基于J2EE的校园二手物品网络预交易系统的设计与实现[D].山东师范大学,2016.
[22]缑堡.基于MVC的校园二手商品交易系统设计与实现[D].东北大学,2015.
[23]郭林盛,张晓艳,赵妍,等.基于微信云开发实现校园二手交易的平台设计[J].现代计算机,2024,30(22):185-190.
[24]周梦萍.基于WEB应用的校园交易平台的设计[J].电脑迷,2018,(04):115.
[25]徐连霞.基于ASP的淮安大学城二手物品交易平台设计[J].网友世界,2014,(15):70-71.
[26]曲蕴慧.基于ASP.NET的校园二手交易平台的设计与实现[J].数字技术与应用,2013,(07):110-111.
致谢
在撰写毕业论文的过程中,我想借此机会向所有在我研究与学习过程中给予无私帮助和支持的人们表达我最诚挚的感谢。首先,我要深深地感谢我的指导老师。从选题阶段到设计实施再到最终报告的完成,您严谨的学术态度、深厚的学术造诣和诲人不倦的精神对我影响深远。您的悉心指导使我得以顺利完成本项设计,您的专业建议和深刻见解使我对计算机科学有了更深入的理解和掌握。在此,我向您表示衷心的敬意和感谢。其次,我要感谢我的同学们,大学时光是短暂的,不久后大家都将离开学校,多谢四年的陪伴与鼓励。此外,我要感谢我的家人,是你们一直以来的理解、关心和支持,让我在面对学业压力时始终保持积极乐观的心态,勇往直前。最后,我要感谢母校及所有授课教师,是你们的辛勤付出和无私奉献,为我打下了扎实的专业基础,使我有能力完成此次毕业设计。再次对所有给予我帮助和支持的人表示由衷的感谢!这份毕业设计不仅是个人努力的结果,更是师生智慧的结晶。未来的路还很长,我将带着这份感恩的心继续前行,不断提升自我,以期能在计算机领域做出更大的贡献。

1170

被折叠的 条评论
为什么被折叠?



