正在做毕设的你🧑💻,是不是也在为这些问题头疼:
> ❓选题不知道选什么方向?
> ❓技术栈不知道怎么搭配?
> ❓代码写了一半发现架构有问题?🤯
> 🚀 本系列文章将带你从零到一完成一个完整的毕设项目,涵盖需求分析
> 🏗️系统设计、💻代码实现、📝论文撰写全流程。
⭐⭐⭐关注我,不迷路,持续更新中~⭐
基于微信小程序的本地闲置物品交易平台
摘要
城市居民生活水平提高推动消费升级,家庭闲置物品数量不断增加,这些物品占用大量空间但是没有得到价值再利用。传统的线下交易由于信息不对称和地域范围小,不能满足供需双方对接的需求。闲置物品交易平台利用数字化技术冲破时空束缚,给物品流转赋予了快速通道。根据本地化交易场景来设计、实现一个微信小程序闲置物品交易系统。本系统基于微信小程序开发,采用Spring Boot框架构建后端服务,uniapp前端架构支撑多端适配,MySQL数据库完成数据持久化存储。系统把买家和卖家的角色分开,提供闲置物品发布、求购信息发布、订单交易、租赁交易、续租申请、归还管理等各个功能模块,管理员后台可以对整个流程进行监管以及内容审核。从测试结果可知,系统运行稳定、操作顺畅,可以很好地促进本地闲置资源循环利用,降低用户的交易门槛,有较强的实用价值和推广意义。
关键词:租赁管理闲置物品交易;微信小程序;Spring Boot;租赁管理;uniapp
Abstract
Urban residents' living standards have been improved which makes consumers' upgrading their consumption and continuously increases the quantity of home goods that are idle. Many things take up much room, but are not worth using again. Offline transactions that have always been restricted due to a lack of information and small scope can't satisfy those supply and demand.Idleyitemtrading platform uses digital means to surpass temporal and spatial restrictions, thus it is a good channel for getting rid of things. The aim is to localize trade: It created and established an idle goods exchange system on the WeChat Mini Program.This system is developed based on WeChat Mini Program, employing the Spring Boot framework to construct backend services, theuniappfrontend architecture to support multi-platform adaptation, and the MySQL database to accomplish data persistencestorage.Ithas a buyer seller separation role, it has idle item publishing, purchase request release module, order transaction module, rental transaction module, renewal application module and return management module. Administrator's backstage, whole procedure watch over and material check. I did sometestingson this, and it runs pretty good as such thing, local pplarewilling to share their unused resources which means there is very visible meaning to do this at a larger level.
**Key words:**Idle item trading;WeChat Mini Program;Spring Boot;lease management;uniapp
第一章 绪论
1.1 研究背景与意义
资源循环利用理念普及与消费升级趋势叠加,城市居民家庭闲置物品规模持续扩大。传统处置方式依赖线下跳蚤市场、社区公告栏或熟人介绍,交易范围局限于邻里之间,信息传播效率低下,匹配成功率难以保障。互联网技术发展为闲置物品流转提供了新的解决方案,各类线上交易平台相继涌现。然而现有平台多聚焦全国性市场,商品流通链条较长,物流成本较高,难以满足本地化即时交易需求。本地交易强调面对面交付、实物查看与即时沟通,对平台的地域属性与交互体验提出特殊要求。微信小程序凭借无需安装、即用即走、社交关系链打通等特性,成为本地化交易服务的理想载体。郭林盛等1基于微信云开发实现了校园二手交易平台,验证了小程序技术在交易场景中的适用性。刘珉彤等2对社区闲置交易系统的开发实施进行前景分析,指出本地化交易具有广阔市场空间。孙丽等3以校园二手交易小程序为案例,展示了平台构建与运营的关键要素。综合上述背景,开发一套面向本地用户的闲置物品交易平台,具有明确的现实需求与技术可行性。
该系统创建之后可以明显加快闲置物品流转的速度,把传统的线下交易随机性转变成线上撮合的确定性。用数字化手段对物品信息、用户需求和交易状态进行记录,减少人工沟通中由于信息遗漏或者理解偏差所造成的沟通问题。交易流程线上化使得订单状态可以被追踪、支付行为可以被记录,从而为纠纷处理提供依据。加入租赁功能可以增加物品价值变现的途径,用户无需一次性支付即可获得物品使用权,降低了使用成本。系统把买家和卖家的角色分开,不同的用户群体得到专门的操作界面,功能的集中度提高。管理员后台对用户的管理、物品的管理、订单的管理实行统一管理,内容审核保证平台信息合法合规,降低违规内容传播的风险。该平台对于推进本地资源循环利用、养成绿色消费习惯有着积极的意义,其设计和实现思路可以给同类社区交易系统的创建给予参照。
1.2 国内外研究现状
国内闲置物品交易领域研究起步于2010年前后,早期成果集中于PC端网站开发,技术选型多采用传统Web框架。移动互联网普及推动研究方向向移动端转移,微信小程序凭借轻量化特性成为近年研究热点。研究者关注的核心问题涵盖交易流程优化、信任机制构建、用户体验提升等方面,技术路径从单体架构向微服务架构演进,数据层逐渐强化智能推荐与用户画像能力。
郭林盛等4基于微信云开发技术设计校园二手交易平台,利用云函数与云数据库简化后端部署,实现物品发布、搜索、私信沟通等核心功能。该研究为小程序端开发提供了完整的实现方案,对本系统前端交互设计具有直接参考价值。刘珉彤等5聚焦社区闲置交易系统开发实施的前景,从市场需求、用户接受度、运营模式角度展开分析,强调本地化服务的优势。这一视角帮助本研究明确系统定位,将交易范围聚焦于本地用户群体。孙丽等6以校园二手交易小程序为案例,详细阐述了平台构建的流程与运营策略,涉及用户拉新、信用评价、交易安全保障等内容。其运营层面的思考对本系统管理员模块设计形成启发。张皓等7基于微服务架构开发高校闲置物品交易平台,将用户、商品、订单等模块拆分为独立服务,提升系统扩展性与维护性。该研究在系统架构层面的探索为本研究后续优化提供技术方向。高耀等8以"校易集市"为例实践基于Web的新型校园二手交易平台,重点解决交易流程标准化与信息真实性验证问题。
国内研究已覆盖闲置物品交易平台的多个技术方向与业务场景,但现有成果多针对校园场景,面向更广泛本地社区用户的系统设计相对较少。租赁交易、续租管理、归还流程等功能的系统性实现尚不充分。本系统在吸收现有研究基础上,引入完整的租赁业务流程,扩展交易模式,形成买卖与租赁并行的功能体系。
国外闲置物品交易研究起步较早,研究重点从早期电子商务模式分析逐渐转向共享经济与循环经济视角。近年来研究关注点延伸至平台生态构建、用户行为分析与可持续发展评估等维度,研究方法呈现跨学科融合趋势。
Donnelly等9从生态系统服务价值角度探讨多地点休闲活动的交换价值,将物品流转与资源效益相结合,为闲置物品交易的价值评估提供了经济学视角。这一研究思路启发本系统在租赁定价环节考虑物品使用频次与剩余价值之间的关系。Peng等10采用模糊德尔菲法评估四所高校的机构路径,其多指标综合评估方法对平台信用体系构建具有借鉴意义。Ge与Jianming11以闲鱼闲置交易平台为案例研究数字平台业务中的服务价值共创,分析平台与用户之间的价值互动机制。该研究强调平台在促进用户参与、建立信任关系中的中介作用,对本系统通知管理、交易反馈等功能的设计形成指导。Xu与Zhu12探讨国际贸易对环境与健康的影响,虽研究视角不同,但其对资源流转效益的分析框架可迁移至本地闲置物品交易场景,帮助理解物品再利用的多元价值。
国外研究从理论上讲具有很强的深度,但是针对本地化交易场景、结合微信小程序技术的实践成果很少。本系统把国外的研究中所提出的价值共创理念以及用户行为分析的方法应用到功能的设计当中,在租赁续租、归还管理这些环节表现出服务闭环的特点。
1.3 主要研究内容
本文围绕基于微信小程序的本地闲置物品交易平台展开,涵盖需求分析、系统设计、编码实现与测试验证全流程。系统面向买家、卖家、管理员三类用户,实现闲置物品发布、求购信息管理、订单购买与支付、租赁订单处理、续租申请、归还管理、商品咨询、收藏记录、通知查看、后台监控等功能。研究遵循软件工程规范,采用前后端分离架构,Spring Boot构建RESTful接口,uniapp前端架构支撑多端适配,MySQL数据库完成数据持久化存储,最终交付可运行的系统原型与设计文档。
第二章 相关技术介绍
2.1 Spring Boot框架
Spring Boot是目前Java企业级开发中使用最广的框架之一,它的设计思想就是简化Spring应用的初始搭建和开发过程。框架利用自动配置来减少XML配置文件的编写,内置Tomcat服务器使得应用可以直接运行,不需要另外部署环境。本系统后端采用Spring Boot进行业务逻辑处理以及接口的暴露工作,给前端和小程序端提供统一的数据服务入口。框架所具有的starter依赖管理可以很好地将数据持久化、安全控制、接口文档等各个模块进行整合,从而减少多模块集成的复杂程度。控制器层收到HTTP请求之后调用业务层的处理逻辑,使用实体类和数据库进行交互映射,最后把处理结果封装成JSON格式返回。Spring Boot的约定优于配置特性使代码结构更清晰,开发者可以把更多的精力放在业务规则上,而不会被框架配置所困扰。该框架给本系统创建了一个稳定的可靠的后端支撑环境。熊永平13对基于Spring Boot框架的应用开发技术进行了系统分析,验证了其在Web项目中的高效性与可维护性。
2.2 uniapp前端架构
uniapp作为跨平台前端开发框架,其核心价值在于实现一套代码多端运行的开发模式。框架通过统一的技术栈将微信小程序、App、H5等多种终端打包集成,框架在编译阶段根据目标平台完成代码转换与适配。在本系统前端构建过程中,uniapp负责用户界面渲染与交互事件处理,买家与卖家通过该框架生成的小程序端完成物品浏览、订单提交、租赁申请等操作。框架提供的组件库涵盖表单、导航、媒体等常用元素,满足交易场景下的信息录入与展示需求。页面路由管理机制支持多级页面跳转,用户操作路径保持流畅。古凌岚等14在前端开发著作中阐述了组件化开发思想,这一理念在uniapp框架中得到了充分体现。
2.3 MySQL数据库技术
MySQL属于关系型数据库管理系统,在Web应用当中占有重要的位置,凭借其轻量高效、稳定可靠、支持多平台等特性被普遍使用。数据库使用结构化查询语言进行数据操作,用表间关系来保持数据的一致性,事务处理保证业务操作的原子性。本系统中MySQL主要用来做用户信息、闲置物品、订单记录、租赁申请等主要数据的持久化存储。根据业务需求设计出多个数据表,并用外键约束来保证用户和订单之间、物品和收藏之间关系的正确性。数据库查询优化依靠索引设计来达成,对高频查询的字段创建索引以加快响应速度。事务机制保证了交易流程里订单创建、库存扣减、状态更新这些操作的完整性,防止出现数据不一致的情况。数据库支持多用户并发访问,用连接池技术提高系统的吞吐量。陈业斌15系统阐述了MySQL数据库的原理与应用方法,为数据库设计提供了理论指导。
2.4 前后端分离架构
前后端分离架构把前端展示和后端逻辑分成两个独立的开发单元,它们之间用API接口进行数据交互。前端主要完成用户界面渲染和交互事件处理,后端主要负责业务逻辑和数据持久化,解耦的架构模式提高了开发效率和系统的可维护性。本系统中,uniapp构建的前端应用与Spring Boot搭建的后端服务通过RESTful接口进行通信,接口统一返回JSON格式数据,前端完成数据解析后动态更新视图。前后端统一使用相同的请求响应格式,后端接口返回结构化的JSON数据,前端完成数据解析和展示。此种模式下前后端团队可以同时开发,前端更换技术栈的时候不需要修改后端逻辑。接口文档采用标准格式描述,降低沟通成本。部署层面前后端可以独立运行,前端静态资源托管在Nginx服务器上,后端服务部署在应用服务器上,两者之间用跨域配置来解决安全访问的问题。该架构使系统各个层次的职责清楚,符合现代Web开发主流做法。王慧芳等16在Java EE框架开发课程研究中强调了项目驱动下的分层架构设计理念。
第三章 系统分析
3.1 功能需求分析
3.1.1 买家用户功能需求
买家用户可在平台浏览闲置物品、查看求购信息,按需完成商品购买与租赁交易。求购信息发布帮助买家表达购买意愿,等待卖家主动联系。商品咨询功能支持买卖双方在线沟通,交易资讯与公告提供平台动态参考。收藏记录便于用户追踪关注物品,续租申请与租赁归还功能保障租赁业务的完整闭环。买家用户功能需求用例图如图3-1所示。

