摘 要
本文介绍了基于微信小程序的生鲜优选系统的设计与实现。该系统旨在为用户提供便捷、高效的生鲜购买体验,同时满足生鲜供应商的销售需求。系统采用Spring Boot框架作为后端开发技术,微信小程序作为前端开发平台,实现了商品展示、购物车管理、订单处理、用户评价等一系列功能。
在系统设计过程中,系统充分考虑了生鲜电商的特性和用户需求,通过合理的架构设计和功能模块划分,确保了系统的稳定性和可扩展性。后端方面,Spring Boot框架的引入使得开发过程更加高效,同时提供了丰富的内置功能,如自动配置、健康检查等,提升了系统的稳定性和可维护性。数据库设计方面,我们采用了MySQL数据库,确保了数据的稳定性和安全性。
前端微信小程序的设计则注重用户体验,通过简洁明了的界面布局和流畅的操作流程,用户可以轻松浏览商品、下单购买并实时跟踪物流信息。此外,系统还提供了用户评价和在线客服等功能,进一步提升了用户的购物体验和满意度。
在实现过程中,我们遇到了一些技术挑战,但通过团队协作和技术攻关,最终成功地完成了系统的开发和测试工作。目前,该系统已经上线运行,并获得了良好的用户反馈。
关键字:微信小程序;生鲜优选;Spring Boot;系统设计;用户体验
Abstract
This paper introduces the design and implementation of fresh optimization system based on WeChat applet. The system aims to provide users with convenient and efficient fresh purchase experience, while meeting the sales needs of fresh suppliers. The system adopts Spring Boot framework as the back-end development technology, and WeChat applet as the front-end development platform, realizing a series of functions such as commodity display, shopping cart management, order processing, user evaluation and so on.
In the process of system design, the system fully considers the characteristics and user needs of fresh electricity business, through the reasonable architecture design and functional module division, to ensure the stability and scalability of the system. On the back end, the introduction of the Spring Boot framework makes the development process more efficient, and provides a wealth of built-in functions, such as automatic configuration, health checks, etc., to improve the stability and maintainability of the system. In terms of database design, we adopted the MySQL database to ensure the stability and security of the data.
The design of the front-end WeChat small program focuses on user experience. Through the simple and clear interface layout and smooth operation process, users can easily browse products, place orders and track logistics information in real time. In addition, the system also provides user evaluation and online customer service and other functions, further improving the user's shopping experience and satisfaction.
In the process of implementation, we encountered some technical challenges, but through teamwork and technical breakthroughs, we finally successfully completed the development and testing of the system. At present, the system has been running online, and has received good user feedback.
Keywords: WeChat applet; fresh preferred; Spring Boot; system design; user experience.
目录
第一章 绪 论
1.1选题背景和意义
1.1.1研究背景
随着移动互联网的迅速发展,生鲜电商市场逐渐成为新的经济增长点。消费者对于生鲜产品的需求日益增加,而传统的线下购物模式由于物流迟缓、销售环节衔接不畅等问题,难以满足现代消费者的需求[1]。微信小程序作为一种无需下载即可使用的应用,凭借其便捷性和易用性,迅速成为生鲜电商平台的重要渠道之一[2]。与此同时,物联网技术的发展使得精准营销和用户行为分析成为可能,通过RFID技术和k-means算法等手段,可以有效提升生鲜电商平台的用户体验和营销效果[3]。此外,基于微信生态的社区优选商城系统,结合了线上商品管理和线下便利实体店体系,为用户提供了一体化的购物体验[4]。这些研究和实践表明,基于微信小程序的生鲜优选系统具有广阔的应用前景和发展潜力。
1.1.2研究意义
基于微信小程序的生鲜优选系统设计与实现不仅能够提升用户的购物体验,还对生鲜电商平台的发展具有重要意义。一方面该系统通过整合线上线下资源,优化了生鲜产品的供应链管理,提升了物流效率和服务质量[5]。另一方面,利用物联网平台进行消费者行为分析,可以帮助企业更好地理解用户需求,制定精准的营销策略,从而提高客户满意度和忠诚度)。此外,微信小程序的轻量化和便捷性使其在竞争激烈的生鲜电商市场中具备独特优势,能够快速响应市场需求变化,增强企业的市场竞争力[6]。最后,通过前后端分离的技术架构设计,系统实现了高并发支持和可扩展性,确保了系统的稳定性和高效运行。综上所述,基于微信小程序的生鲜优选系统设计与实现有助于推动生鲜电商行业的数字化转型,提升整体运营效率和服务水平,具有重要的理论价值和实际应用意义[7]。
综上所述,基于微信小程序的生鲜优选系统不仅能显著提升用户体验,还能通过整合线上线下资源、优化供应链管理、实施精准营销策略等方式,增强企业的市场竞争力和服务水平。该系统的开发与应用将推动生鲜电商行业的进一步发展,并为相关企业提供宝贵的实践经验和技术支持[8]。
1.2国内外研究现状
1.2.1国内研究现状
国内,生鲜电商市场近年来呈现出蓬勃发展的态势。由于传统生鲜销售模式存在配送不及时、产品质量难以保证等问题,消费者对于高品质、高新鲜度的生鲜产品有着迫切的需求。因此,基于微信小程序的生鲜优选系统应运而生。微信小程序以其无需下载安装、使用便捷等特点,迅速成为生鲜电商领域的重要平台。
国内的研究主要集中在如何优化微信小程序的用户体验、提高生鲜产品的配送效率以及确保产品质量等方面。例如,通过引入智能推荐算法,根据用户的购买记录和偏好,为用户推荐相关商品或优惠活动,提升用户的购物体验和满意度。同时,通过建立高效的物流配送体系,确保生鲜产品能够及时、准确地送达用户手中。此外,国内的研究还关注于如何运用大数据和人工智能技术,对生鲜产品的供应链进行精细化管理,提高运营效率。
1.2.2国外研究现状
在国外,生鲜电商市场同样发展迅速,但与中国市场相比,其研究重点和技术应用有所不同。国外的研究更注重于如何运用先进的物联网技术和智能化设备,实现生鲜产品的全程监控和追溯。通过物联网技术,可以实时监测生鲜产品的温度、湿度等环境参数,确保产品在运输和储存过程中的新鲜度和安全性。此外,国外的研究还关注于如何运用区块链技术,实现生鲜产品供应链的透明化和可追溯性,提高消费者对产品的信任度。
在用户体验方面,国外的研究同样重视智能推荐算法和个性化服务的应用。通过分析用户的购买行为和偏好,为用户提供定制化的商品推荐和优惠活动,提高用户的购物体验和忠诚度。同时,国外的生鲜电商平台还注重与社交媒体平台的融合,通过社交分享和互动,扩大品牌影响力和用户群体。
综上所述,基于微信小程序的生鲜优选系统在国内外的研究现状均呈现出蓬勃发展的态势。国内的研究更注重于优化用户体验和提高运营效率,而国外的研究则更注重于运用先进技术和智能化设备,实现生鲜产品的全程监控和追溯。未来,随着技术的不断进步和市场的不断发展,基于微信小程序的生鲜优选系统将会迎来更多的创新和应用。
1.3研究内容
开发和实施微信小程序的生鲜优选系统,需要完成以下任务:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)在系统ACK完成之后,将根据系统开发的要求,选择JAVA技术来构建微信小程序的生鲜优选系统,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。
(3)在微信小程序的生鲜优选系统中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、普通用户角色和商家用户角色,每个角色都有其独特的特点,而且每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,用户可以随时根据自身的需求查看生鲜商城、网站公告、新闻资讯等内容,而商家用户负责处理订单、管理库存、分析生鲜商城及更新入库与出库记录等工作。管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。
(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。
第二章 关键技术介绍
2.1微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。
根据用户的需求,将采用不同的屏幕大小来制作小程序。
在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2小程序框架以及目录结构介绍
这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。
2.3 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。
JAVA语言功能:
面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。
Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。
C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。
2.4 Mysql数据库
数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。
在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。
2.5 Springboot框架
Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。
第三章 系统分析
3.1可行性分析
通过综合考虑经济、操作、技术等因素,可以对微信小程序的生鲜优选系统的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。
3.1.1经济可行性分析
考虑到Springboot、小程序及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升微信小程序的生鲜优选系统的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
3.1.2操作可行性分析
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
3.1.3技术可行性分析
从技术方面来说,基于微信小程序的生鲜优选系统设计与实现也是可行的。Spring Boot是一种流行的Java框架,提供了强大的开发支持。小程序是一种流行的移动应用开发平台,提供了便捷的开发和部署支持。MySQL是一种流行的关系型数据库管理系统,提供了强大的数据存储和管理支持。通过使用这些技术,微信小程序的生鲜优选系统可以实现便捷、高效的生鲜优选系统管理功能。
3.2功能需求分析
微信小程序的生鲜优选系统的设计与实现可以从功能层面进行详细描述,涉及到普通用户、商家用户和管理员三个角色的具体需求,基于Spring Boot、Java语言、MySQL数据库以及微信小程序的架构进行实现。下面详细阐述各个功能模块:
1.普通用户功能描述
登录注册:用户可以通过手机号或微信账号快速登录或注册系统。
首页:展示精选生鲜商品、优惠活动和最新资讯。
生鲜商城:浏览和购买各类生鲜商品,支持筛选和排序功能。
新闻资讯:查看关于生鲜、健康饮食等方面的最新资讯。
网站公告:实时查看平台发布的公告信息,了解平台动态。
购物车:添加、编辑和结算选购的商品,方便购物管理。
我的:
基本信息:查看和编辑个人基本信息。
我的订单:查看订单历史,包括待支付、待发货、待收货和已完成订单。
收货地址:添加、编辑和删除收货地址,方便配送管理。
收藏:收藏喜欢的商品,便于日后购买。
评论:对购买的商品进行评价和打分,分享购物体验。
订单配送:查看订单配送状态和物流信息。
2.商家用户功能描述:
登录注册:商家通过专属账号登录或注册系统,进入商家后台。
后台首页:展示商家后台的主要功能和数据统计。
商品库存管理:查看和编辑商品库存信息,确保库存充足。
商品类型管理:添加、编辑和删除商品类型,方便商品分类管理。
入库信息管理:记录和管理商品的入库信息,确保入库流程顺畅。
出库信息管理:记录和管理商品的出库信息,跟踪发货状态。
商城管理:
生鲜商城:管理商家在生鲜商城中的商品展示和促销活动。
分类列表:设置和调整商品分类,提升用户体验。
订单列表:查看和处理用户订单,包括待发货、已发货和已完成订单。
订单配送:管理订单的配送状态和物流信息,确保准时送达。
3.管理员功能描述:
登录:管理员通过专属账号登录系统后台。
后台首页:展示系统后台的主要功能和整体数据统计。
系统用户:管理普通用户和商家用户的账号信息,包括审核新用户。
商品库存管理:全局查看和编辑所有商家的商品库存信息。
商品类型管理:全局管理商品类型,确保分类准确。
入库信息管理:全局查看和管理所有商品的入库信息。
出库信息管理:全局查看和管理所有商品的出库信息。
系统管理:设置系统参数,进行系统维护和升级。
网站公告管理:发布、编辑和删除网站公告,及时传达平台信息。
资源管理:管理系统的图片、视频等资源,确保内容丰富多样。
商城管理:全局管理生鲜商城的商品、分类、订单和配送信息,确保商城运营顺畅。
微信小程序的生鲜优选系统普通用户角色用例图如下所示。

图3-1 普通用户角色用例图
微信小程序的生鲜优选系统商家用户角色用例图如下所示。

图3-2 商家用户角色用例图
微信小程序的生鲜优选系统管理员角色用例图如下所示。

图3-3管理员角色用例图
3.3性能需求分析
用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览生鲜商城、网站公告、新闻资讯等操作应该迅速响应。
系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。
数据安全:用户信息等敏感数据需要加密存储,确保数据安全性。
系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。
日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。
基于以上性能需求将确保微信小程序的生鲜优选系统能够稳定、高效地运行,能够很好地满足用户和管理员的需求。
3.4系统流程分析
3.4.1用户注册流程图
注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图
3.4.2用户登录流程图
登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-5用户登录流程图所示。

图3-5用户登录流程图
3.4.3系统操作流程
用户打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则用户会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图3-6所示。

图3-6 系统操作流程图
3.4.4添加信息流程
管理员可以对生鲜商城、网站公告、新闻资讯等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图3-7所示。

3.4.5 修改信息流程
管理员可以对生鲜商城、网站公告、新闻资讯等进行的修改,用户可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图3-8所示。

图3-8 修改信息流程图
3.4.6 删除信息流程
管理员可以对生鲜商城、网站公告、新闻资讯等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图3-9所示。

图3-9 删除信息流程图
第四章 系统设计与实现
4.1系统总体设计思路
微信小程序的生鲜优选系统采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图
其最终前后台交互原理如图4-2所示。

图4-2前后台交互原理
具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。
4.2系统结构设计
微信小程序的生鲜优选系统的整体结构设计如图4-3所示。

图4-3整体功能结构设计图
4.4数据库设计
数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,需要明确每个元素的特征,并将它们组合在一起。
4.4.1数据库设计原则
微信小程序的生鲜优选系统在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E-R展示数据库中设计的实体及主要的字段和类型及数据库的描述。
4.4.2数据库实体
通过建立微信小程序的生鲜优选系统的E-R模型图。以此来设计详细的数据库资料实体,以下为具体图例:
(1)普通用户实体图如图4-4所示;

图4-4普通用户实体图
(2)商品信息实体E-R图如图4-5所示;

图4-5商品信息实体E-R图
(3)购物车实体图如图4-6所示;

图4-6购物车实体图
(4)商家用户实体图如图4-7所示;

图4-7商家用户实体图
(5)生鲜商城实体图如图4-8所示;

图4-8生鲜商城实体图
(6)数据库实体E-R图如图4-9所示:

图4-9数据库E-R图
4.4.3数据库表设计
通过对数据结构的深入分析,可以确定哪些表格和结构之间的关系,并且可以通过验证、调整和完善,来满足用户对数据和功能的需求,从而实现数据库的有效管理。
根据微信小程序的生鲜优选系统的特性,重新设计了数据库的概念模型,以满足其功能的需求,并且结构更加清晰明确。
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 用户编号: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
| 2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
| 3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
| 4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
| 5 | address | varchar | 255 | 0 | N | N | 地址: | |
| 6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 文章描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | parent | varchar | 64 | 0 | Y | N | 父级菜单 | |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 16 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 17 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 19 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 20 | option | text | 65535 | 0 | Y | N | 配置: | |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
| 4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
| 8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
| 9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
| 10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
| 11 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
| 13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | ||
| 2 | token | varchar | 255 | 0 | Y | N | ||
| 3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | fresh_mall_id | int | 10 | 0 | N | Y | 生鲜商城ID | |
| 2 | merchant_users | int | 10 | 0 | Y | N | 0 | 商家用户 |
| 3 | product_specifications | varchar | 64 | 0 | Y | N | 商品规格 | |
| 4 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 5 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 6 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
| 7 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
| 8 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 9 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 10 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 11 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 12 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 13 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
| 14 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
| 15 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
| 16 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
| 17 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
| 18 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
| 19 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 添加人 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
| 2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
| 4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
| 5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
| 6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 7 | source_field | 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | inventory_information_id | int | 10 | 0 | N | Y | 入库信息ID | |
| 2 | product_code | varchar | 64 | 0 | Y | N | 商品编号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 5 | merchant_users | int | 10 | 0 | Y | N | 0 | 商家用户 |
| 6 | inventory_quantity | double | 9 | 2 | Y | N | 0.00 | 入库数量 |
| 7 | storage_date | date | 10 | 0 | Y | N | 入库日期 | |
| 8 | storage_remarks | text | 65535 | 0 | Y | N | 入库备注 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 11 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 12 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 13 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
| 5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
| 6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
| 7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
| 8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
| 10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
| 11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
| 12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
| 14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | merchant_users_id | int | 10 | 0 | N | Y | 商家用户ID | |
| 2 | merchant_name | varchar | 64 | 0 | Y | N | 商家名称 | |
| 3 | responsible_personnel | varchar | 64 | 0 | Y | N | 负责人员 | |
| 4 | contact_information | varchar | 16 | 0 | Y | N | 联系方式 | |
| 5 | merchant_address | varchar | 64 | 0 | Y | N | 商家地址 | |
| 6 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 折扣 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | ordinary_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
| 2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 3 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
| 4 | user_gender | 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 | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | outbound_information_id | int | 10 | 0 | N | Y | 出库信息ID | |
| 2 | product_code | varchar | 64 | 0 | Y | N | 商品编号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 5 | merchant_users | int | 10 | 0 | Y | N | 0 | 商家用户 |
| 6 | outbound_quantity | double | 9 | 2 | Y | N | 0.00 | 出库数量 |
| 7 | outbound_date | date | 10 | 0 | Y | N | 出库日期 | |
| 8 | outbound_remarks | text | 65535 | 0 | Y | N | 出库备注 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 11 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 12 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 13 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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已取消 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | product_inventory_id | int | 10 | 0 | N | Y | 商品库存ID | |
| 2 | product_code | varchar | 64 | 0 | Y | N | 商品编号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 5 | quantity_of_goods | double | 9 | 2 | Y | N | 0.00 | 商品数量 |
| 6 | merchant_users | int | 10 | 0 | Y | N | 0 | 商家用户 |
| 7 | remarks_information | text | 65535 | 0 | Y | N | 备注信息 | |
| 8 | inventory_information_limit_times | int | 10 | 0 | N | N | 0 | 入库限制次数 |
| 9 | outbound_information_limit_times | int | 10 | 0 | N | N | 0 | 出库限制次数 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | product_type_id | int | 10 | 0 | N | Y | 商品类型ID | |
| 2 | product_type | 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 | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | schedule_id | smallint | 5 | 0 | N | Y | 日程ID:[0,32767] | |
| 2 | content | varchar | 255 | 0 | Y | N | 日程内容 | |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | 计划时间 | |
| 4 | user_id | int | 10 | 0 | N | N | 用户id | |
| 5 | create_time | datetime | 19 | 0 | Y | N | 创建时间 | |
| 6 | update_time | datetime | 19 | 0 | Y | N | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | 评分ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | 昵称: | |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 8 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 文件类型 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | int | 10 | 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 | | 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 | 创建时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
第五章 系统实现
5.1 登录注册模块的实现
普通用户通过微信授权登录,获取用户基本信息(如昵称、头像等),并完成首次注册。注册后,系统自动为用户生成唯一的账号,并绑定微信号,实现一键登录。系统登录界面如下图5-1所示。系统注册界面如下图5-2所示。

图5-1系统登录界面

图5-2 系统注册界面
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,其代码如下:
/**
* 登录
* @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, "账号或密码不正确");
}
}
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如下:
/**
* 注册
* @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);
}
5.2 普通用户功能实现
5.2.1 用户首页模块
首页是用户进入小程序后的第一个页面。该页面展示了网站公告和新闻资讯,提供轮播图展示等。首页如下图所示。

图5-3首页界面
5.2.2 新闻资讯模块
点击首页“新闻资讯”按钮,用户可以查看所有的新闻资讯,支持关键词搜索,点击某条新闻资讯可查看该新闻资讯详情,用户可以对新闻资讯进行评论、收藏、点赞,新闻资讯列表界面如下图5-4所示。

图5-4新闻资讯列表界面
5.2.4 生鲜商城模块
在生鲜商城中,用户可以自由浏览各类生鲜商品,如蔬菜、水果、肉类、海鲜等,系统还提供了筛选和排序功能,让用户可以根据自己的需求快速定位到想要的商品。生鲜商城产品展示列表界面如下图5-5所示。生鲜商城产品详情界面如下图5-6所示。

图5-5生鲜商城产品展示界面

图5-6生鲜商城产品详情界面
5.2.5我的模块
用户点击导航栏“我的”,可以进入个人信息页面,用户可以查看和管理个人信息,包括基本信息、我的订单、收货地址、收藏、评论、订单配送等。用户可以查看自己的历史订单和当前订单状态,包括待支付、待发货、已发货、已完成等状态。并且可以跟踪订单配送状态,查看配送员信息和联系方式,方便与配送员沟通。我的界面如下图5-7所示。订单详情页面如下图5-8所示。订单配送页面如下图5-9所示。

图5-7我的界面

图5-8我的订单详情界面

图5-9订单配送列表界面
5.3 商家用户功能实现
5.3.1生鲜商城管理界面
商家可以在生鲜商城中管理自己的商品展示和促销活动,吸引用户购买,界面如下图5-10所示。
图5-10生鲜商城管理界面图
5.3.2出库信息管理界面
出库信息管理功能记录了商品的出库信息,包括出库时间、数量、收货地址等,帮助商家管理发货流程,确保商品准时送达。界面如下图所示。
图5-11出库信息管理界面图
5.4 管理员功能实现
5.4.1轮播图管理界面
管理员点击“系统管理-轮播图管理”菜单,可以对前台展示的轮播图进行设置,界面如下图5-12所示。
图5-12轮播图管理界面图
图片/文件/视频等的上传方法通过MultipartFile,代码如下:
@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, "上传失败");
}
5.4.2系统用户界面
管理员点击“系统用户”菜单,管理员可以管理系统中的用户信息,支持用户的增删改查操作。界面如下图所示。
图5-13用户管理界面图
新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如下:
@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);
}
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下:
@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);
}
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下:
@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());
}
5.4.3商品类型管理界面
管理员可以全局管理商品类型,确保商品分类准确、合理,提升用户体验。界面如下图5-14所示。
图5-14商品类型管理界面图
5.4.4网站公告管理界面
管理员点击“网站公告管理”这个菜单,可以对系统中的公告信息进行管理,包括公告信息的增删改查等操作。网站公告管理界面如下图所示。
图5-15网站公告管理界面图
5.4.5资源管理界面
管理员点击“资源管理”菜单,管理员可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于新闻资讯模块的展示。管理员还可以对资讯进行分类和标签化,方便用户查找和使用,界面如下图所示。
图5-16资源管理界面图
第六章 系统的测试
6.1测试目的
在对该系统进行完详细设计和编码之后,就要对微信小程序的生鲜优选系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。
6.2功能测试
本系统的主要功能就是普通用户登录后,可搜索和浏览生鲜商城,管理员登录系统后台后可对生鲜商城进行管理,包括增改删查操作。测试设计如下所示:
用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:
表6-1 用户登录功功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证有效登录 | 1. 输入正确的用户名和密码 <br> 2. 点击登录按钮 | 显示登录成功,跳转至用户首页 | 登录成功,跳转至用户首页 | 通过 |
| TC002 | 验证空用户名登录 | 1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮 | 显示用户名不能为空提示信息 | 显示用户名不能为空提示信息 | 通过 |
| TC003 | 验证空密码登录 | 1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮 | 显示密码不能为空提示信息 | 显示密码不能为空提示信息 | 通过 |
| TC004 | 验证错误用户名登录 | 1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
| TC005 | 验证错误密码登录 | 1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
(2)生鲜商城模块功能测试
生鲜商城模块测试包括生鲜商城展示功能测试、生鲜商城添加功能测试、生鲜商城搜索功能测试。生鲜商城模块测试用例如表6.2-6.4所示。
生鲜商城展示功能测试用例设计如下表所示:
表6-2 生鲜商城展示功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证正常展示生鲜商城 | 1. 进入生鲜商城展示页面 <br> 2. 浏览展示的生鲜商城内容 | 能够正常显示生鲜商城内容 | 生鲜商城内容正常显示 | 通过 |
| TC002 | 验证生鲜商城链接跳转 | 1. 进入生鲜商城展示页面 <br> 2. 点击生鲜商城链接 | 能够跳转至相应生鲜商城详情页面 | 成功跳转至生鲜商城详情页面 | 通过 |
| TC003 | 验证搜索功能 | 1. 进入生鲜商城展示页面 <br> 2. 使用搜索功能搜索生鲜商城 | 显示符合搜索条件的生鲜商城列表 | 显示符合搜索条件的生鲜商城列表 | 通过 |
| TC004 | 验证商品状态展示 | 1. 进入生鲜商城展示页面 <br> 2. 选择商品状态 | 显示该状态下的生鲜商城列表 | 成功显示该状态下的生鲜商城列表 | 通过 |
| TC005 | 验证生鲜商城的评论功能 | 1. 进入生鲜商城详情展示页面 <br> 2. 查看生鲜商城并发表评论 | 评论成功显示在生鲜商城页面 | 评论成功显示在生鲜商城页面 | 通过 |
生鲜商城添加功能测试用例设计如下表所示:
表6-3 生鲜商城添加功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证添加生鲜商城 | 1. 进入生鲜商城添加界面 <br> 2. 输入生鲜商城 <br> 3. 点击添加按钮 | 生鲜商城成功添加到系统页面中 | 生鲜商城成功添加到系统页面中 | 通过 |
| TC002 | 验证生鲜商城商品状态选择 | 1. 进入生鲜商城添加界面 <br> 2. 选择商品状态 <br> 3. 输入生鲜商城 <br> 4. 提交生鲜商城 | 根据选择的商品状态成功添加生鲜商城 | 根据选择的动态类型成功添加生鲜商城 | 通过 |
| TC003 | 验证生鲜商城内容输入 | 1. 进入生鲜商城添加界面 <br> 2. 输入正确生鲜商城内容3. 点击添加按钮 | 生鲜商城内容成功录入系统 | 生鲜商城内容成功录入系统 | 通过 |
| TC004 | 验证生鲜商城图片上传 | 1. 进入生鲜商城添加界面 <br> 2. 上传生鲜商城相关图片 <br> 3. 点击添加按钮 | 图片成功上传并与生鲜商城关联 | 图片成功上传并与生鲜商城关联 | 通过 |
生鲜商城搜索功能测试用例设计如下表所示:
表6-4 生鲜商城搜索功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证生鲜商城输入物品名称搜索 | 1. 进入生鲜商城搜索界面 <br> 2. 输入商品名称 <br> 3. 确认并搜索 | 根据选择的商品名称关键词显示相关生鲜商城 | 根据选择的商品名称关键词成功显示相关生鲜商城 | 通过 |
6.3性能测试
- 兼容性测试
表6-5 兼容性测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 兼容性_01 | 设备兼容性 | 测试系统在不同设备上的表现 | 在多种设备上访问系统并记录表现 | 系统在各种设备上都能正常加载和显示页面 |
| 兼容性_02 | 浏览器兼容性 | 测试系统在不同浏览器上的表现 | 在多种浏览器中访问系统并记录表现 | 系统在各种主流浏览器上都能正常加载和显示页面 |
| 兼容性_03 | 分辨率兼容性 | 测试系统在不同分辨率下的显示效果 | 在不同分辨率的设备上访问系统并记录表现 | 系统在各种分辨率下都能适应并正常显示内容 |
| 兼容性_04 | 操作系统兼容性 | 测试系统在不同操作系统上的运行情况 | 在不同操作系统上访问系统并记录表现 | 系统能够在常用操作系统上正常运行和显示 |
- 性能测试
表6-6 性能测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 性能_01 | 负载测试 | 测试系统在正常负载下的性能 | 逐步增加用户数来模拟不同的负载情况 | 系统能够稳定处理并响应不同数量的用户请求 |
| 性能_02 | 压力测试 | 测试系统在极端负载下的性能 | 以超过系统承受极限的用户数来测试系统 | 系统能够在高负载情况下仍然保持正常运行 |
| 性能_03 | 并发测试 | 测试系统能同时处理多少并发用户请求 | 同时发送多个并发用户请求来测试系统性能 | 系统能够有效地处理多个并发请求 |
| 性能_04 | 数据量测试 | 测试系统在大量数据下的性能 | 向系统添加大量数据并测试系统响应时间 | 系统能够在大量数据情况下保持较快的响应时间 |
6.4测试结果
全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。
结 论
本研究成功设计并实现了一个基于微信小程序的生鲜优选系统,后端采用Spring Boot框架,前端则利用微信小程序技术为用户提供友好的交互界面。整个系统在设计过程中,充分考虑了生鲜电商的特性和用户需求,致力于为用户提供高效、便捷、安全的生鲜购买体验。
在系统的后端设计中,Spring Boot框架的引入极大地简化了配置和开发过程,使得系统能够更快速地响应市场变化和用户需求。同时,Spring Boot的内置功能如自动配置、健康检查等,也提升了系统的稳定性和可维护性。数据库方面,MySQL的选用确保了数据的稳定性和安全性,为系统的稳定运行提供了有力保障。
前端微信小程序的设计则充分考虑了用户体验。通过简洁明了的界面布局和流畅的操作流程,用户可以轻松浏览商品、下单购买并实时跟踪物流信息。此外,系统还提供了用户评价和在线客服等功能,进一步提升了用户的购物体验和满意度。
在系统的实现过程中,我也遇到了一些挑战,如如何确保数据的实时性和准确性、如何优化系统的性能等。但通过不断的优化和改进,我们成功地克服了这些困难,实现了系统的稳定运行和良好性能。
综上所述,本研究设计并实现的基于微信小程序的生鲜优选系统是一个高效、便捷、安全的生鲜购买平台。它不仅满足了消费者的购物需求,也为生鲜供应商提供了一个稳定的销售渠道。未来,我将继续优化系统功能,提升用户体验,并探索更多创新的技术和模式,以推动生鲜电商行业的持续发展。
参考文献
- 刘科课.基于Android的生鲜农产品商城设计[D].浙江海洋大学,2020.DOI:10.27747/d.cnki.gzjhy.2020.000313.
- 傅伟,唐润琮,葛竹春.基于微信小程序的生鲜食品订购平台设计与实现[J].电脑编程技巧与维护,2022,(04):76-79.DOI:10.16184/j.cnki.comprg.2022.04.029.
- Mengmeng Z .Consumer behavior analysis based on Internet of Things platform and the development of precision marketing strategy for fresh food e-commerce.[J].PeerJ. Computer science,2023,9e1531-e1531.
- 柳萌.社区优选商城系统设计与实现[D].青岛科技大学,2022.DOI:10.27264/d.cnki.gqdhc.2022.001248.
- 魏武华.移动电子商务平台开发模式研究综述[J].软件,2022,43(11):167-170+183.
- 黄斯奡.基于用户体验的社区团购微信小程序设计研究[D].武汉纺织大学,2021.DOI:10.27698/d.cnki.gwhxj.2021.000436.
- 朱莹芳,吴莉.Ajax技术在网上生鲜商城的设计与应用[J].安徽电子信息职业技术学院学报,2021,20(05):29-33.
- 李常宝.基于微信小程序的电子商城的设计与开发[J].吕梁教育学院学报,2021,38(03):133-136.
- 刘刚.微信小程序开发项目教程[M].人民邮电出版社:202108.305.
- 闫娇娇.基于Think PHP+Vue商城管理系统的设计与实现[J].电脑知识与技术,2023,19(34):59-62.DOI:10.14004/j.cnki.ckt.2023.1834.
- 李宇杰.基于微服务架构的电商微信小程序的设计与实现[D].华东师范大学,2023.DOI:10.27149/d.cnki.ghdsu.2023.003555.
- 赵冲冲.基于Dubbo框架的购物商城的设计和实现[D].北京交通大学,2022.DOI:10.26944/d.cnki.gbfju.2022.000794.
- 焦自程.基于uni-app框架的购物商城小程序的设计与实现[J].信息与电脑(理论版),2022,34(08):168-170.
- 杜雨荃,王晓菊,田立勤.基于微信小程序的网上购物系统的设计与实现[J].网络安全技术与应用,2022,(04):60-62.
- Xin Z ,Pengfei S .Logistics Information Traceability Mechanism of Fresh E-Commerce Based on Image Recognition Technology.[J].Applied bionics and biomechanics,2022,20222949216-2949216.
- 徐超.基于协同过滤的智能推荐商城系统的设计与实现[D].南昌大学,2021.DOI:10.27232/d.cnki.gnchu.2021.002264.
- 马静.基于微信小程序的购物商城系统的设计与实现[J].微型电脑应用,2021,37(03):31-34.
- 曾梵影.生鲜类微信小程序界面设计与用户黏性影响因素关系研究[D].重庆大学,2020.DOI:10.27670/d.cnki.gcqdu.2020.002751.
- 符豪.基于Android的生鲜农产品商城的设计与实现[D].中南林业科技大学,2019.
- Ling S ,Zheng C ,Cho D .How Brand Knowledge Affects Purchase Intentions in Fresh Food E-Commerce Platforms: The Serial Mediation Effect of Perceived Value and Brand Trust[J].Behavioral Sciences,2023,13(8):672-..
在本论文的研究与撰写过程中,我得到了许多人的支持与帮助。在此,我谨向所有关心和支持我的人表示诚挚的感谢。
首先,我要感谢我的指导老师,他在整个研究过程中给予了我悉心的指导和无私的支持。他的专业知识和严谨态度对我有着深远的影响,使我在研究中受益匪浅。
其次,我要感谢我的家人,他们在我攻读学位期间给予了我无条件的理解与支持。在我遇到困难和挑战时,他们的鼓励让我倍感温暖,激励我不断前行。
同时,感谢所有参与问卷调查和用户测试的用户,你们的反馈和建议对本系统的改进和完善起到了重要作用。希望本研究的成果能够为大家的生活带来便利。
再次感谢所有关心和支持我的人,是你们的帮助让我顺利完成了这项研究。

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



