基于SSM的校园二手物品交易平台设计与实现

基于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用户信息表

字段名称类型长度字段说明主键默认值
idbigint用户id主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
zhanghaovarchar20账号
mimavarchar10密码
nichengvarchar20昵称
xingbievarchar20性别
nianlingint年龄
shoujihaomavarchar11手机号码

二手商品类别表包括二手商品id、图像等字段,具体表结构如表4.2所示。

表4.2二手商品类别表

字段名称类型长度字段说明主键默认值
idbigint二手商品类别id主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
leibiemingchengvarchar8类别名称
imagelongtext4294967295图像

二手商品表包括二手商品id、内容、价格等字段,具体表结构如表4.3所示。

表4.3二手商品表

字段名称类型长度字段说明主键默认值
idbigint商品id主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
mingchengvarchar8名称
leibieidvarchar8类别id
xinjiuchengduvarchar5新旧程度
shangpinneironglongtext200商品内容
jiagedouble价格
yonghuidvarchar15用户id

二手商品评论表包括用户id、回复内容、赞等字段,其表结构如表4.4所示。

表4.4二手商品评论表

字段名称类型长度字段说明主键默认值
idbigint评论编号主键
useridbigint用户id
dingdanidlongtext4294967295订单id
replylongtext4294967295回复内容
thumbsupnumint0
crazilynumint0
Picturelongtext4294967295头像

论坛表包括创建时间等字段,具体表结构如表4.5所示。

表4.5论坛表

字段名称类型长度字段说明主键默认值
idbigint论坛id主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
useridbigint用户id
contentlongtext4294967295评论内容
touxiangbigint头像

求购信息表包括商品名称及id等字段,具体表结构如表4.6所示。

表4.6求购信息表

字段名称类型长度字段说明主键默认值
idbigint求购信息id主键
Yonghuidvarchar8用户id
Shangpinneironglongtext4294967295商品内容
faburiqidate9发布日期
类别idvarchar10类别id
shenhexinxilongtext4294967295审核信息
shangpinmingchengvarchar18商品名称

商品订单表包括收货地址、交易方式等字段,具体表结构如表4.7所示。

表4.7商品订单

字段名称类型长度字段说明主键默认值
idbigint订单id主键
dingdanbianhaovarchar20订单编号
yonghuidvarchar10用户id
shangpinidvarchar200商品id
shouhuodizhivarchar50收货地址
jiaoyifangshivarchar10交易方式
Jiagevarchar20价格

公告信息包括id、标题、发布时间等字段,其表结构如表4.8所示。

表4.8公告信息

字段名称类型长度字段说明主键默认值
idbigint公告id主键
addtimetimestamp发布时间CURRENT_TIMESTAMP
titlevarchar200标题
introductionlongtext4294967295简介
Gonggaoleibievarchar8公告类别
picturelongtext4294967295图像
contentlongtext4294967295内容
liulanliangbignit20浏览量

第5章 系统实现

5.1 实现环境

Java 开发环境:JDK1.8

开发工具:IDEA

数据库:MySQL5.7

部署环境:Windows 11

测试工具:Edge 浏览器

5.2用户管理

对于那些没有账号的用户,登录页面提供了“注册用户”的选项。点击注册选项后,用户将会进入注册页面,他们需要按照提示填写必要的用户信息,包括姓名、密码、邮箱等,验证用户账号不重复,然后点击“注册”即可完成,如图5.1所示。

图1

图 5.1 用户注册界面

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

图2

图 5.2用户登录界面

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

图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所示,就会看到在平台界面导航栏里有首页、二手商品、求购信息、论坛、公告信息、留言板。

图4

图 5.4用户首页界面

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

图5

图 5.5个人中心界面

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

图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所示。

图7

图 5.7管理员登录界面

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

图8

图 5.8 管理员端首页界面

管理员登录关键代码:

* 登录用户信息

*/

@Target(ElementType.PARAMETER)

@Retention(RetentionPolicy.RUNTIME)

public @interface LoginUser {

}

管理员点击图5.8导航栏中的用户就会进到用户管理界面,如图5.9所示,可以查看、修改用户资料,包括性别、姓名、联系方式等。 管理员可修改、更新用户的信息。

图9

图 5.9用户管理界面

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

图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所示。如果有需要添加的,点击添加按钮。

图11

图 5.11二手商品类别管理界面

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

图12

图 5.12商品按类别添加界面

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

图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所示,填写商品名称,选择分类等信息,即可发布成功。

图14

图 5.14二手商品添加界面

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

图15

图 5.15二手商品查看界面

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

图16

图 5.16二手商品详情界面

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

图17

图 5.17用户联系界面

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

图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所示。

图19

图 5.19二手商品管理界面

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

图20

图 5.20点击量统计界面

5.5求购信息管理

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

图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所示。

图22

图 5.22求购信息管理界面

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

图23

图 5.23求购信息审核界面

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

图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所示。

图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所示。

图26

图 5.26 管理员论坛审核界面

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

图27

图 5.27 敏感词界面

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

图28

图 5.28敏感词无法展示界面

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

图29

图30

图 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所示,生成相应的订单。

图31

图 5.30商品下单界面

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

图32

图 5.31商品订单界面

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

图33

图 5.32商品订单详情界面

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

图34