图3-1买家用户功能需求用例图
3.1.2 卖家用户功能需求
卖家用户通过平台发布闲置物品信息,管理已发布物品的交易状态。交易订单与租赁订单列表展示订单详情,续租管理与租赁归还管理处理买家发起的申请。通知查看功能接收平台推送的订单变更与审核消息。卖家用户功能需求用例图如图3-2所示。
图3-2卖家用户功能需求用例图
3.1.3 管理员用户功能需求
管理员用户拥有系统最高权限,后台首页展示关键数据统计。系统用户管理负责买家与卖家账户审核,求购信息与闲置物品管理审核用户发布内容。交易订单与租赁订单管理监控交易异常情况,续租申请与租赁归还管理处理争议申请。系统管理配置轮播图、资讯内容,网站公告管理发布平台通知。管理员功能需求用例图如图3-3所示。

图3-3管理员功能需求用例图
3.2 可行性分析
3.2.1 技术可行性
Spring Boot框架成熟稳定,社区活跃,遇到技术问题可以快速找到解决办法。微信小程序开发工具集成了调试、预览、上传等全部的功能,降低了前端开发的难度。MySQL数据库和Java生态兼容性好,数据持久化操作可以使用ORM框架简化编码。各个技术组件版本没有技术漏洞,整个架构没有技术盲区。开发环境为标准配置,不需要特殊的硬件支持,普通的个人计算机就可以完成开发和测试。技术选型符合目前主流实践,在开发过程中不会出现高风险技术实验。
3.2.2 经济可行性
系统开发所需软件工具均为免费开源或提供社区版本,包括IntelliJ IDEA开发环境、MySQL数据库、微信开发者工具等,无需额外采购商业软件。服务器部署可选择云服务商轻量应用服务器,初期配置满足测试与小型用户规模需求,成本可控。系统运行后日常维护工作量较小,仅需定期备份数据与监控日志。整体投入集中于开发阶段人力成本,无持续高昂支出,具备良好的投入产出预期。
3.2.3 操作可行性
系统面向三类用户群体,操作界面按角色定制,买家与卖家在小程序端完成核心交易操作,管理员在后台进行数据管理。界面布局遵循用户习惯,关键操作步骤提示清晰,用户无需专业培训即可上手。移动端操作流程简短,物品发布、订单生成等高频操作步骤控制在三步以内。后台管理采用表单式操作,管理员通过列表页完成审核、删除等批量操作。系统操作复杂度符合普通用户认知水平。
第四章 系统设计
4.1 系统架构设计
系统采用模块化分层架构,将用户界面、业务逻辑与数据存储三个维度解耦。用户通过微信小程序端与Web管理后台完成交互操作,前端发送的HTTP请求经Spring Boot控制器层接收后分发至对应服务组件。服务层执行业务规则校验与数据计算,调用数据访问对象完成持久化操作,MySQL数据库负责用户信息、物品记录、订单数据的存储与管理。各层通过标准化接口通信,上层不依赖下层具体实现,替换数据库或前端技术栈时无需改动业务逻辑。这种分层设计保障了系统响应效率与数据一致性,为后续功能扩展预留空间。整体架构遵循高内聚低耦合原则,各层通过标准化接口通信,前端更换技术栈不影响后端业务逻辑,数据库迁移时只需调整持久层配置17。系统架构图如图4-1所示。
图4-1系统架构图
4.2 系统结构功能设计
统围绕三类用户角色构建功能模块,形成覆盖交易全流程的功能体系。买家用户功能包括闲置物品查看、求购信息发布、订单购买与支付、租赁订单管理、续租申请、租赁归还、商品咨询、收藏记录、交易资讯与公告浏览。卖家用户功能涵盖闲置物品发布、交易订单管理、租赁订单管理、续租管理与租赁归还管理、通知查看。管理员用户功能包含后台首页数据统计、系统用户管理、求购信息与闲置物品管理、交易与租赁订单监控、续租与归还申请管理、系统管理、网站公告管理。该系统功能结构如图4-2所示。
图4-2系统功能结构图
4.3 系统流程设计
4.3.1 闲置物品发布流程设计
卖家发布闲置物品时填写物品基本信息、交易方式与定价,系统将物品状态设置为待审核。管理员审核通过后物品在前端展示,审核不通过则返回修改建议。物品发布流程图如图4-3所示。

