springboot“不借”校园物品租赁平台-计算机毕业设计源码97042

摘要

随着微信小程序的普及和校园租赁市场的发展,基于微信小程序的校园物品租赁平台正逐渐成为热门话题。本文旨在研究如何利用微信小程序结合云开发技术,搭建一个便捷高效的校园物品租赁平台,以满足大学生在校园生活中对于各种物品的短期租赁需求。通过对相关背景知识和技术原理的探讨,将运用软件工程和用户体验设计的理论,构建一个功能齐全、操作简便、安全可靠的校园物品租赁平台。

本设计主要实现集人性化、高效率、便捷等优点于一身的“不借”校园物品租赁平台,实现了系统用户、物品类别管理、租赁物品管理、租赁申请管理、租赁确认管理、归还信息管理、破损信息管理、系统管理、留言管理、系统公告管理、资源管理、交流管理等核心功能。随后,重点研究了“不借”校园物品租赁平台的设计原则和技术架构。其中,后端使用了云端一体化的后端云服务和SpringBoot框架来实现“不借”校园物品租赁平台的业务逻辑与数据交互,配合前端Vue.js和微信开发者工具,数据储存方面选用了关系型数据库MySQL,通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。

本研究详细分析了基于微信小程序的“不借”校园物品租赁平台的设计、功能和用户体验,对现有校园租赁平台的优缺点进行分析,提出改进建议,以期为校园物品租赁平台的发展提供有益参。

关键词:校园物品租赁;微信小程序;云开发CloudBase;SpringBoot


Abstract

With the popularization of WeChat mini programs and the development of the campus rental market, campus item rental platforms based on WeChat mini programs are gradually becoming a hot topic. This article aims to study how to use WeChat mini programs combined with cloud development technology to build a convenient and efficient campus item rental platform, in order to meet the short-term rental needs of college students for various items in campus life. By exploring relevant background knowledge and technical principles, we will apply the theories of software engineering and user experience design to build a fully functional, easy to operate, safe and reliable campus item rental platform.

This design mainly implements a "no borrowing" campus item rental platform that combines the advantages of humanization, high efficiency, and convenience. It realizes core functions such as system user, item category management, rental item management, rental application management, rental confirmation management, return information management, damage information management, system management, message management, system announcement management, resource management, and communication management. Subsequently, the focus was on studying the design principles and technical architecture of the "no borrowing" campus item rental platform. Among them, the backend uses cloud integrated backend cloud services and SpringBoot framework to achieve the business logic and data interaction of the "no borrowing" campus item rental platform. In combination with the front-end Vue.js and WeChat developer tools, the relational database MySQL is used for data storage. Through scientific management and convenient services, work efficiency is improved and errors and omissions in data storage are reduced.

This study provides a detailed analysis of the design, functionality, and user experience of a "no borrowing" campus item rental platform based on WeChat mini programs. The advantages and disadvantages of existing campus rental platforms are analyzed, and improvement suggestions are proposed to provide useful references for the development of campus item rental platforms.

Keywords:Campus item rental; WeChat Mini Program; Cloud Development CloudBase; SpringBoot

目 录

1 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.3 论文章节安排

1.4 关键技术

2 系统分析

2.1 可行性分析

2.1.1 经济可行性分析

2.1.2 技术可行性分析

2.1.3 操作可行性分析

2.2 需求分析

2.2.1 功能需求分析

2.2.2 性能需求分析

2.2.3 业务流程分析

3 系统设计

3.1 架构设计

3.2 功能模块设计

3.3 数据库设计

3.3.1 概念模型设计

3.3.2 数据库表的设计

4 系统实现

4.1 开发环境

4.2 功能模块实现

4.2.1 用户端首页模块

4.2.2 用户端注册模块

4.2.3 用户端登录模块

4.2.4 用户端校园资讯模块

4.2.5 用户端物品租赁模块

4.2.6 管理员端系统用户模块

4.2.7 管理员端物品类别管理模块

4.2.8 管理员端租赁物品管理模块

4.2.9 管理员端系统管理模块

4.2.10 管理员端留言管理模块

4.2.11 管理员端交流管理模块

5.1测试计划

5.1.1 测试范围与主要内容

5.1.2 测试方法

5.2 功能测试

5.3 测试结论

6 总结与展望

致谢

1 绪论

1.1 研究背景与意义

随着互联网技术的不断发展和普及,移动互联网应用成为人们生活中不可或缺的一部分。校园物品租赁平台作为一种基于云开发的服务模式,通过云端数据存储和计算资源,为校园内学生提供方便快捷的物品租赁服务。传统的校园物品租赁通常需要学生前往指定地点办理租赁手续,存在时间成本高、信息不透明、便捷性不足等问题,而基于微信小程序的“不借”校园物品租赁平台可以有效解决这些问题,提升校园学生的租赁体验。

