springboot校园二手书交易平台--附源码52951

目  录

摘要

1 绪论

1.1 研究背景及意义

1.2研究现状

1.3开发技术

1.3.1Java语言

1.3.2 Spring Boot框架

1.3.3 MySQL数据库

1.4论文结构与章节安排

2系统分析

2.1 可行性分析

2.2 系统功能分析

2.2.1系统功能性需求分析

2.2.2系统非功能性需求分析

2.3系统流程分析

2.3.1程序操作流程

2.3.2注册流程

2.3.3登录流程

2.4本章小结

3 系统总体设计

3.1 系统架构设计

3.2 系统功能模块设计

3.2.1整体功能模块设计

3.2.2系统用户模块设计

3.2.3书籍商城模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

3.4本章小结

4 系统详细设计与实现

4.1注册用户功能模块

4.1.1用户注册界面

4.1.2用户登录界面

4.1.3首页界面

4.1.4 公告通知界面

4.1.5 图书资讯界面

4.1.6 书籍商城界面

4.1.7 商城管理界面

4.1.8个人中心界面

4.2商家用户功能模块

4.2.1 后台首页界面

4.2.2 商城管理界面

4.3管理员功能模块

4.3.1系统用户界面

4.3.2系统管理界面

4.3.3 公告通知管理界面

4.3.4资源管理界面

4.3.5 商城管理界面

5系统测试

5.1测试目的

5.2 系统功能测试

5.3 测试结果总结

6 结论

参考文献

致  谢

摘要

随着互联网技术和智能手机的普及,学生越来越依赖在线平台进行购物和二手物品交易。在校园中,由于学习资料和个人用品更新频繁,二手书市场尤为活跃。为满足学生及教职工对二手书籍交易的需求,并促进教育资源的循环利用,本文采用Spring Boot框架构建了一个校园二手书交易平台。Spring Boot以其简洁性和快速开发的特点,成为现代Web应用的理想选择,能够简化开发流程并确保系统的稳定与高效。

本系统主要包括注册用户、商家用户和管理员这三大功能模块。其中,注册用户模块实现了用户注册登录、书籍查询、在线下单支付、评论等核心功能。商家用户模块实现了商品信息发布和订单管理等核心功能。管理员模块主要实现了用户管理、商城管理、资源管理等核心功能。设计开发此平台旨在提供一个便捷高效的二手书交易环境,同时推动资源的可持续利用和环保意识的提升。

关键词:校园;二手书交易;Spring Boot

Abstract

With the popularization of Internet technology and smart phones, students increasingly rely on online platforms for shopping and second-hand goods trading. On campus, the second-hand book market is particularly active due to frequent updates of learning materials and personal items. To meet the needs of students and faculty for second-hand book trading and promote the recycling of educational resources, this article uses the Spring Boot framework to build a campus second-hand book trading platform. Spring Boot, with its simplicity and fast development characteristics, has become an ideal choice for modern web applications, simplifying the development process and ensuring system stability and efficiency.

This system mainly includes three functional modules: registered users, merchant users, and administrators. Among them, the registered user module implements core functions such as user registration and login, book search, online ordering and payment, and comments. The merchant user module implements core functions such as product information publishing and order management. The administrator module mainly implements core functions such as user management, mall management, and resource management. The design and development of this platform aims to provide a convenient and efficient second-hand book trading environment, while promoting the sustainable use of resources and increasing environmental awareness.

Keywords:campus; Second hand book trading; Spring Boot

1 绪论

1.1 研究背景及意义

随着互联网技术的持续发展和智能手机的普及,学生群体越来越倾向于利用在线平台进行购物及二手物品交易。特别是在校园环境中,由于学生频繁更新学习资料和个人用品的需求,校园内的二手市场显得尤为活跃。为了更好地满足学生及教职工对二手书籍交易的需求,并促进资源的有效循环利用,本文设计并实现了一个校园二手书交易平台。

该平台不仅有助于节省成本,还能够培养用户的环保意识,推动绿色校园建设。通过这一专门设计的二手书交易平台,学生们可以更方便地处理不再使用的教材、参考书和其他学习材料,使这些资源找到新的使用者,避免浪费,实现最大化利用。

对于买家而言,该平台提供了一个以合理价格获取所需书籍的机会,帮助他们节约开销;而对于商家来说,则可以通过出售闲置书籍获得一定的经济回报,形成双赢的局面。此外,这样的平台还有助于建立一个更加紧密的学生社区,促进同学之间的交流与合作。