图4-3闲置物品发布流程图
4.3.2 订单购买交易流程设计
买家选择物品后提交购买订单,系统生成订单记录并等待支付。支付成功后卖家收到通知进行发货处理,买家确认收货后订单状态变更为已完成。交易购买流程图如图4-4所示。
图4-4订单购买交易流程图
4.3.3 租赁订单流程设计
买家提交租赁订单后系统计算租赁费用,支付成功后卖家确认出租。租赁到期前系统推送提醒,买家可申请续租或提交归还。租赁订单流程图如图4-5所示。

图4-5租赁订单流程图
4.3.4 续租申请流程设计
租赁订单到期前买家发起续租申请,填写续租天数与续租费用。卖家审核通过后系统更新租赁到期时间,买家支付续租费用完成续租。续租申请流程图如图4-6所示。
图4-6续租申请流程图
4.3.5 租赁归还流程设计
买家租赁使用完毕后提交归还申请,填写归还备注与物品状态。卖家确认归还后系统关闭租赁订单,根据物品损耗情况处理押金退还。租赁归还流程图如图4-7所示。
图4-7租赁归还流程图
4.4 数据库设计
4.4.1 E-R图设计
概念模型设计的关键在于理清用户、物品与订单三者之间的动态关联,将现实世界的交易规则转化为信息世界的实体关系结构。系统涉及买家、卖家两类用户角色,二者在账户层面统一管理,业务层面通过用户类型字段区分。闲置物品与求购信息构成供需两端的基础数据,订单作为交易行为的结果实体记录买卖双方的权利义务关系。租赁业务引入租赁订单、续租申请、租赁归还三个实体,形成从租用申请到物品归还的完整业务闭环。实体之间联系涵盖用户与物品的一对多关系、订单与用户的多对多关系、租赁订单与续租申请的一对一关系。E-R图作为概念模型的可视化工具,将实体、属性、联系清晰呈现,为后续逻辑模型设计提供依据18。
求购信息实体主要包括求购物品、期望价格、发布日期等属性。求购信息实体属性图如图4-8所示。
图4-8求购信息实体属性图
闲置物品实体主要包括物品编号、物品名称、物品类型等属性。闲置物品实体属性图如图4-9所示。
图4-9闲置物品实体属性图
租赁订单实体主要包括订单编号、物品名称、租赁价格等属性。租赁订单实体属性图如图4-10所示。
图4-10租赁订单实体属性图
交易订单实体主要包括订单编号、物品名称、购买数量等属性。交易订单实体属性图如图4-11所示。
图4-11交易订单实体属性图
续租申请实体主要包括订单编号、续租天数、审核状态等属性。续租申请实体属性图如图4-12所示。
图4-12续租申请实体属性图
租赁归还实体主要包括订单编号、归还时间、归还备注等属性。租赁归还实体属性图如图4-13所示。
图4-13租赁归还实体属性图
普通用户实体主要包括用户姓名、用户手机、用户积分等属性。普通用户实体属性图如图4-14所示。
图4-14普通用户实体属性图
卖家用户实体主要包括卖家姓名、卖家手机、实名认证等属性。卖家用户实体属性图如图4-15所示。
图4-15卖家用户实体属性图
用户账户实体主要包括用户名、密码、用户组等属性。用户账户实体属性图如图4-16所示。
图4-16用户账户实体属性图
文章实体主要包括标题、文章分类、正文等属性。文章实体属性图如图4-17所示。
图4-17文章实体属性图
全局E-R模型如图4-18所示。
图4-18系统E-R图
4.4.2 数据库表设计
求购信息表主要用于存储买家用户发布的求购需求。主要包括求购物品、期望价格、发布日期、物品描述等字段。如表4-1所示。
表4-1求购信息表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | buying_information_id | int | 11 | 是 | 是 | 求购信息ID |
| 2 | buy_items | varchar | 64 | 否 | 否 | 求购物品 |
| 3 | expected_price | double | - | 否 | 否 | 期望价格 |
| 4 | release_date | date | - | 否 | 否 | 发布日期 |
| 5 | item_description | text | 65535 | 否 | 否 | 物品描述 |
闲置物品表主要是用来记录卖家用户发布的物品信息。主要包括物品编号、物品名称、物品类型、交易方式等字段。如表4-2所示。
表4-2闲置物品表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | user_idle_items_id | int | 11 | 是 | 是 | 闲置物品ID |
| 2 | item_number | varchar | 64 | 否 | 否 | 物品编号 |
| 3 | item_name | varchar | 64 | 否 | 否 | 物品名称 |
| 4 | item_type | varchar | 64 | 否 | 否 | 物品类型 |
| 5 | transaction_mode | varchar | 64 | 否 | 否 | 交易方式 |
租赁订单表主要是用来存储用户租赁交易的详细信息。主要包括订单编号、物品名称、租赁价格、租赁天数等字段。如表4-3所示。
表4-3租赁订单表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | lease_order_id | int | 11 | 是 | 是 | 租赁订单ID |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 3 | item_name | varchar | 64 | 否 | 否 | 物品名称 |
| 4 | lease_price | double | - | 否 | 否 | 租赁价格 |
| 5 | rental_days | double | - | 否 | 否 | 租赁天数 |
交易订单表主要是用来记录物品购买交易的完整信息。主要包括订单编号、物品名称、购买数量、订单合计等字段。如表4-4所示。
表4-4交易订单表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | trade_order_id | int | 11 | 是 | 是 | 交易订单ID |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 3 | item_name | varchar | 64 | 否 | 否 | 物品名称 |
| 4 | quantity_purchased | double | - | 否 | 否 | 购买数量 |
| 5 | order_total | varchar | 64 | 否 | 否 | 订单合计 |
续租申请表主要是用来处理租赁订单的延期申请。主要包括订单编号、续租天数、审核状态、续租费用等字段。如表4-5所示。
表4-5续租申请表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | lease_renewal_application_id | int | 11 | 是 | 是 | 续租申请ID |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 3 | renewal_days | double | - | 否 | 否 | 续租天数 |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | renewal_fee | varchar | 64 | 否 | 否 | 续租费用 |
租赁归还表主要是用来记录租赁物品的归还过程。主要包括订单编号、归还时间、归还备注等字段。如表4-6所示。
表4-6租赁归还表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | lease_return_id | int | 11 | 是 | 是 | 租赁归还ID |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 3 | return_time | datetime | - | 否 | 否 | 归还时间 |
| 4 | return_notes | text | 65535 | 否 | 否 | 归还备注 |
普通用户表主要是用来存储平台买家用户的个人信息。主要包括用户姓名、用户手机、用户积分、实名认证等字段。如表4-7所示。
表4-7普通用户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | regular_user_id | int | 11 | 是 | 是 | 普通用户ID |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | users_mobile_phone | varchar | 16 | 是 | 是 | 用户手机 |
| 4 | user_points | double | - | 否 | 否 | 用户积分 |
卖家用户表主要是用来存储平台卖家用户的详细信息。主要包括卖家姓名、卖家手机、实名认证等字段。如表4-8所示。
表4-8卖家用户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | seller_user_id | int | 11 | 是 | 是 | 卖家用户ID |
| 2 | seller_name | varchar | 64 | 否 | 否 | 卖家姓名 |
| 3 | sellers_mobile_phone | varchar | 16 | 否 | 否 | 卖家手机 |
| 4 | real_name_authentication | varchar | 255 | 否 | 否 | 实名认证 |
用户账户表主要是用来保存系统用户的登录凭证与账户状态。主要包括用户名、密码、用户组、手机号码等字段。如表4-9所示。
表4-9用户账户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | user_id | int | 11 | 是 | 是 | 用户ID |
| 2 | username | varchar | 16 | 是 | 否 | 用户名 |
| 3 | password | varchar | 64 | 是 | 否 | 密码 |
| 4 | user_group | varchar | 32 | 否 | 否 | 用户组 |
文章表主要是用来存储平台发布的资讯与帮助文档。主要包括标题、文章分类、正文、封面图等字段。如表4-10所示。
表4-10文章表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | article_id | mediumint | 7 | 是 | 是 | 文章ID |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | content | longtext | 4294967295 | 否 | 否 | 正文 |
1
第五章 系统实现
5.1 买家用户功能实现
5.1.1 求购信息发布功能实现
买家用户通过前端表单填写求购物品名称、期望价格及描述等信息后,系统将数据封装为请求发送至后端。BuyingInformationController中的add方法接收请求,通过readBody方法解析参数并构建BuyingInformation实体对象,随后调用addEntity方法执行数据库插入操作,完成求购信息的发布。求购信息发布界面如图5-1所示。