“不借”校园物品租赁平台包括租借物品信息展示、在线预订下单、租赁订单管理、在线支付、物品归还等功能,让学生可以通过手机轻松完成物品租赁的整个流程,节省时间和精力。同时,云开发技术可以实现数据的实时同步和多端租赁,保障数据的安全和可靠性,提高平台的稳定性和可用性。

研究基于微信小程序的“不借”校园物品租赁平台具有重要的现实意义和应用前景。首先,它能够有效解决校园学生在物品租赁方面的需求,提升校园生活的便利性和舒适度。其次,通过搭建这样的平台,可以促进校园内物品的租赁和再利用,减少资源浪费,推动可持续发展理念的传播和实践。再者,研究该平台也有助于推动云计算技术在教育领域的应用和推广,促进校园信息化建设的进一步完善。

1.2 国内外研究现状

随着互联网的发展和普及,校园物品租赁平台在国内外得到了广泛的关注和研究。在国外,像美国的Chegg和欧洲的Unibuddy等平台已经成为了大学生间非常流行的租赁和分享平台。国外平台更注重社交化的功能,例如社交媒体分享、用户评论及推荐等。此外,一些国外平台还提供基于物联网的智能设备租赁服务,例如智能自行车锁、智能充电宝等。

而在国内,类似的平台也在迅速发展,比如“摩点租赁”、“啄木鸟科技”等。这些校园物品租赁平台为学生们提供了一个方便、经济又环保的方式来获得所需的物品。学生可以将自己闲置的物品租给其他学生使用,或者借用其他学生的物品,以满足自己的需求。这样一来,不仅能够减少学生的经济负担,还能够提高资源的利用率,减少浪费。此外,校园物品租赁平台还能够为学生提供一个更加便捷的购物方式。学生可以通过这些平台直接购买自己所需的物品,而不必到实体店铺购买。这不仅省去了学生跑腿的时间和精力,还能够节约学生的金钱。

国内多数校园物品租赁平台都采用云开发技术,以提高平台的可扩展性和稳定性。例如,阿里云的函数计算和云数据库等服务,可以方便开发者快速构建租赁平台。此外,国内校园物品租赁平台的发展重点集中在用户体验和安全保障上。例如,一些平台采用实名认证和押金制度,以增强用户的安全感。

目前,校园物品租赁平台正处于快速发展阶段,然而,当前存在的问题仍然较为突出。例如,平台安全性、用户体验、交易流程等方面都需要进一步改进。因此,本研究的目的是基于云开发技术,构建一款安全稳定、用户体验良好的校园物品租赁平台,以提供更加便捷的物品租赁服务。

1.3 论文章节安排

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

第一章:绪论。此章节对所设计和实现的系统的目的以及意义和国内外研究现在进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。

第二章:系统需求分析。章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。

第三章:系统的设计。主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。

第四章:系统的实现。根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。

第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

1.4 关键技术

系统采用前后端分离架构,使用HTML、CSS、JavaScript等前端技术进行界面开发,并采用微信小程序作为开发平台,提供良好的用户体验。后端采用Java语言,使用SpringBoot框架作为基础架构,结合云开发技术进行系统开发。数据库方面使用MySQL数据库进行数据存储,设计合理的表结构和关联关系,确保数据的准确性和完整性。

1、微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序,并对其进行精确的切割。

在完成了视图布置之后,可以通过执行编辑功能,快速更改视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2、HTML技术简介

HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

超文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下:

  1. 简易性:超文本标记语言版本升级采用超集方式,从而更加灵活方便。
  2. 可扩展性:超文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超文本标记语言采取子类元素的方式,为系统扩展带来保证。
  3. 平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。
  4. 通用性:另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。

3、SpringBoot框架

Spring框架是一个由SpringBoot公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseSpringBootBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。

Spring框架拥有强大的IOC功能,可以轻松地实现SpringBoot对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将SpringBoot对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求[10]。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据租赁、文件租赁、网络安全协议、网络安全协议。

SpringBoot的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、SpringBoot等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括SpringBoot、iBATS/MyBATIs、Hibernate、SpringBoot)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能。


2 系统分析

2.1 可行性分析

2.1.1 经济可行性分析

基于微信小程序的“不借”校园物品租赁平台存储所使用的MySQL数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用SpringBoot框架进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前SpringBoot框架也是很多企业选择的框架之一。

2.1.2 技术可行性分析