参与校园二手书市场的活动还能增强学生的环境保护意识。通过实际参与二手书的交换过程,学生们能更深刻地理解资源的有限性和循环经济的重要性,从而在日常生活中采取更为环境友好的行为方式。最终,这不仅有利于个人财务管理和资源的有效利用,也对整个校园的可持续发展有着积极的影响。

1.2研究现状

在国内,随着高等教育的发展和学生消费观念的变化,校园二手书交易逐渐受到关注。

国内一些高校和研究机构已经开始关注并着手开发校园二手书交易平台。研究者们通过调查和分析大学生的需求,设计了一些常见的功能模块,如用户注册、商品发布、搜索筛选、在线聊天、评价等。同时,也有研究者提出了基于位置服务(LBS)的推荐系统、智能匹配等功能创新。

为了提高用户的满意度和使用体验,研究者们关注用户界面设计、交互设计、信息展示等方面,并通过用户调研和实验来评估不同设计方案的效果,提出改进建议。

在国外,大学生闲置物品交易平台的发展已经相对成熟。一些知名的平台如Depop、eBay等不仅提供了二手交易服务,还融入了社交元素,为用户提供了更加丰富的体验。这些平台在技术上多采用先进的架构设计和算法优化,以确保系统的稳定性和推荐精度。此外,国外的研究者还在不断探索新的技术和方法,如基于人工智能的推荐系统、区块链技术在二手交易中的应用等,以进一步提升平台的性能和安全性。

综上所述,国内外在校园二手书交易平台管理系统方面都有一定的研究基础和实践经验。然而,如何结合校园特点和学生需求,构建一个功能全面、性能稳定、用户体验良好的平台,仍是一个值得深入研究的课题。

1.3开发技术

1.3.1Java语言

早在上个世纪90年代,Java就由詹姆斯·高斯林进行开发,自诞生之日起,Java就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Java语言是真的是一种纯面向对象的计算机语言,在Java的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Java中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Java另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Java也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Java编程语言进行后台的开发,一是鉴于标准化制定以后,Java语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Java代码的能力。

1.3.2 Spring Boot框架

SpringBoot是一个用于创建独立的、基于Spring的应用程序的框架。它简化了基于Java的应用程序的开发过程,提供了一种快速构建可部署的生产级应用程序的方式。它的主要特点是自动配置和约定优于配置。它通过使用默认值和自动配置来减少开发人员的配置工作量,使开发过程更加简单和高效。它还提供了一个起步依赖(Starter POM)的概念,可以一站式引入相关的依赖库和配置,以快速搭建项目。

它还具有内嵌的Web服务器,如Tomcat或Jetty,这使得应用程序可以作为一个独立的可执行JAR文件运行。此外,它还提供了健康检查、度量指标、安全性等方面的功能,帮助开发人员更好地管理和监控应用程序。它采用了Spring框架的核心功能,如依赖注入、面向切面编程等,并结合了其他开源项目,如Spring Data、Spring Security等,提供了丰富的功能和扩展性。

综上所述,SpringBoot是一个简化了Spring应用程序开发的框架,它提供了自动配置、约定优于配置、起步依赖等特性,使得开发人员可以更加便捷地构建可部署的应用程序。它的出现极大地简化了Java开发过程,提高了开发效率和项目的可维护性。

1.3.3 MySQL数据库

MySQL 经过多次的更新,功能层面已经非常的丰富和完善了,从MySQL4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的MySQL支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。

1.4论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章:绪论,主要介绍校园二手书交易平台领域研究的背景和意义、开发现状,开发技术以及论文章节安排。

第二章:系统分析,主要从校园二手书交易平台的可行性、用户功能、操作流程等方面进行分析,为后续系统设计提供理论支持。

第三章:系统总体设计,主要对校园二手书交易平台的系统架构、功能模块、数据库进行设计。

第四章:系统详细设计与实现,主要介绍了校园二手书交易平台各个用户功能界面的实现。

第五章:系统测试,主要对校园二手书交易平台进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第六章:结论。总结全文研究内容。

2系统分析

系统分析是对系统开发的可行性进行研究,分析功能需求以确保系统满足用户期望。系统用例设计将明确定义系统与外部用户的交互场景,系统流程规划则细化系统内部功能流程,确保系统各模块协调工作。通过系统分析,可以建立清晰的系统框架,明确系统目标和功能,为系统开发和实施奠定基础。