图5-1求购信息发布界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
BuyingInformationbuying_information= newBuyingInformation();
buying_information.setBuy_items(String.valueOf(paramMap.get("buy_items")));
this.addEntity(buying_information);
returnsuccess(1);
}
5.1.2 闲置物品查看功能实现
买家用户进入闲置物品列表页,系统通过UserIdleItemsController的get_list方法处理请求。该方法调用readQuery和readConfig解析前端传递的分页及筛选条件,随后调用service的select方法执行数据查询,并将查询结果封装为包含列表数据与总记录数的Map对象返回前端,供用户浏览闲置物品信息。闲置物品查看界面如图5-2所示。

图5-2闲置物品查看界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.1.3 订单购买交易功能实现
买家用户在物品详情页点击购买,前端将订单信息提交至TradeOrderController。该控制器下的add方法负责处理,它解析请求参数构建TradeOrder实体,并在插入数据前执行库存检查SQL,若物品数量不足则删除无效订单并返回错误提示,数量充足则完成订单创建并更新库存。订单购买交易界面如图5-3所示。

图5-3订单购买交易界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
TradeOrdertrade_order= newTradeOrder();
this.addEntity(trade_order);
Stringsql= "SELECTMAX(trade_order_id) AS max FROMtrade_order";
Integer max =service.selectBaseCount(sql);
sql= ("UPDATEuser_idle_items...").replaceAll("<", "<");
service.updateBaseSql(sql);
returnsuccess(1);
}
5.1.4 订单支付功能实现
用户确认订单后需完成支付,前端调用TradeOrderController的update_pay_state方法。该方法接收订单ID与新支付状态作为参数,首先校验状态合法性,然后根据ID查询对应订单记录,若记录存在则更新其pay_state字段,并调用setEntity方法保存变更,最终返回支付成功的提示信息。订单支付界面如图5-4所示。