在开发基于微信小程序的“不借”校园物品租赁平台中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且基于微信小程序的“不借”校园物品租赁平台是自己设计并编码实现的,数据库是使用流行MySQL进行数据的存储,开源的MySQL等技术的使用,减少系统开发费用。

2.1.3 操作可行性分析

在日常生活中,随着小程序的快速推广和使用,越来越多人掌握小程序的使用方法,基于微信小程序平台的校园物品租赁小程序在这种条件背景下是很容易被人们所接受和熟悉的,所以在操作上没任何问题。

2.2 需求分析

2.2.1 功能需求分析

基于微信小程序的“不借”校园物品租赁平台的功能主要分为前台用户端和管理端两大部分。其中前台用户划分为出租方和借用方,借用方用户根据自己的需求进行注册登录,浏览首页信息包括留言板、租赁物品信息、交流论坛、校园资讯等详细模块信息。借用方用户校园物品租赁信息进行租赁申请出租主要是对租赁物品信息的发布,审核借用方的租赁申请和物品的破损、归还信息。后台系统管理员主要对系统用户、物品类别管理、租赁物品管理、租赁申请管理、租赁确认管理、归还信息管理、破损信息管理、系统管理、留言管理、系统公告管理、资源管理、交流管理进行处理。超级管理员拥有最高权限。

1、前台用户功能

(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现校园物品租赁或发表评论等操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作。

(2)首页模块:用户可以查看基于微信小程序的“不借”校园物品租赁平台的首页信息包括主导航、留言板、租赁物品、交流论坛、校园资讯等。

(3)留言板:用户可以点击留言板,进入到留言填写界面,输入留言内容点击提交。

(4)租赁物品:用户点击首页的“租赁物品”按钮,可以查看到租赁物品信息列表,点击可查看包括物品规格、借用单价、物品数量、单件价值、物品介绍、出租方、出租人名的详情信息,用户可以进行点赞、评论、收藏等操作,其中借用方还可以进行租赁申请操作。

(5)交流论坛:用户点击“交流论坛”菜单显示所有的交流论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。

6校园资讯模块:当用户点击下方导航栏的“校园资讯”按钮,会显示管理员在后台发布的所有校园资讯列表信息,可以查看详情也可以进行收藏、点赞、评论等

7)我的模块:出租方在“我的”模块主要对基本信息、收藏、租赁物品、租赁申请、租赁确认、归还信息、破损信息、留言板管理、论坛管理等模块的信息进行管理。借用方用户在前台点击“我的”可以对用户的基本信息收藏、租赁申请、租赁确认、归还信息、破损信息、留言板管理、论坛管理等信息进行管理。

出租方用户用例图如下所示。

图2.1 出租方用户用例图

借用方用户用例图如下所示。

图2.2 借用方用户用例图

2、后台管理员功能

(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。

(2)系统用户:管理员可以对基于微信小程序的“不借”校园物品租赁平台中的管理员出租方和借用方进行增删改查。

(3)物品类别管理:管理员点击“物品类别管理”可以对系统的租赁物品类别信息进行管理。

4租赁物品管理:管理员点击“租赁物品管理”会显示出所有租赁物品信息,支持输入物品类别校园物品租赁信息进行查询,如果想要添加新的校园物品租赁信息,点击“添加”按钮,输入详细信息,点击“提交”按钮就可以添加了,同时可以选择某一条校园物品租赁信息,点击“删除”进行删除。

5租赁申请管理:管理员点击“租赁申请管理”会显示出所有的租赁申请信息,也可以点击右侧的“支付”按钮进行支付信息操作

6租赁确认管理:管理员点击“租赁确认管理”会显示出系统所有用户租赁订单确认信息,支持对其进行删改查。

7归还信息管理:管理员点击“归还信息管理”会显示出系统所有用户物品归还信息,支持对其进行删改查。

8破损信息管理:管理员点击“破损信息管理”会显示出所有物品的破损信息点击详情对破损信息进行审核回复

9)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理。

(9)留言管理:管理员可以对前台用户提交的留言进行内容查看和回复

(11)系统公告管理:管理员点击“系统公告管理”菜单可以查看到系统中的所有系统公告信息,对已经存在的系统公告,管理员可以修改,也可以添加新的系统公告或者删除系统公告

(12)资源管理:管理员可以对基于微信小程序的“不借”校园物品租赁平台前台展示的校园资讯以及校园资讯所属的分类进行管控。

(13)交流管理:管理员可以对系统前台展示的交流论坛以及交流论坛所属的分类进行管控。

管理员用例图如下所示。

图2.3 借用方用户用例图

2.2.2 性能需求分析

本系统主要是为了方便用户获取校园物品租赁信息、通过提供物品租赁服务,使用户能够在需要的时候方便地租用物品,包括以下特点:

(1)界面简洁、操作简单方便。设计网站前端界面时应当站在用户的角度,尽量符合大众审美,迎合用户的使用习惯。整体简洁大方,主要功能位于主页显眼位置,方便用户查找使用,登录界面作为第一页面,用户可快速登录得到自身的功能主页,进行操作。各个页面统一风格,颜色搭配合理,便于用户浏览,个板块间布局合适,提高用户体验。

(2)运行流畅,响应速度快。虽然每日的校园物品租赁有限,对系统的并发能力无太大要求,但为了保证用户体验,减少等待时间,仍应该尽可能提高网站的运行速度,可提高更合理的算法设计,更多的模型效率达到,而在业务流程中,减少无关业务量,也是提高运行速度的关键,访问数据库时,选择合适的数据库锁,设计切合实际的数据库表,都能一定程度上提高网站运行效率。

2.2.3 业务流程分析

业务流程图不仅能反映出内部业务之间的关系,而且能体现出管理顺序及信息的流动。基于微信小程序的“不借”校园物品租赁平台必须支持整个组织在不同层次上的各种功能,各个功能模块之间又有各种不同相关的信息进行联系,构成了一个有机的整体,根据基于微信小程序的“不借”校园物品租赁平台的特点以及结合所面临的实际情况,设计出了系统的业务流程图。

系统的业务流程如下图所示。

图2.4 业务流程图


3 系统设计

3.1 架构设计 

MVC 是指 Model、View 和 Controller,翻译成中文分别是模型层、视图层和控制层。MVC 模式是一种设计模式,它强制性的把应用程序的输入、输出和处理全部分开,将其分为三个核心部分,这三个部分分别有不同的功能。

系统架构图如图3.1所示:

图3.1 系统架构图

视图层视图是指被用户所看到的并且能够与之进行交互的界面。视图可以向用户展示相关的数据,并接收用户输入的数据,但对用户数据不进行任何实际业务操作处理。

模型层通过控制层来处理视图层传递的数据,同一个模型可以给不同的视图提供数据,也可以被不同的视图重复使用。由于 Model 的主要内容是数据、方法和行为,其也是 MVC 中逻辑最为复杂,代码量最多的部分,其中包含了许多应用中需要用到的业务逻辑,因此模型层的开发也变得尤为重要,后期一般不会对模型层进行大规模改动,也是 MVC 中最稳定的部分。

控制层主要负责视图层和模型层之间的数据传输和处理请求操作。当用户通过视图发送数据和请求时,控制层可以接收请求和数据并决定调用哪些模型、通过模型的哪些操作来处理数据和请求,处理完成后,控制层再将数据返回给相应的视图。

3.2 功能模块设计

根据对系统的功能进行分析可以总结基于微信小程序的“不借”校园物品租赁平台的具体功能模块包括下面的几个主要的功能模块:该系统主要从两大模块进行设计的,首先就是用户参与操作需要的模块,此外还需要有管理员用到的模块,两者之间不是互相独立的,他们之间有着密切的联系,同数据库表中的数据连接起来进行操作。每个模块访问相同的数据库,但访问的表不同。系统的各个功能模块是根据所收集的资料研究得到的。在以上分析功能的基础上,系统模块分为多个模块。

本系统的功能模块图如图3.2所示

图3.2 系统功能模块图

3.3 数据库设计 

3.3.1 概念模型设计 

根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。

系统E-R图如下图所示。

图3.3 系统数据库E-R图

3.3.2 数据库表的设计 

数据库是基于微信小程序的“不借”校园物品租赁平台的数据处理的基础,也是为界面数据的展示与存储的关键。基于微信小程序的“不借”校园物品租赁平台的主要数据库表如下。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表borrower (借用方)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

borrower_id

int

10

0

N

Y

借用方ID

2

borrowing_persons_name

varchar

64

0

Y

N

借用人名

3

gender

varchar

64

0

Y

N