图 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所示。但如果用户已支付时,缴费后取消订单必须要通过用户审核。

图35

图 5.34订单支付界面

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

图36

图 5.35支付成功界面

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

图37

图 5.36商品已出售界面

5.9评价管理

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

图38

图 5.37用户评价界面

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

图39

图 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所示。

图40

图 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所示。

图41

图 5.40公告信息管理界面

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

图42

图 5.41公告信息发布界面

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

图43

图 5.42公告信息查看界面

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

图44

图 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所示。

图45

图 5.44二手商品分类占比统计界面

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

图46

图 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.

致谢

在撰写毕业论文的过程中,我想借此机会向所有在我研究与学习过程中给予无私帮助和支持的人们表达我最诚挚的感谢。首先,我要深深地感谢我的指导老师。从选题阶段到设计实施再到最终报告的完成,您严谨的学术态度、深厚的学术造诣和诲人不倦的精神对我影响深远。您的悉心指导使我得以顺利完成本项设计,您的专业建议和深刻见解使我对计算机科学有了更深入的理解和掌握。在此,我向您表示衷心的敬意和感谢。其次,我要感谢我的同学们,大学时光是短暂的,不久后大家都将离开学校,多谢四年的陪伴与鼓励。此外,我要感谢我的家人,是你们一直以来的理解、关心和支持,让我在面对学业压力时始终保持积极乐观的心态,勇往直前。最后,我要感谢母校及所有授课教师,是你们的辛勤付出和无私奉献,为我打下了扎实的专业基础,使我有能力完成此次毕业设计。再次对所有给予我帮助和支持的人表示由衷的感谢!这份毕业设计不仅是个人努力的结果,更是师生智慧的结晶。未来的路还很长,我将带着这份感恩的心继续前行,不断提升自我,以期能在计算机领域做出更大的贡献。

内容概要:本文围绕“考虑电动汽车聚合可调节能力的含波动性电源电氢耦合系统多目标优化运行”展开研究,提出了一种基于Matlab代码实现的多目标优化模型。该模型深度融合电-氢耦合系统高比例波动性可再生能源(如风电、光伏),充分挖掘电动汽车(EV)集群作为移动储能单元的灵活调节潜力,通过聚合调控提升系统对新能源的消纳能力运行经济性。研究系统构建了电动汽车可调度能力、电解水制氢储氢动态过程、多能源协同互补的优化调度框架,并结合智能优化算法实现经济性、低碳性运行稳定性等多重目标的协同优化。文中配套提供了完整的Matlab仿真代码、相关数据及可能的论文支撑材料,极大地方便了模型的复现、验证后续深化研究。; 适合人群:具备电力系统、综合能源系统、优化理论或新能源技术等相关领域基础知识的研究生、科研人员,以及从事新型电力系统规划、清洁能源消纳智慧能源管理的工程技术人员。; 使用场景及目标:①开展高渗透率可再生能源接入下的综合能源系统多目标优化调度研究;②探究电动汽车集群在电网削峰填谷、平抑新能源出力波动及提供辅助服务方面的应用价值潜力;③学习并掌握电氢耦合系统的建模方法、多目标优化求解技术及其在Matlab/Simulink环境下的仿真实现流程。; 阅读建议:此资源不仅提供可运行的代码,更蕴含了前沿的科研思路创新方法,建议读者结合所提供的代码、数据可能的论文文档,系统性地学习从问题建模、算法设计到仿真分析的完整科研过程,并重点关注其中关于需求侧资源聚合、多能互补协同绿色低碳运行的核心理念。
内容概要:本文档名为《经济学期刊论文复现:数字化转型能促进企业的高质量发展吗》,表面上聚焦于经济学领域中数字化转型对企业高质量发展影响的研究,实则是一份涵盖多学科交叉的科研仿真代码资源合集。资源以Matlab、Simulink、Python为主要工具,系统整合了电力系统仿真、微电网优化调度、路径规划、信号处理、图像处理、机器学习预测模型等方向的可复现算法仿真模型。尽管标题指向经济学实证分析,但内容重心在于提供顶级期刊论文的复现代码,如企业全要素生产率(TFP)测算方法(OL、FE、LP、OP、GMM)、风光储氢系统优化、需求响应综合能源系统调度等,并融合智能优化算法深度学习技术进行数据建模预测分析,体现出极强的工程化科研实用性。; 适合人群:具备一定编程基础,熟练掌握Matlab/Simulink/Python等仿真工具,从事工程仿真、经济实证研究或交叉学科科研工作的研究生、高校教师及科研人员。; 使用场景及目标:① 复现经济学顶刊论文中的计量经济模型,深入探究数字化转型对企业全要素生产率的影响机制;② 借助提供的代码资源开展电力系统故障仿真、微电网优化、多能系统调度等科研项目的算法验证仿真分析;③ 应用机器学习深度学习模型完成负荷预测、风电光伏出力预测、电池健康状态评估等典型实证任务; 阅读建议:此资源虽冠以经济学论文之名,实质为多领域高价值仿真代码集成,建议读者依据自身研究方向筛选适配内容,优先关注“顶刊复现”“论文复现”类项目,结合配套数据代码进行实证推演,并通过公众号“荔枝科研社”获取完整资料持续技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代论文网课招代理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值