图5-4订单支付界面
核心代码实现如下:
@GetMapping("/update_pay_state")
@Transactional
public StringupdatePayState(Long id, StringnewState) throwsIOException{
Map<String,String>queryMap= new HashMap<>();
queryMap.put("id",String.valueOf(id));
TradeOrdertrade_order=service.findOne(queryMap);
trade_order.setPay_state(newState);
this.setEntity(queryMap, new HashMap<>(),trade_order);
return "支付成功";
}
5.1.5 商品咨询功能实现
买家用户通过商品咨询功能与卖家沟通,此功能由CustomerChatLogController和CustomerChatGroupController协同实现。发送消息时,CustomerChatLogController的add方法接收聊天内容,将其封装为CustomerChatLog实体并保存。同时,系统通过CustomerChatGroupController维护群组信息,记录会话成员及未读状态。商品咨询界面如图5-5所示。

图5-5商品咨询界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
CustomerChatLogcustomer_chat_log= newCustomerChatLog();
customer_chat_log.setCustomer_chat_id(String.valueOf(paramMap.get("customer_chat_id")));
customer_chat_log.setContent(String.valueOf(paramMap.get("content")));
this.addEntity(customer_chat_log);
returnsuccess(1);
}
5.1.6 订单租赁交易功能实现
买家用户发起租赁请求,LeaseOrderController的add方法处理此操作。它接收租赁订单信息,构建LeaseOrder实体插入数据库后,立即执行积分资格与物品库存两项校验,通过原生SQL查询验证买家积分是否达到要求、物品数量是否充足,任一校验失败则回滚订单数据并返回错误提示。订单租赁交易界面如图5-6所示。

图5-6订单租赁交易界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
LeaseOrderlease_order= newLeaseOrder();
this.addEntity(lease_order);
Stringsql= "SELECTMAX(lease_order_id) AS max FROMlease_order";
Integer max =service.selectBaseCount(sql);
sql= ("SELECTcount(*) as count ...").replaceAll("<", "<");
Integer count =service.selectBaseCount(sql);
if (count > 0) { return error(30000, "积分未达到租赁资格"); }
returnsuccess(1);
}
5.1.7 交易资讯浏览功能实现
买家用户可在平台浏览文章资讯,ArticleController的get_list方法负责提供资讯列表数据。该方法解析前端查询条件,调用service的select方法执行数据检索,将查询结果集合放入Map后返回,前端页面即可渲染出最新的交易资讯、使用技巧等内容供用户阅读。交易资讯浏览界面如图5-7所示。