性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表damage_information (破损信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

damage_information_id

int

10

0

N

Y

破损信息ID

2

lease_number

varchar

64

0

N

N

租赁编号

3

serial_number

varchar

64

0

Y

N

物品编号

4

item_name

varchar

64

0

Y

N

物品名称

5

item_category

varchar

64

0

Y

N

物品类别

6

item_images

varchar

255

0

Y

N

物品图片

7

item_specifications

varchar

64

0

Y

N

物品规格

8

the_lessor

int

10

0

Y

N

0

出租方

9

name_of_lessor

varchar

64

0

Y

N

出租人名

10

borrower

int

10

0

Y

N

0

借用方

11

borrowing_persons_name

varchar

64

0

Y

N

借用人名

12

single_piece_value

int

10

0

Y

N

0

单件价值

13

damaged_quantity

int

10

0

Y

N

0

破损数量

14

damage_amount

varchar

64

0

Y

N

破损金额

15

damaged_content

text

65535

0

Y

N

破损内容

16

pay_state

varchar

16

0

N

N

未支付

支付状态

17

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表item_category (物品类别)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

item_category_id

int

10

0

N

Y

物品类别ID

2

item_category

varchar

64

0

Y

N

物品类别

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表lease_application (租赁申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

lease_application_id

int

10

0

N

Y

租赁申请ID

2

lease_number

varchar

64

0

Y

N

租赁编号

3

serial_number

varchar

64

0

Y

N

物品编号

4

item_name

varchar

64

0

Y

N

物品名称

5

item_category

varchar

64

0

Y

N

物品类别

6

item_images

varchar

255

0

Y

N

物品图片

7

item_specifications

varchar

64

0

Y

N

物品规格

8

borrowing_unit_price

int

10

0

Y

N

0

借用单价

9

single_piece_value

int

10

0

Y

N

0

单件价值

10

the_lessor

int

10

0

Y

N

0

出租方

11

name_of_lessor

varchar

64

0

Y

N

出租人名

12

borrower

int

10

0

Y

N

0

借用方

13

borrowing_persons_name

varchar

64

0

Y

N

借用人名

14

borrowed_quantity

int

10

0

Y

N

0

借用数量

15

payment_amount

varchar

64

0

Y

N

支付金额

16

borrowing_date

date

10

0

Y

N

借用日期

17

remarks

varchar

64

0

Y

N

备注内容

18

examine_state

varchar

16

0

N

N

未审核

审核状态

19

examine_reply

varchar

16

0

Y

N

审核回复

20

pay_state

varchar

16

0

N

N

未支付

支付状态

21

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

22

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

23

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表lease_confirmation (租赁确认)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

lease_confirmation_id

int

10

0

N

Y

租赁确认ID

2

lease_number

varchar

64

0

N

N

租赁编号

3

serial_number

varchar

64

0

Y

N

物品编号

4

item_name

varchar

64

0

Y

N

物品名称

5

item_category

varchar

64

0

Y

N

物品类别

6

item_images

varchar

255

0

Y

N

物品图片

7

item_specifications

varchar

64

0

Y

N

物品规格

8

borrowing_unit_price

int

10

0

Y

N

0

借用单价

9

single_piece_value

int

10

0

Y

N

0

单件价值

10

the_lessor

int

10

0

Y

N

0

出租方

11

name_of_lessor

varchar

64

0

Y

N

出租人名

12

borrower

int

10

0

Y

N

0

借用方

13

borrowing_persons_name

varchar

64

0

Y

N

借用人名

14

borrowed_quantity

int

10

0

Y

N

0

借用数量

15

payment_amount

varchar

64

0

Y

N

支付金额

16

borrowing_date

date

10

0

Y

N

借用日期

17

remarks

varchar

64

0

Y

N

备注内容

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表message (留言板)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_id

int

10

0

N

Y

留言板ID:

2

user_id

int

10

0

N

N

0

用户ID:

3

title

varchar

64

0

Y

N

标题:

4

content

longtext

2147483647

0

N

N

内容:

5

nickname

varchar

32

0

N

N

昵称:

6

avatar

varchar

255

0

Y

N

头像:

7

email

varchar

125

0

Y

N

留言者邮箱

8

phone

varchar

11

0

Y

N

留言者手机号码

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

11

reply

longtext

2147483647

0

Y

N

回复

12

reply_state

tinyint

4

0

Y

N

0

回复状态

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表rental_items (租赁物品)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

rental_items_id

int

10

0

N

Y

租赁物品ID

2

serial_number

varchar

64

0

Y

N

物品编号

3

item_name

varchar

64

0

Y

N

物品名称

4

item_category

varchar

64

0

Y

N

物品类别

5

item_images

varchar

255

0

Y

N

物品图片

6

item_specifications

varchar

64

0

Y

N

物品规格

7

borrowing_unit_price

int

10

0

Y

N

0

借用单价

8

quantity_of_items

int

10

0

Y

N

0

物品数量

9

single_piece_value

int

10

0

Y

N

0

单件价值

10

item_introduction

text

65535

0

Y

N

物品介绍

11

the_lessor

int

10

0

Y

N

0

出租方

12

name_of_lessor

varchar

64

0

Y

N

出租人名

13

hits

int

10

0

N

N

0

点击数

14

praise_len

int

10

0

N

N

0

点赞数

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表return_information (归还信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

return_information_id

int

10

0

N

Y

归还信息ID

2

lease_number

varchar

64

0

N

N

租赁编号

3

serial_number

varchar

64

0

Y

N

物品编号

4

item_name

varchar

64

0

Y

N

物品名称

5

item_category

varchar

64

0

Y

N

物品类别

6

item_images

varchar

255

0

Y

N

物品图片

7

item_specifications

varchar

64

0

Y

N

物品规格

8

borrowing_unit_price

int

10

0

Y

N

0

借用单价

9

the_lessor

int

10

0

Y

N

0

出租方

10

name_of_lessor

varchar

64

0

Y

N

出租人名

11

borrower

int

10

0

Y

N

0

借用方

12

borrowing_persons_name

varchar

64

0

Y

N

借用人名

13

borrowed_quantity

int

10

0

Y

N

0

借用数量

14

payment_amount

varchar

64

0

Y

N

支付金额

15

return_date

date

10

0

Y

N

归还日期

16

remarks

varchar

64

0

Y

N

备注内容

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表the_lessor (出租方)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

the_lessor_id

int

10

0

N

Y

出租方ID

2

name_of_lessor

varchar

64

0

Y

N

出租人名

3

gender

varchar

64

0

Y

N

性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:


4 系统实现

4.1 开发环境

本系统采用了前后端分离的架构设计,基于SpringBoot框架和微信小程序开发,数据库选用关系型数据库MySQL,系统开发环境如表4.1所示。

表4.1 系统开发环境

硬件环境

软件环境

CPU: 2.0G 以上

操作系统:Windows 7及 以上版本

内存:8GB 以上

开发语言:Java

使用框架:SpringBoot+Vue+微信小程序

开发工具:云开发

数据库:MySQL 5.6以上

硬盘:100MB以上

数据库管理工具:Navicat

JDK版本:Java 1.8

显卡:图像级显卡以上

数据库:MySQL 5.6以上

4.2 功能模块实现

4.2.1 用户端首页模块

首页主要分别展示各个模块的最新动态,浏览者可以很清楚地看到不同模块的最新更新内容。并且系统首页每个部分可以跳转到相对应的模块,方便浏览者选择感兴趣的地方。前端首页界面如下图所示。

图4.1 前台首页模块实现图

4.2.2 用户端注册模块

当用户点击“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。

用户端注册模块实现图如下所示。

图4.3 用户端注册模块实现图

注册关键代码如下所示。

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

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

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

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

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}  

4.2.3 用户端登录模块

在登录界面中输入用户名+密码,然后选择相应的角色,点击“登录”按钮,系统会在用户数据库表中匹配相应用户的帐户,如果用户名+密码正确,则会登录到系统中每个用户的主管理界面,否则会提示相应的信息,如果是忘记了密码,请返回登录界面。

用户端登录模块实现图如下所示。

图4.5 用户端登录模块实现图

登录的逻辑代码如下所示。

/**

     * 登录

     * @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.select(map, new HashMap<>()).getResultList();

        }

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

            map.put("email", email);

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

        }

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

            map.put("phone", phone);

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

        }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.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

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

        }

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

        //查询用户审核状态

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

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            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());

            tokenService.save(accessToken);

            // 返回用户信息

            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.2.4 用户端校园资讯模块

当用户点击“不借”校园物品租赁平台中导航栏上的“校园资讯”后将会进入到该“校园资讯”列表的界面,然后选择想要看的资讯信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。

用户端校园资讯模块实现图如下所示。

图4.6 用户端校园资讯模块实现图

4.2.5 用户端物品租赁模块

借用方用户可以查看校园物品租赁信息,在查询到自己想要了解的校园物品租赁信息的时候,可以进入查看详细的介绍,可以了解到该校园物品租赁信息的物品名称、物品规格、借用单价、物品数量、单件价值、物品介绍、出租方、出租人名等,同时可以对点击下方的“租赁申请”进行租赁申请信息填写的相关操作,点击收藏校园物品租赁信息,也可以在下方评论区输入想要评论的内容进行评论。

出租方可以发布租赁物品信息,租赁物品发布实现图如下所示。

图4.7 发布租赁物品信息实现图

校园物品租赁详情实现图如下所示。

图4.8 校园物品租赁详情实现图

租赁申请提交实现图如下所示。

图4.9 租赁申请提交实现图

4.2.6 管理员端系统用户模块

在后台系统用户管理中,主要是管理注册的借用方、出租方和管理员,管理员拥有对所有用户管控的功能。管理端系统用户实现图如下所示。

图4.10 管理端系统用户模块实现图

4.2.7 管理员端物品类别管理模块

管理员点击“物品类别管理”可以查看到所有的物品类别信息,可以对其进行增删改查操作。管理端物品类别管理实现图如下所示。

图4.11 管理端物品类别管理实现图

4.2.8 管理员端租赁物品管理模块

管理员点击“租赁物品管理”会显示出所有的校园物品租赁,支持输入物品名称或物品类别对信息进行查询,如果想要添加新的校园物品租赁信息,点击“添加”按钮,输入物品名称、物品规格、借用单价、物品数量、单件价值、物品介绍、出租方、出租人名等信息,点击“提交”按钮就可以添加了,同时可以选择某一条校园物品租赁信息,点击“删除”进行删除,也可以对用户提交的校园物品租赁信息评论的信息进行管控。

管理端租赁物品管理实现图如下所示。

图4.12 管理端租赁物品管理实现图

4.2.9 管理员端系统管理模块

管理员点击“系统管理”菜单可以对系统的轮播图进行管理,查看到系统中的所有轮播图信息,对已经存在的轮播图,管理员可以修改,也可以发布新的轮播图信息。管理端系统轮播图管理实现图如下所示。

图4.13 管理端系统轮播图管理实现图

4.2.10 管理员端留言管理模块

管理员点击“留言管理”会显示出用户提交所有的留言信息,点击详情可对留言内容进行回复。管理端留言管理实现图如下所示。

图4.14 管理端留言管理实现图

4.2.11 管理员端交流管理模块

管理员点击“交流管理”菜单能够对就业管理系统内的交流论坛帖子及其所属论坛分类信息进行增删改查。管理端交流管理实现图如下所示。

图4.15 管理端交流管理实现图


5 系统测试

5.1测试计划

5.1.1 测试范围与主要内容

一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。

5.1.2 测试方法

具体测试方法包括:黑盒测试和白盒测试。

黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。

白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。

具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。

5.2 功能测试

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表5.1 系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表5.2 注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

下表是租赁物品管理功能的测试用例,检测了租赁物品管理中对校园物品租赁信息信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表5.3 租赁物品管理的测试用例

功能描述

用于租赁物品管理

测试目的

检测租赁物品管理时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加校园物品租赁信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加校园物品租赁信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改校园物品租赁信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改校园物品租赁信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除校园物品租赁信息,选择校园物品租赁信息删除

提示删除成功

与预期结果一致

点击搜索校园物品租赁信息,输入存在的校园物品租赁信息名

查找出校园物品租赁信息

与预期结果一致

点击搜索校园物品租赁信息,输入不存在的校园物品租赁信息名

不显示校园物品租赁信息

与预期结果一致

下表是租赁申请管理功能的测试用例,检测了租赁申请管理中预约单的操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表5.4 租赁申请管理的测试用例

功能描述

用于租赁申请管理

测试目的

检测租赁申请管理时各种操作的情况

测试数据以及操作

预期结果

实际结果

未输入联系电话,点击提交

提示请输入联系电话

与预期结果一致

未输入租赁时长,点击提交

提示请输入租赁时长

与预期结果一致

未输入预约时间,点击提交

提示请输入预约时间

与预期结果一致

5.3 测试结论

通过对基于微信小程序的“不借”校园物品租赁平台的调试,能够检测基于微信小程序的“不借”校园物品租赁平台的稳定性,为基于微信小程序的“不借”校园物品租赁平台正式运行、稳定运行提供了可预测性的维护备案。能够帮助使用者熟悉整个基于微信小程序的“不借”校园物品租赁平台,并对基于微信小程序的“不借”校园物品租赁平台可能出现的错误有所了解。本章节提供了部分调试用例及调试日志,可以帮助使用者解决简单的错误问题,也加深了开发者对于此框架下的基于微信小程序的“不借”校园物品租赁平台编写的了解度,为后期开发者顺利完成基于微信小程序的“不借”校园物品租赁平台、发布基于微信小程序的“不借”校园物品租赁平台提供了非常大的帮助。


6 总结与展望

随着科技的飞速发展,越来越多的行业和企业都在利用计算机技术来管理日益增长的数据。本文旨在探讨基于微信小程序的“不借”校园物品租赁平台设计与实现,以满足校园物品租赁信息化管理的需求。

本次毕业论文主要是利用SpringBoot和云开发技术开发一个安全可靠,操作简易,同时具备业务可扩展的校园物品租赁平台。本文详细的论述了系统的设计和开发,本系统的所有事务逻辑都是按照系统的需求分析进行设计的。在这个设计中,我花了大量的时间去理解系统开发中使用的知识,经过这段时间的努力工作最终完成了系统设计。通过这一阶段的学习,我发现了自己的不足,充分掌握了必要的应用技能,进一步的学习使我充实了自己的知识基础,完成了这个艰巨的任务。当遇到问题时,我很及时的寻求老师的帮助,通过专业的网站和论坛来解决,他们的帮助让我一步一步的成功克服了困难的问题。系统设计过程不容易,你需要不断充实自己,有勇气克服困难。系统开发的一些功能还不完善,需要继续改善后,通过用户体验来修改设计完美的系统,让用户得到更好的体验,我觉得很高兴,因为这是我第一次通过自己的努力实现这个系统,但绝不是我的最后一个,在未来我将努力实现更多的优秀的系统。

目前完成的基于微信小程序的“不借”校园物品租赁平台设计与实现,还有许多有待改进的地方。一个是功能上的改进,第二个是技术上的改进。另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如兼职数据分析和可视化等。另外就是对前端UI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。
参考文献

[1]Xiao J ,Zhou H ,Lei Q , et al.Attention-Mechanism-Based Face Feature Extraction Model for WeChat Applet on Mobile Devices[J].Electronics,2024,13(1):

[2]Wu J ,Chen N ,Xia H , et al.Design and application of a game‐based WeChat mini‐program for screening cognitive impairments in Chinese older adults[J].Alzheimer's  Dementia,2023,19(S11):

[3]Wu J ,Chen N ,Xia H , et al.Design and development of the intelligent voice recognition‐based cognitive assessment WeChat mini‐program[J].Alzheimer's  Dementia,2023,19(S11):

[4]Liao S ,Gao F ,Feng L , et al.Observed Equity and Driving Factors of Automated External Defibrillators: A Case Study Using WeChat Applet Data[J].ISPRS International Journal of Geo-Information,2023,12(11):

[5]高扬扬,李娟,汪茜.论校园正装租赁、定制与创新创业的结合[J].西部皮革,2023,45(12):7-9.

[6]郑妍,张未名,张润园等.基于云开发和微信小程序的爱宠家系统[J].电脑编程技巧与维护,2023,(06):79-81.DOI:10.16184/j.cnki.comprg.2023.06.050.

[7]杨吉欢,李娟,周拓等.一个基于微信云开发的垃圾分类小助手程序的设计与实现[J].电脑知识与技术,2022,18(33):42-44.DOI:10.14004/j.cnki.ckt.2022.2091.

[8]郑逸凡.基于云开发的前端学习小程序设计与实现[J].电子技术,2022,51(11):148-150.

[9]彭嘉怡,袁楠楠,尹鲲龙等.大学生闲置物品交易互助微信小程序设计与开发[J].中国新技术新产品,2022,(18):37-40.DOI:10.13612/j.cnki.cntp.2022.18.016.

[10]赵冰,刘星含,杨泰森等.基于微信小程序的校园二手闲置物品交易平台的设计与实现[J].电脑知识与技术,2022,18(21):64-66.DOI:10.14004/j.cnki.ckt.2022.1254.

[11]张吉祥,袁占良,林孝松等.基于GIS的校园共享单车租赁点布局评价[J].绿色科技,2022,24(04):181-183.DOI:10.16663/j.cnki.lskj.2022.04.065.

[12]张欢雯,冯特,魏迎.微信小程序“闲来”线上地摊的研究与开发[J].技术与市场,2021,28(10):89-90+93.

[13]尉钦超,梁周宇,马奥迪等.基于微信小程序的校园版闲鱼[J].科技创新与应用,2021,11(23):43-45+49.

[14]王强.基于微服务的汽车租赁平台的设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.001172.

[15]赵威,张应青,张仁凯等.基于微信小程序的校园服装租赁服务平台的设计与实现[J].电脑知识与技术,2020,16(21):8-9+12.DOI:10.14004/j.cnki.ckt.2020.2149.

[16]张宇.面向校园的闲置资源交易系统[D].苏州大学,2020.DOI:10.27351/d.cnki.gszhu.2020.001276.

[17]徐伟,李刚,王星等.基于微信小程序的校园服务平台设计与研究[J].信息与电脑(理论版),2020,32(10):97-99.

[18]宇海萍,张渤洋.基于微信小程序的校园二手交易平台开发[J].计算机时代,2020,(04):29-32.DOI:10.16644/j.cnki.cn33-1094/tp.2020.04.009.

[19]鲍勇,于针针,杨前明.校园自助租赁球机工作机理及其关键技术[J].新型工业化,2020,10(03):119-122.DOI:10.19335/j.cnki.2095-6649.2020.03.029.

[20]韩思凡.基于Web的校园个人自行车租赁系统[J].卫星电视与宽带多媒体,2020,(02):23-24.


致谢

眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!

我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。

感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员、班长,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值