2.1 可行性分析

1. 技术可行性

Java是一种跨平台的编程语言,具有丰富的类库和良好的兼容性,广泛应用于各种场景。Java语言具有较高的性能和稳定性,可以满足系统高并发、大数据处理的需求。此外,Spring Boot是一个非常流行的Java开发框架,Spring Boot不仅能够帮助开发者快速搭建应用的基本框架,还提供了丰富的扩展点,使得开发者可以灵活地定制和优化应用程序,满足不同场景下的需求。因此,从技术层面来说是可行的。因此,从技术层面分析是可行的。

  1. 经济可行性

该系统的开发主要基于开源技术(如Java、Spring Boot、MySQL等),这大大降低了技术选型的费用,无需支付高额的许可费用。系统的开发只需具备Java相关的技术背景,开发成本相对较低。此外,Spring Boot的代码质量和可维护性较高,可以降低后期维护成本。因此,从经济角度分析是可行的。

  1. 操作可行性

系统采用B/S架构,用户只需要通过浏览器即可访问系统,无需安装额外的软件。同时,系统的操作界面简洁明了,易于理解和使用,用户无需具备专业的计算机知识即可进行操作。因此,从操作层面上分析是可行的。

  1. 社会可行性

大学生在学期末或毕业时往往需要处理大量不再使用的教材和其他学习资料,而新生又急需获取这些资料。一个便捷高效的二手书交易平台正好满足了这一供需关系,提高了资源利用率。推广二手书交易有助于减少资源浪费,促进循环经济发展,符合现代社会对环境保护的要求。因此,从社会角度分析是可行的。

综上所述,校园二手书交易平台在经济、技术、操作,社会等方面都具有较高的可行性。

2.2 系统功能分析

2.2.1系统功能性需求分析

按照校园二手书交易平台的角色,主要包括注册用户、商家用户和管理员这三大用户功能模块,各用户功能模块的具体功能说明如下。

  1. 注册用户功能
  1. 注册登录:新用户可以通过注册成为系统用户,注册后后可以用账号密码登录系统。
  2. 首页:用户可以查看首页展示的导航栏、轮播图、书籍商城、图书资讯等信息。在书籍商品界面系统会根据用户的购买记录向用户推荐同类型的商品。
  3. 公告通知:用户可以查看系统发布的网站公告、关于我们、联系方式、网站介绍等信息。
  4. 图书资讯:用户可以查看图书资讯列表中某个资讯的详情并可以点赞、收藏和评论。
  5. 书籍商城:用户可以查看商品列表中某个商品(书籍)的详情,如书名、价格,库存等信息,并可以进行收藏、加入购物车、立即购买等操作。
  6. 商城管理:在商城管理模块用户可以查看和管理我的购物车、我的订单和我的地址信息。
  7. 我的:用户点击我的头像的下拉菜单“我的账户”可以查看和修改个人资料(如个人昵称、头像等)和登录密码;点击“个人中心”进入页面可以查看和管理个人首页、订单配送、收藏和评论管理;点击“退出”即可退出系统登录。

注册用户角色的用例图如下图2-1所示:

图2-1注册用户用例图

  1. 商家用户功能
  1. 注册登录:商家可以通过注册成为系统用户,注册后需由管理员进行审核,审核通过后可以用账号密码登录系统。
  2. 后台首页:商家可以查看后台首页展示的商品销售金额统计和商品销售数量统计图信息。
  3. 商城管理:在商城管理模块商家对书籍商城、分类列表、订单列表、订单配送信息进行管控。可以对书籍商城、分类列表信息进行增删改查操作;可以查看订单列表中某个订单的详情和提交配送信息,可以查看订单配送列表中某个订单的配送详情。
  4. 我的:商家可以修改个人信息和登录密码;可以浏览网站首页;点击“退出”即可退出系统的登录。

商家用户角色的用例图如下图2-2所示:

图2-2商家用户用例图

  1. 管理员功能
  1. 登录:管理员的账号和密码是事先在数据库中设定好的,管理员可以通过在后台输入正确的账号和密码进行登录。
  2. 后台首页:管理员可以查看后台首页展示的商品销售金额统计和商品销售数量统计图信息。
  3. 系统用户:管理员负责对新注册的商家用户信息进行审核,管理员可以对所有用户信息(注册用户、商家用户、管理员)进行增删改查操作。
  4. 系统管理:管理员可以对轮播图信息进行增删改查操作。
  5. 公告通知管理:管理员可以对公告通知信息进行增删改查操作。
  6. 资源管理:在资源管理模块管理员对图书资讯和资讯分类进行管控,可以对图书资讯和资讯分类信息进行增删改查操作。
  7. 商城管理:在商城管理模块管理员对书籍商城、分类列表、订单列表、订单配送信息进行管控。管理员可以对书籍商城、分类列表信息进行增删改查操作;可以对订单列表和订单配送信息进行查询、重置和删除操作。
  8. 我的:管理员可以修改个人信息和登录密码;可以浏览网站首页;点击“退出”即可退出系统的登录。

管理员用例图如下图2-2所示。

图2-3管理员用例图

2.2.2系统非功能性需求分析

非功能性需求分析主要是分析本系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下2-1表格中:

表2-1校园二手书交易平台非功能需求表

需求类型

描述

性能

系统应具有高性能,能够快速响应用户请求,保持稳定的性能水平,支持高并发访问和大规模数据处理。

可靠性

系统应具有高可靠性,确保系统稳定运行,防止系统故障和数据丢失,提供数据备份和恢复机制。

安全性

系统应具有高安全性,保护用户隐私信息和数据安全,采用加密传输技术、访问控制和身份验证机制。

可用性

系统应具有高可用性,保证系统全天候运行,最大限度减少系统故障和维护时间,提供灾备和故障转移功能。

易用性

系统应具有良好的易用性,用户界面设计友好,操作简单直观,提供清晰的指导和帮助文档。

可维护性

系统应具有良好的可维护性,易于维护和升级,提供模块化和结构化代码,方便开发人员进行维护和修改。

可扩展性

系统应具有良好的可扩展性,支持新增功能和模块的集成,具备良好的架构设计和扩展性能。

2.3系统流程分析

2.3.1程序操作流程

用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图2-4所示。

图2-4程序操作流程图

2.3.2注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、姓名等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图2-5所示。

图2-5注册操作流程图

2.3.3登录流程

用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图2-6所示。

图2-6登录操作流程图

2.4本章小结

本章主要通过对校园二手书交易平台的可行性分析、功能分析、系统用例分析、流程分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。

3 系统总体设计

本章主要讨论的内容包括 校园二手书交易平台的架构设计、功能模块设计和数据库系统设计。

3.1 系统架构设计

在系统架构设计中,我将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格,划分系统的层次结构,并定义各个模块的职责和交互方式。架构图如下图所示。

图3-1系统架构设计图

表示层(Presentation Layer):负责与用户进行交互,将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。

业务逻辑层(Business Logic Layer):处理系统的核心业务逻辑,包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层,实现了业务逻辑的封装和复用。

数据层(Data Layer):负责数据的存储、访问和管理,包括数据库和持久化机制。数据层提供了对数据的增删改查操作,并与业务逻辑层进行交互,使系统能够有效地存储和检索数据。

这三个层次相互独立,通过明确的接口和协议进行通信,实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层,业务逻辑层处理请求并返回结果,最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。

3.2 系统功能模块设计

3.2.1整体功能模块设计

通过整体功能模块设计,根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。具体的功能模块图如图3-2所示。

图3-2 系统功能模块图

3.2.2系统用户模块设计

(1)系统用户模块结构图

本系统主要分为管理员、注册用户和商家用户这三个用户角色。它们共享基本功能,但注册用户和商家用户多了一个注册功能,以便能够注册使用系统。管理员用户在系统中有着操作权限和功能,确保了系统的一致性和易用性。用户模块结构图如下图3-3所示:

图3-3系统用户模块结构图

(2)各个结构的具体业务逻辑

a.查询用户信息:设计基础的查询功能,允许用户根据用户姓名查询用户信息。此功能主要用于管理员查询用户信息和用户自行查询个人信息。

b.修改用户信息:用户可以根据需要修改个人基本信息,包括姓名、密码、头像等。这种操作可以提高用户个性化体验。

c.增加用户信息:用户可以通过注册获取账号,成为系统的注册用户,以便享受系统提供的服务和功能。

d.删除用户信息:管理员可以对已注销的用户信息进行删除操作。

3.2.3书籍商城模块设计