图5-7交易资讯浏览界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.1.8 网站公告功能实现
买家用户登录后可查看平台发布的公告,NoticeController的get_list方法实现该功能。它解析前端请求参数,从公告表中获取符合条件的数据列表及总数,以Map形式封装后返回。前端根据返回数据在公告栏或单独页面展示公告标题、内容及发布日期等信息。网站公告界面如图5-8所示。

图5-8网站公告界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.1.9 收藏记录功能实现
用户点击收藏时,前端请求被CollectController处理。该控制器继承自BaseController,其父类已封装add方法,用于接收收藏记录实体并持久化。用户可在个人中心查看所有收藏,系统通过CollectController的get_list方法查询该用户的所有收藏记录,并关联物品信息一并返回。收藏记录界面如图5-9所示。

图5-9收藏记录界面
核心代码实现如下:
@RestController
@RequestMapping("collect")
public classCollectControllerextendsBaseController<Collect,CollectService> {
@Autowired
publicCollectController(CollectServiceservice) {
setService(service);
}
}
5.1.10 续租申请功能实现
买家用户需续租物品时,LeaseRenewalApplicationController的add方法接收续租申请。它解析续租天数、费用等信息,构建LeaseRenewalApplication实体并保存,申请状态默认为"未审核"。后续管理员审核通过后,系统将更新订单的租赁期限并处理相关费用。续租申请界面如图5-10所示。

图5-10续租申请界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
LeaseRenewalApplicationlease_renewal_application= newLeaseRenewalApplication();
lease_renewal_application.setOrder_number(String.valueOf(paramMap.get("order_number")));
lease_renewal_application.setRenewal_days(Double.valueOf(String.valueOf(paramMap.get("renewal_days"))));
this.addEntity(lease_renewal_application);
returnsuccess(1);
}
5.1.11 租赁归还功能实现
租赁期满后,买家用户通过LeaseReturnController的add方法提交归还申请。该方法接收订单编号、物品信息及归还备注,构建LeaseReturn实体并保存归还记录。系统同时会更新原租赁订单的状态,并可能根据归还情况处理押金或积分变更。租赁归还界面如图5-11所示。

图5-11租赁归还界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
LeaseReturnlease_return= newLeaseReturn();
lease_return.setOrder_number(String.valueOf(paramMap.get("order_number")));
lease_return.setReturn_notes(String.valueOf(paramMap.get("return_notes")));
this.addEntity(lease_return);
returnsuccess(1);
}
5.2 卖家用户功能实现
5.2.1 闲置物品发布功能实现
卖家用户登录后可通过表单发布闲置物品,UserIdleItemsController的add方法处理该请求。该方法从请求体中读取物品信息,包括名称、类型、租赁价格、交易模式等字段,构建UserIdleItems实体对象,最终调用addEntity方法将物品信息写入数据库,完成发布操作。闲置物品发布界面如图5-12所示。

图5-12闲置物品发布界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
UserIdleItemsuser_idle_items= newUserIdleItems();
user_idle_items.setItem_number(String.valueOf(paramMap.get("item_number")));
user_idle_items.setItem_name(String.valueOf(paramMap.get("item_name")));
user_idle_items.setItem_pricing(Double.valueOf(String.valueOf(paramMap.get("item_pricing"))));
this.addEntity(user_idle_items);
returnsuccess(1);
}
5.2.2 交易订单功能实现
卖家用户可在个人中心查看其商品的交易订单,TradeOrderController的get_list方法负责提供数据。系统根据卖家ID作为查询条件,筛选出其物品对应的所有交易订单,包括购买数量、总金额、支付状态等信息,并将结果列表与总数封装后返回前端展示。交易订单界面如图5-13所示。

图5-13交易订单界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.2.3 租赁订单功能实现
卖家用户通过LeaseOrderController的get_list方法管理租赁订单,该方法解析查询条件,筛选出归属于当前卖家的所有租赁订单记录。订单信息包括租户信息、租赁天数、租赁费用及订单状态,系统将这些数据返回前端页面,方便卖家查看和处理用户的租赁请求。租赁订单界面如图5-14所示。

图5-14租赁订单界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.2.4 续租管理功能实现
卖家用户对买家提交的续租申请进行审核,LeaseRenewalApplicationController的update_examine_state方法实现此功能。它接收续租申请ID和新审核状态,校验状态合法性后查询对应申请记录,更新其examine_state字段。若审核通过,系统将联动修改原租赁订单的租赁期限和费用。续租管理界面如图5-15所示。

图5-15续租管理界面
核心代码实现如下:
@GetMapping("/update_examine_state")
@Transactional
public StringupdateExamineState(Long id, StringnewState) throwsIOException{
Map<String,String>queryMap= new HashMap<>();
queryMap.put("id",String.valueOf(id));
LeaseRenewalApplicationlease_renewal_application=service.findOne(queryMap);
lease_renewal_application.setExamine_state(newState);
this.setEntity(queryMap, new HashMap<>(),lease_renewal_application);
return "审核成功";
}
5.2.5 租赁归还管理功能实现
卖家用户查看买家提交的归还记录,LeaseReturnController的get_list方法提供数据查询。该方法根据卖家信息筛选出所有归还申请,并支持按订单号、物品名称等条件进行搜索,将查询结果返回前端。卖家可据此确认物品状态,完成归还流程。租赁归还管理界面如图5-16所示。

图5-16租赁归还管理界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.2.6 通知查看功能实现
系统产生订单状态变更、审核结果等重要消息时,会通过MessageInformController的add方法记录通知,卖家用户登录后调用get_list方法获取自己的未读通知列表。前端页面根据返回数据展示通知标题、内容及发送时间,卖家可点击查看详情。通知查看界面如图5-17所示。

图5-17通知查看界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String,Object>paramMap=service.readBody(request.getReader());
this.addMap(paramMap);
returnsuccess(1);
}
5.3 管理员功能实现
5.3.1 后台首页功能实现
管理员登录后进入后台首页,系统通过UserController的state方法验证登录态并返回管理员信息。首页聚合展示平台核心数据概览,如用户总数、物品总数、订单数量等,这些数据由各个业务Controller的统计方法提供,并最终汇总至前台展示。后台首页界面如图5-18所示。
图5-18后台首页界面
核心代码实现如下:
@GetMapping("state")
public Map<String, Object>state(HttpServletRequestrequest) {
String token =request.getHeader("x-auth-token");
IntegeruserId=tokenGetUserId(token);
Map<String,String> query = new HashMap<>();
query.put("user_id",String.valueOf(userId));
ListresultList=service.selectBaseList(service.select(query, config));
return success(ret);
}
5.3.2 系统用户功能实现
管理员对平台用户进行管理,UserController和UserGroupController共同支持此功能。管理员通过UserController的get_list方法查询所有用户,并可对用户状态、所属用户组进行修改。UserGroupController负责管理用户组权限信息,通过其增删改查接口维护用户角色。系统用户界面如图5-19所示。
图5-19系统用户界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.3.3 求购信息管理功能实现
管理员可对用户发布的求购信息进行审核与管理,BuyingInformationController的get_list方法用于查询求购信息列表,管理员可执行删除操作,并可通过update_examine_state方法修改审核状态,确保信息合规。审核通过的求购信息才会在前端展示。求购信息管理界面如图5-20所示。
图5-20求购信息管理界面
核心代码实现如下:
@GetMapping("/update_examine_state")
@Transactional
public StringupdateExamineState(Long id, StringnewState) throwsIOException{
Map<String,String>queryMap= new HashMap<>();
queryMap.put("id",String.valueOf(id));
BuyingInformationbuying_information=service.findOne(queryMap);
buying_information.setExamine_state(newState);
this.setEntity(queryMap, new HashMap<>(),buying_information);
return "审核成功";
}
5.3.4 闲置物品管理功能实现
管理员对平台上发布的闲置物品进行统一监管,UserIdleItemsController的get_list方法提供所有物品的查询列表,支持按物品名称、发布用户、审核状态等条件筛选。管理员可对违规物品进行删除,也可通过update_examine_state方法调整其审核状态。闲置物品管理界面如图5-21所示。
图5-21闲置物品管理界面
核心代码实现如下:
@GetMapping("/update_examine_state")
@Transactional
public StringupdateExamineState(Long id, StringnewState) throwsIOException{
Map<String,String>queryMap= new HashMap<>();
queryMap.put("id",String.valueOf(id));
UserIdleItemsuser_idle_items=service.findOne(queryMap);
user_idle_items.setExamine_state(newState);
this.setEntity(queryMap, new HashMap<>(),user_idle_items);
return "审核成功";
}
5.3.5 交易订单管理功能实现
管理员查看平台所有交易订单,TradeOrderController的get_list方法提供订单列表查询,支持按订单状态、支付状态、下单时间等条件检索。管理员可查看订单详情,并在必要时执行订单状态更新或异常处理操作。交易订单管理界面如图5-22所示。
图5-22交易订单管理界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.3.6 租赁订单管理功能实现
管理员对平台租赁订单进行监控,LeaseOrderController的get_list方法提供所有租赁订单的查询功能。管理员可根据订单号、物品名称或用户信息筛选订单,查看订单状态及支付详情,并可手动调整异常订单的状态。租赁订单管理界面如图5-23所示。
图5-23租赁订单管理界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.3.7 续租申请管理功能实现
管理员审核买家提交的续租申请,LeaseRenewalApplicationController的update_examine_state方法实现该功能。管理员传入申请ID和审核结果,方法校验状态后更新申请记录的examine_state字段。审核通过后,系统将自动延长原租赁订单的租赁期限并扣除相应费用。续租申请管理界面如图5-24所示。
图5-24续租申请管理界面
核心代码实现如下:
@GetMapping("/update_examine_state")
@Transactional
public StringupdateExamineState(Long id, StringnewState) throwsIOException{
Map<String,String>queryMap= new HashMap<>();
queryMap.put("id",String.valueOf(id));
LeaseRenewalApplicationlease_renewal_application=service.findOne(queryMap);
lease_renewal_application.setExamine_state(newState);
this.setEntity(queryMap, new HashMap<>(),lease_renewal_application);
return "审核成功";
}
5.3.8 租赁归还管理功能实现
管理员查看所有租赁归还记录,LeaseReturnController的get_list方法提供数据。系统支持按订单编号、物品名称等条件查询归还申请,管理员可确认归还状态,并据此处理后续押金返还或物品下架等业务。租赁归还管理界面如图5-25所示。
图5-25租赁归还管理界面
核心代码实现如下:
@RequestMapping("/get_list")
public Map<String, Object>getList(HttpServletRequestrequest) {
Map<String, String> query =service.readQuery(request);
Map<String, String> config =service.readConfig(request);
Listlist=this.service.selectBaseList(this.service.select(query, config));
map.put("list", list);
map.put("count",this.service.selectBaseCount(this.service.count(query, config)));
return success(map);
}
5.3.9 系统管理功能实现
管理员通过系统管理模块进行基础配置,包括轮播图管理、网站公告管理及邮箱验证码配置等。SlidesController管理轮播图数据,提供增删改查接口;CodeTokenController配置邮箱验证码发送逻辑。系统管理界面如图5-26所示。
图5-26系统管理界面
核心代码实现如下:
@GetMapping("send_email")
public Map<String, Object>sendEmail(String email) {
int code = (int) (Math.floor(Math.random() * 900000) + 100000);
MimeMessagemimeMessage=mailSender.createMimeMessage();
MimeMessageHelperhelper = newMimeMessageHelper(mimeMessage, true);
helper.setTo(email);
helper.setText("<h1>验证码为:" + code + "</h1>", true);
mailSender.send(mimeMessage);
return result;
}
5.3.10 网站公告管理功能实现
管理员对网站公告进行发布与维护,NoticeController的add、set、del方法分别对应公告的新增、修改与删除操作。管理员通过get_list方法查询公告列表,可设置公告标题、内容及生效时间,发布的公告将展示在买家与卖家用户的公告栏。网站公告管理界面如图5-27所示。
图5-27网站公告管理界面
核心代码实现如下:
@PostMapping("/add")
@Transactional
public Map<String, Object>add(HttpServletRequestrequest) throwsIOException{
Map<String, Object>addMap=service.readBody(request.getReader());
validateParameters(addMap);
removeUnnecessaryFields(addMap);
this.service.insert(addMap);
returnsuccess(1);
}
第六章 系统测试
6.1 测试目的
系统测试旨在验证系统功能是否满足需求规格说明,确保业务流程正确性与数据一致性。测试覆盖买家、卖家、管理员三类角色的核心操作场景,通过设计测试用例模拟用户真实使用行为,检验各模块交互逻辑是否符合预期19。测试过程重点关注订单状态流转、支付回调处理、租赁续租流程等关键业务路径,发现并修复边界条件处理缺陷,提升系统稳定性。
6.2 测试方法
系统测试采用黑盒测试方法,关注输入输出与功能表现,不涉及内部代码逻辑。功能测试覆盖各模块核心操作,验证用户操作与系统响应的一致性。测试数据采用模拟用户信息与物品数据,测试环境部署于本地开发服务器,数据库使用测试库避免影响正式数据。测试过程记录每个用例的执行结果,对失败用例进行缺陷分析后修复,回归测试确保修复不引入新问题。沈备军等20在软件工程著作中强调了测试在保障软件质量中的重要作用。
6.3 测试内容
闲置物品发布功能测试如表6-1所示。
表6-1闲置物品发布功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 物品信息完整提交 | 填写所有必填项后提交 | 系统提示提交成功,状态待审核 | 符合预期 |
| 必填项缺失提交 | 未填写物品名称提交 | 系统提示必填项未填 | 符合预期 |
| 违规词汇检测 | 物品描述包含敏感词 | 系统拦截并提示修改 | 符合预期 |
| 图片上传校验 | 上传超过大小限制图片 | 系统提示图片过大 | 符合预期 |
订单购买交易功能测试如表6-2所示。
表6-2订单购买交易功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 正常下单流程 | 选择物品提交订单 | 生成待支付订单 | 符合预期 |
| 库存不足下单 | 购买数量超过库存 | 系统提示库存不足 | 符合预期 |
| 重复下单 | 同一物品多次提交 | 每次生成独立订单 | 符合预期 |
| 订单取消 | 未支付订单取消操作 | 订单状态变为已取消 | 符合预期 |
租赁订单功能测试如表6-3所示。
表6-3租赁订单功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 租赁订单生成 | 选择租赁天数提交 | 生成租赁订单待支付 | 符合预期 |
| 租赁费用计算 | 修改租赁天数 | 费用实时更新 | 符合预期 |
| 卖家确认出租 | 支付后卖家确认 | 订单状态变更为租赁中 | 符合预期 |
| 租赁到期提醒 | 到期前系统检查 | 推送归还提醒通知 | 符合预期 |
续租申请功能测试如表6-4所示。
表6-4续租申请功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 发起续租申请 | 选择续租天数提交 | 生成续租申请待审核 | 符合预期 |
| 卖家审核通过 | 卖家确认续租 | 生成续租支付单 | 符合预期 |
| 续租支付完成 | 完成续租费用支付 | 租赁到期日延长 | 符合预期 |
| 卖家审核拒绝 | 卖家拒绝续租 | 申请状态变为已拒绝 | 符合预期 |
租赁归还功能测试如表6-5所示。
表6-5租赁归还功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 提交归还申请 | 填写归还备注提交 | 生成归还申请 | 符合预期 |
| 卖家确认归还 | 卖家确认申请 | 订单状态变更为已完成 | 符合预期 |
| 物品损坏处理 | 卖家标记损坏情况 | 系统记录损坏信息 | 符合预期 |
| 超期归还处理 | 超过租期提交归还 | 系统计算超期费用 | 符合预期 |
总结
城市居民闲置物品数量增加和绿色消费意识的增强同时存在时,本地化二手交易平台便产生了,有效地降低了物品流转的成本。本文就本地闲置物品交易场景设计了微信小程序平台,实现了线下交易中信息不对称、交易范围小等问题,达到了预期的设计目的。
系统开发遵循软件工程规范,从需求分析入手明确买家、卖家、管理员三类用户的功能诉求。系统设计采用前后端分离架构,Spring Boot构建RESTful接口,uniapp前端架构支撑多端适配,MySQL数据库完成数据持久化存储,微信小程序提供用户端服务。核心功能涵盖闲置物品发布、求购信息管理、订单购买与支付、租赁订单处理、续租申请、归还管理、商品咨询、收藏记录、通知查看、后台监控等模块,形成完整的交易闭环。测试阶段通过功能测试用例验证各模块运行稳定性,交易流程通畅,租赁与续租业务的引入丰富了物品流转方式。
系统目前还存在着一些功能上的不足。物品推荐只用简单的规则排序,没有用用户行为数据来实现智能推荐算法。在线沟通功能只能使用文字和图片,语音和视频沟通的功能还没有实现。租赁押金的管理是由卖家自行协商决定的,没有平台提供的统一押金托管方式。
后续改进方向有加入协同过滤推荐算法提高物品匹配的准确性,扩充即时通讯功能支持语音交流,对接第三方支付托管系统实现押金平台化管理。该系统在社区邻里交易、高校校园跳蚤市场等场景有推广应用的价值。
🎁 粉丝福利
> 感谢你看到最后!作为粉丝福利,我整理了以下资源:
> | 资源名称 | 说明 | > | 项目完整源码 | 前端 + 后端 + 数据库 |
> | 毕业论文参考 | 1.5万字完整论文 |
> | 答辩PPT模板 | 可直接修改使用 |
> | 项目演示视频 | 功能效果展示 |
> 📬 **获取方式:关注本博主 + 三连(点赞/收藏/评论)