(1)书籍商城模块结构图

校园二手书交易平台需要一个完善的书籍商城模块来存储和管理大量商品(书籍)信息。注册用户可以浏览商品并进行收藏、加入购物车和立即购买等操作,商家用户/管理员则具有查询、添加、修改、删除商品信息的权限,这样的书籍商城模块能够有效地组织和管理商品信息,提供用户查询商品信息的便利性,同时为管理员提供商品信息管理的功能,确保系统的正常运行和用户体验。具体的结构图如下图3-4所示:

图3-4书籍商城模块结构图

(2)各个结构的具体业务逻辑

a.查询商品信息:用户可以通过关键词等方式搜索查询商品信息。

b.添加商品信息:商家用户/管理员具有添加商品信息的权限,可以新增商品信息到系统中。

c.重置商品信息:商家用户/管理员可以对现有商品信息进行修改,包括更新库存等。

d.删除商品信息:商家用户管理员可以删除不再售卖的商品信息,如已下架、已禁售等商品信息。

3.3 数据库设计

3.3.1 数据库概念结构设计

本文在系统分析阶段抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。校园二手书交易平台总体E-R图如下图3-5所示。

图3-5 系统总E-R关系图

3.3.2 数据库逻辑结构设计

数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。在此主要罗列系统中所需要的主要数据结构表,如下所示:

表book_mall (书籍商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

book_mall_id

int

10

0

N

Y

书籍商城ID

2

book_name

varchar

64

0

Y

N

书籍名称

3

book_author

varchar

64

0

Y

N

书籍作者

4

merchant_users

int

10

0

Y

N

0

商家用户

5

hits

int

10

0

N

N

0

点击数

6

recommend

int

10

0

N

N

0

智能推荐

7

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

8

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

9

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

10

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

11

cart_price

double

8

2

N

N

0.00

卖价:[1]

12

cart_inventory

int

10

0

N

N

0

商品库存

13

cart_type

varchar

64

0

N

N

未分类

商品分类:

14

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

15

cart_img_1

text

65535

0

Y

N

主图1:

16

cart_img_2

text

65535

0

Y

N

主图2:

17

cart_img_3

text

65535

0

Y

N

主图3:

18

cart_img_4

text

65535

0

Y

N

主图4:

19

cart_img_5

text

65535

0

Y

N

主图5:

20

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

21

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

标题:[0,125]用于产品和html的<title>标签中

3

img

text

65535

0

Y

N

封面图:用于显示于产品列表页

4

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

5

price_ago

double

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

点击量:[0,1000000000]访问这篇产品的人次

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表merchant_users (商家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

merchant_users_id

int

10

0

N

Y

商家用户ID

2

merchant_name

varchar

64

0

Y

N

商家名称

3

merchant_gender

varchar

64

0

Y

N

商家性别

4

identification_number

varchar

64

0

Y

N

证件号码

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

255

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

22

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

0

Y

N

订单备注

24

delivery_state

varchar

16

0

Y

N

未配送

发货状态:未配送,已配送

25

vip_discount

double

11

2

Y

N

0.00

折扣

表registered_user (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_user_id

int

10

0

N

Y

注册用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_age

varchar

64

0

Y

N

用户年龄

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.4本章小结

整个校园二手书交易平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 系统详细设计与实现

本系统的实现主要是根据前面的系统需求分析和系统总体设计来设计页面并实现业务逻辑。主要从校园二手书交易平台界面实现、业务逻辑实现这两部分进行介绍。

4.1注册用户功能模块

4.1.1用户注册界面

用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。系统会对输入的信息进行验证,验证通过后即可完成注册。其界面展示如下图4-1所示。

图4-1用户注册界面图

4.1.2用户登录界面

用户登录界面用于已注册的用户进行账号登录,用户需要输入正确的用户名、密码和验证码才能成功登录系统。系统会对输入的信息进行验证,验证通过后即可完成登录,同时,系统提供密码找回或重新注册的选项。其界面如下图4-2所示。

图4-2用户登录界面图

登录代码如下:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

4.1.3首页界面

首页界面是用户访问该系统的入口页面,它展示系统的主要功能和特色。用户可以查看首页展示的导航栏、轮播图、书籍商城、图书资讯等信息。在书籍商品界面系统会根据用户的购买记录向用户推荐同类型的商品。首页界面展示如下图4-3所示。

图4-3 首页界面图

4.1.4 公告通知界面

用户可以查看系统发布的网站公告、关于我们、联系方式、网站介绍等信息。如点击网站公告进入页面可以查看该公告的详细信息。其界面如下图4-4所示。

图4-4 公告通知界面图

4.1.5 图书资讯界面

用户可以查看图书资讯列表中某个资讯的详情并可以点赞、收藏和评论。支持通过关键字搜索、局部搜索、筛选等方式搜索查看资讯信息。其界面如下图4-5示。

图4-5 图书资讯界面图

4.1.6 书籍商城界面

用户可以查看商品列表中某个商品(书籍)的详情,如书名、价格,库存等信息,并可以进行收藏、加入购物车、立即购买等操作。点击“立即购买”进入页面确认订单信息后可以通过微信、支付宝等方式完成在线支付,购买后可以对商品进行评价。支持通过关键字搜索、筛选等方式搜索查看商品信息。其界面如下图4-6所示。

图4-6 书籍商城界面图

4.1.7 商城管理界面

商城管理界面包括我的购物车、我的订单和我的地址这三个子菜单。用户点击“我的购物车”可以查看购物车的商品信息,选择某个商品后,可以对商品的数量进行增减,可以选择购买或删除。点击“我的地址”可以新增收货地址或对已有的地址进行编辑。点击“我的订单”可以查看所有订单信息,支持通过排序和订单状态搜索查看订单信息。以我的订单为例,其界面如下图4-7所示。

图4-7 我的订单界面图

4.1.8个人中心界面

用户点击我的头像的下拉菜单“个人中心”进入页面可以查看和管理个人首页、订单配送、收藏和评论管理信息。如点击“订单配送”可以查看列表中某个订单的配送详情并可以进行签收操作;点击“收藏”可以查看和删除收藏列表信息。个人中心界面如下图4-8所示:

图4-8 个人中心界面图

删除的代码如下:

  @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

4.2商家用户功能模块

4.2.1 后台首页界面

后台首页界面为商家用户提供了方便快捷地查看商品销售金额统计和商品销售数量统计图信息,帮助他们更好地了解和分析当前商品销售的情况,以便制定相应的经营策略。其界面如下图4-9所示。

图4-8 后台首页界面图

4.2.2 商城管理界面

在商城管理模块商家对书籍商城、分类列表、订单列表、订单配送信息进行管控。商家可以对书籍商城、分类列表信息进行增删改查操作;点击“订单列表”可以查看列表中某个订单的详情和提交配送信息,支持通过输入订单号、商品名称,联系人姓名或选择订单状态查询订单信息。点击“订单配送”可以查看列表中某个订单的配送详情。以订单列表为例,其界面如下图4-10所示。

图4-10 订单列表界面图

  添加的代码如下:

    @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

查询的代码如下:

    @RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

    }

4.3管理员功能模块

4.3.1系统用户界面

管理员负责对新注册的商家用户信息进行审核,支持通过用商家姓名、商家性别、审核状态来查询商家用户信息。管理员可以对所有用户信息(注册用户、商家用户、管理员)进行增删改查操作。其界面如下图4-11所示。

图4-11系统用户界面图

修改的代码如下:

    @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

4.3.2系统管理界面

在系统管理界面管理员对轮播图进行管控,可以对轮播图信息进行增删改查操作。如点击“添加”进如页面填写标题、链接,上传轮播图片后点击“提交”即可完成轮播图的添加。其界面如下图4-12所示。

图4-12系统管理界面图

图片/文件上传的代码如下:

@PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }

4.3.3 公告通知管理界面

公告通知管理模块是管理员用来管理系统中的公告通知的界面。管理员可以通过该界面进行公告通知的创建、编辑、发布和删除等操作,以便向用户传达各种重要信息、公告、更新或事件等内容。其界面如下图4-13所示。

图4-13公告通知管理界面图

4.3.4资源管理界面

在资源管理模块管理员对图书资讯和资讯分类进行管控,可以对图书资讯和资讯分类信息进行增删改查操作。如点击“图书资讯”管理员可以查看资讯列表中某个资讯的详情和评论信息。点击资讯分类可以查看资讯分类列表信息,点击列表上方的“添加”进入页面填写类型名称信息后点击“提交”即可完成资讯分类的添加。以图书资讯为例,其界面如下图4-14所示。

图4-14图书资讯界面图

4.3.5 商城管理界面

在商城管理模块管理员对书籍商城、分类列表、订单列表、订单配送信息进行管控。管理员可以对书籍商城、分类列表信息进行增删改查操作;可以对订单列表和订单配送信息进行查询、重置和删除操作。例如点击“书籍商城”可以查看列表中某商品的详情和评论信息;点击“订单配送”可以查看列表中某个订单的配送详情。以书籍商城为例,其界面如下图4-15所示。

图4-15书籍商城界面图

5系统测试

5.1测试目的

为了保证校园二手书交易平台的质量,使其能够稳定的运行,并排除其可能存在的未知隐患。解除软件可能存在的故障,理清楚测试与纠错的关系,如图5-1所示。

图5-1测试与纠错信息流程

5.2 系统功能测试

通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。系统功能测试包括:用户登录功能测试、用户购买商品功能测试、用户发布评论功能测试、商家添加商品信息功能测试、管理员删除公告通知功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

表5-1用户注册登录测试表

用户注册登录测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

用户注册、登录

测试用户正确注册、登录

  1. 在首页界面注册一个新用户,按规定输入合理的注册信息,提交。
  2. 用户在登录界面输入账户密码登录

用户注册成功,登录成功

结果输出符合预期

通过

表5-2用户购买商品测试表

用户购买商品测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

购买商品测试

测试注册用户购买商品息

  1. 在首页导航栏点击书籍商城;
  2. 选择商品列表中某个商品点击进入详情,点击详情下方的“立即购买”

能够在线下单并通过微信、支付宝等方式完成支付

结果输出符合预期

通过

表5-3用户发表评论测试表

用户发表评论测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

用户发表评论

测试注册用户发表评论操作

  1. 在导航栏点击图书资讯并看某个资讯信息的详情;
  2. 在详情页面下方发表对该资讯的评论

用户发表评论成功,展示用户评论信息

结果输出符合预期

通过

表5-4商品信息添加测试表

商家添加商品信息测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

商品信息添加测试

测试商家添加图书信息信息

  1. 商家用户点击商城管理下方的书籍商城,进入页面后点击“添加”;
  2. 输入相关信息后点击“提交”

商品信息信息添加成功,前端用户可以查看该商品信息

结果输出符合预期

通过

表5-5公告通知删除测试表

公告通知删除测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

公告通知删除测试

公告通知信息删除

  1. 管理员点击公告通知管理;
  2. 选择一个公告通知后点击删除并确认删除

公告通知删除成功,前端不在展示该通公告知信息

结果输出符合预期

通过

5.3 测试结果总结

通过编写 校园二手书交易平台的功能测试用例,已经检测完毕系统测试包括:用户登录功能测试、用户购买商品功能测试、用户发布评论功能测试、商家添加商品信息功能测试、管理员删除公告通知功能测试,通过这五大模块功能测试将为校园二手书交易平台的后期推广运营提供了强力的技术支撑。

6 结论

在开发校园二手书交易平台之前,需要对用户的实际需求进行全面分析。这不仅包括对系统的可行性研究,还包括对功能需求和其他需求的详细分析。在可行性分析阶段,本人从技术性、经济性等多个角度对系统实现的可能性进行了全面评估,结果表明,该系统的实施是完全可行的。

本文首先概述了校园二手书交易平台开发的背景及其意义,接着详细阐述了系统的具体业务需求。根据这些需求,本文对系统的结构和功能模块进行了精细的设计。整个系统被划分为多个独特的功能模块,每个模块都具有其特定的功能和作用,以确保系统的高效运行和用户友好性。

在开发本系统的过程中,我收获颇丰,学到了许多书本上学不到的知识。尽管系统已经基本完成,但由于个人专业知识的局限,系统仍有许多需要改进的地方,例如界面布局的优化、代码编写的规范性等。未来,我将继续努力学习,不断提升自己的技术水平,对系统进行进一步的完善。同时,我衷心希望校园二手书交易平台能够有机会投入实际使用,为在校师生提供一个便捷、高效的二手书交易环境,同时推动资源的可持续利用和环保意识的提升。

参考文献

[1]赵俊杰,葛敬军,朱文婷.基于微信小程序的校园二手书交易平台的设计与实现[J].科技与创新,2024,(09):7-11+15.

[2]蒋瑞霞,王莉.基于地理位置的校园二手交易平台设计与实现[J].物联网技术,2024,14(04):73-76.

[3]孙丽,王皓,戴璐,等.大学校园二手交易平台构建与运营——以E大学“花梨闲转”微信小程序为例[J].科技与创新,2024,(04):12-16.DOI:10.15913/j.cnki.kjycx.2024.04.003.

[4]唐瑛.服务设计思维下校园二手书籍交易平台设计研究[J].大众文艺,2023,(23):13-15.

[5]殷梅雨,肖月,周慧珍.基于“互联网+”的校园二手交易平台发展对策研究[J].现代商贸工业,2023,44(23):23-25.

[6]张芸芳,范双双.C2B2C模式下“剩闲书”二手书交易平台的构建[J].今日财富,2023,(17):17-19.

[7]王川,高凤英,蔡则天,等.高校二手书籍交易平台研究与设计——以内蒙古大学为例[J].科技创业月刊,2023,36(05):176-179.

[8]李顺,康雄杰.当前经济背景下校园二手交易平台的构建——以邵阳学院为例[J].财富时代,2023,(05):88-90.

[9]曹振兴,刘亚娇,邹敏,等.绿色校园背景下的校园二手交易平台[J].数字通信世界,2023,(01):75-77.

[10]高耀,许诺,李博,等.基于Web的新型校园二手交易平台实践研究——以“校易集市”为例[J].中国商论,2023,(01):130-132.

[11]张柱,宋存进,蒋乐,等.基于微信小程序校园二手交易平台设计与开发[J].电脑编程技巧与维护,2022,(12):59-61+142.

[12]张翼飞,郭宇斌,高斌梁.关于大学生App的开发与现实意义——以校园二手交易平台“拾物”App为例[J].老字号品牌营销,2022,(22):88-90.

[13]刘发,赵思颖,胡洁,等.基于小程序的大学校园闲置书籍交易平台设计与开发[J].无线互联科技,2022,19(16):74-77.

[14]魏海芝,易寒茹,杨娇.基于闲鱼等交易平台的校园二手市场现状及前景调研报告[J].商场现代化,2022,(09):43-45.

[15]肖佳欣,李雪,曲嵬琦.基于新媒体营销搭建校园二手交易平台的策略研究[J].营销界,2022,(01):35-37.

[16]赵停停.基于MySQL数据库技术的Web动态网页设计研究[J].信息与电脑(理论版),2023,35(17):174-176.

[17]朱金波.Java编程语言在计算机软件开发中的应用优势分析[J].信息记录材料,2023,24(05):68-70.

[18]Zeng X ,Zhou Y ,Chen X .Study on the System Design of Campus Resource Sharing Platform[J].E3S Web of Conferences,2021,23502038-.

[19]Domínguez P I ,Zambrano E R ,Rodríguez Á V .Gen Z’s Motivations towards Sustainable Fashion and Eco-Friendly Brand Attributes: The Case of Vinted[J].Sustainability,2023,15(11):

[20]Liu Y .Campus Second-Hand Textbook Trading Platform based on Vue 3 and Spring Boot[J].International Core Journal of Engineering,2024,10(6):

致  谢

首先,我要向我的论文指导老师致以最深切的敬意和感谢。在整个论文创作的过程中,老师的指导如同明灯一般照亮了我的前行道路。他不仅耐心地解答我的疑问,还凭借其深厚的学识和敏锐的洞察力,提出了许多具有深远意义的建议。老师的严谨治学态度、敬业精神和高超的教学艺术,为我树立了追求卓越的榜样,对我未来的人生道路和学业成就产生了深远的影响。

同时,我要向我的同学们表达诚挚的感谢。你们不仅是我的亲密战友,也是我生活中的良师益友。正是你们的鼓励和支持,使我在大学期间的学习和生活变得丰富多彩。我要对所有在我求学路上给予我帮助的老师和同学们表示衷心的感谢,是你们的支持和帮助给了我继续前进的力量。

我还要向我的父母表达深深的感激之情。是你们用无尽的爱和关怀,将我抚养成人。你们的养育之恩,我将永生铭记在心。我将会用我的行动和成绩来回报你们的期望。在未来的日子里,我将继续努力,用实际行动来回报你们对我的付出和关爱。

再次感谢所有支持和帮助我的人,是你们让我在求学之路上不再孤单,让我有勇气面对一切挑战。谢谢你们!

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值