摘 要
本论文设计并实现了一个基于微信小程序的冷水壶商城系统,系统采用PHP和ThinkPHP框架进行开发,使用MySQL数据库进行数据存储,旨在为用户提供便捷的在线购物平台。冷水壶商城系统实现了注册用户和管理员两类不同用户角色的功能需求,能够满足用户从浏览商品、下单购买到售后服务的完整购物流程。同时,管理员可通过后台管理系统对商城运营进行全方位的监控和管理,确保平台的正常运转。
系统的注册用户可进行登录注册、浏览水壶资讯、查看商城商品、进行在线购物、管理个人订单、修改资料、查看配送状态等操作,提升了用户的购物体验。通过购物车功能,用户可方便地管理购物清单,支持对订单的取消和售后处理。管理员则通过后台管理系统实现对商城商品、用户、订单、资讯等的管理,确保平台内容和服务的质量与稳定。
冷水壶商城系统的实现不仅优化了冷水壶商品的购买流程,还为商城运营提供了便捷的管理工具,提升了商品信息的管理效率。未来,系统可根据用户反馈和市场需求进一步扩展功能,提高用户体验,并支持更多的商品类型与服务。此平台的设计与实现为小程序电商平台的开发和优化提供了有价值的参考,具备较强的应用价值与实践意义。
关键词:冷水壶商城;PHP;微信小程序;系统设计;订单管理
Abstract
This paper designs and implements a cold water pot mall system based on WeChat mini program. The system is developed using PHP and ThinkPHP frameworks, and uses MySQL database for data storage, aiming to provide users with a convenient online shopping platform. The Cold Water Pot Mall system realizes the functional requirements of two different user roles: registered users and administrators, which can meet the complete shopping process of users from browsing products, placing orders and purchases to after-sales service. At the same time, administrators can monitor and manage the operation of the mall in all aspects through the backend management system to ensure the normal operation of the platform.
Registered users of the system can perform login registration, browse kettle information, view mall products, make online purchases, manage personal orders, modify information, view delivery status, and other operations, enhancing the user's shopping experience. Through the shopping cart function, users can easily manage their shopping list and support order cancellation and after-sales processing. Administrators manage the mall's products, users, orders, information, etc. through the backend management system to ensure the quality and stability of platform content and services.
The implementation of the Cold Water Pot Mall system not only optimizes the purchasing process of cold water pot products, but also provides convenient management tools for mall operations, improving the efficiency of product information management. In the future, the system can further expand its functions based on user feedback and market demand, improve user experience, and support more types of products and services. The design and implementation of this platform provide valuable references for the development and optimization of mini program e-commerce platforms, and have strong application value and practical significance.
Keywords: Cold Water Pot Mall; PHP; WeChat Mini Program; System design; order management
目录
随着移动互联网的普及和智能手机的广泛应用,基于微信小程序的电商平台逐渐成为零售行业的重要发展趋势。近年来,消费者的购物需求逐渐从传统的线下购物转向更加便捷、灵活的线上购物,而微信小程序作为一个便于访问和操作的平台,为电商行业提供了一个全新的发展方向。尤其是在家居用品领域,随着消费者对健康、环保和便捷生活方式的需求不断增加,冷水壶等家电产品的市场需求也在不断增长。传统的冷水壶购买方式存在着信息获取不全面、购买流程繁琐、售后服务不到位等问题,导致消费者体验不佳。
为了应对这些问题,构建一个便捷、智能化的冷水壶商城系统显得尤为重要。通过微信小程序平台,能够在用户的日常生活中提供随时随地的购物体验,解决了传统电商平台存在的许多局限性,如安装复杂的APP、操作不便等。系统的设计与实现不仅能提高消费者的购物体验,还能帮助商家更高效地管理商品信息、订单处理和客户服务,从而提升运营效率和市场竞争力。
本研究通过基于PHP和ThinkPHP框架的技术实现,为开发一个以用户需求为中心、操作简便、功能全面的冷水壶商城提供了理论支持与实践指导。冷水壶商城系统不仅关注用户购物流程的顺畅性,还重点考虑了商品信息管理、订单管理、用户互动等多方面的功能,进一步提升了平台的综合服务水平。同时,通过利用MySQL数据库进行数据存储,保障了平台的稳定性和数据的安全性。
冷水壶商城系统的设计与实现,不仅提升了冷水壶的购买体验,还为商家提供了一个高效的在线销售平台。随着消费者购物习惯的不断变化,线上商城将成为越来越多用户的首选平台,推动电商行业和智能家居领域的发展。因此,基于微信小程序的冷水壶商城系统具有重要的市场应用价值和发展前景。
-
- 国内外研究现状
国内移动互联网的快速发展和智能手机的普及,微信小程序逐渐成为一种高效便捷的开发平台,尤其在电商领域,其应用前景广阔。基于微信小程序的电商平台不仅能够满足用户对便捷购物体验的需求,还能够通过小程序的特性,为商家提供更加高效的运营管理模式。国内外的相关研究表明,基于微信小程序的电商平台已经取得了初步的成果,但在特定品类商城系统的设计和实现上仍存在较多可优化之处。
国外的研究主要集中在电商平台架构和技术栈的应用上,例如,Xue等人提出了基于Java Web的在线商城系统设计,探讨了电商系统的推荐算法和系统性能优化[1]。Peng和Wang的研究则针对在线药品商城系统进行了基于SOA架构的设计,提出了分布式架构的优势,并应用于商城系统的设计与实现[2]。国内的研究中,多个基于PHP、ThinkPHP框架的商城系统得到了广泛关注,如闫娇娇的研究提出了基于ThinkPHP框架的商城管理系统,通过前后端分离的设计模式,提高了系统的可扩展性与管理效率[3]。
国内外的研究都强调了商城系统的技术架构与管理功能的优化,但针对微信小程序平台的冷水壶类特定产品的研究仍较为稀缺。国内陶良敬等人在其基于Spring Cloud的电子商城系统研究中,探讨了系统的可扩展性和高并发处理能力[4],为类似商城系统的架构设计提供了有价值的参考。另有研究基于Spring Boot框架的网上商城管理系统,强调了微服务架构在商城系统中的应用,尤其是在产品展示和订单管理方面的优势[5]。
在数据库应用方面,MySQL作为常用的关系型数据库,被广泛应用于电商系统的数据存储和管理中。国内外的许多电商系统,如文臻铭等人的基于SSM框架的电力电缆附件商城系统,也采用了MySQL数据库来处理高频次的数据交互与管理问题[6]。
总的来说,现有研究虽然在商城系统的整体架构、数据库应用和技术选型上提供了较为成熟的解决方案,但针对基于微信小程序的特定品类(如冷水壶商城)系统设计和实现的研究仍不充分,尤其是在用户体验优化和后台管理功能扩展方面。未来的研究可以进一步深化在这一领域的技术应用,提升平台的运营效率和用户体验。
开发和实施基于微信小程序的冷水壶商城系统设计与实现,需要完成以下任务:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)在系统ACK完成之后,我们将根据系统开发的要求,选择PHP技术来构建冷水壶商城系统设计与实现,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,我们还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。
(3)在基于微信小程序的冷水壶商城系统设计与实现中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、注册用户角色,每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,注册用户可以随时根据自身的需求查看和管理水壶资讯、网站公告、水壶商城等,而管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。
(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,我们会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。
1.4论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,系统开发的国内外研究现状和本文的研究内容与主要工作。
第二章:系统开发的相关技术介绍。
第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第四章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第七章:总结。
PHP采用函数或者过程来解析对于数据的操作,但又把数据和函数之间相互分开,这样并不利于维护,并会增加程序的工作量。而面向对象的编程将程序的函数和函数对于数据的操作封装在一个类中,作为一个整体来处理。所以PHP语言是主要通过面向对象来实现编程,并且摒除了C++语言中的指针、多继承等比较难理解部分,创造出了自身独有的单继承、多接口、高内聚、低耦合等特性[3] [4]。
PHP技术对动态Web页面的开发作用简直是举足轻重。可以很快的响应到客户端的发送请求。是甲骨文公司旗下的IT及互联网技术服务公司Sun Microsystems公司主导并创立的动态网页技术的标准。而且能依据请求内容动态地生成XML、HTML,为用户的网络请求提供技术服务,而且可以与服务器上的其它PHP程序共同处理先对复杂的业务需求[5] [6]。
PHP主要优势如下:
(1)一旦程序有一次成功的编写,就能在多处运行起来。
(2)支持面特别广,许多平台已经引入该技术。
现在Mysql数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系[7]。
Mysql是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且Mysql的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,Mysql是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件[8]。
优点一:Mysql中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得Mysql在安全和完整性远远超出了其他关系型数据库。
优点二:对于那些动画、图形和声音的数据类型Mysql也可以支持,这说明多数据类型Mysql也是可以支持的。
优点三:Mysql还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对Mysql数据库的操作[9] [10]。
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 [1]
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

MVC,即 Model 模型、View 视图,及 Controller 控制器。
View:视图,为用户提供使用界面,与用户直接进行交互。
Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类: 一类称为数据承载 Bean:实体类,专门用户承载业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理用户提交请求的。
Controller:控制器,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。
MVC 架构程序的工作流程:
(1)用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等
(2)服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理
(3)Model 处理后,将处理结果再交给 Controller
(4)Controller 在接到处理结果后,根据处理结果找到要作为向客户端发回的响应 View 页面。页面经渲染(数据填充)后,再发送给客户端。
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。
根据用户的需求,我们将采用不同的屏幕大小来制作小程序。
在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,我们可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

在软件开发的过程中,可行性分析是至关重要的,它旨在评估问题的可行性,以便尽可能快地解决,同时也要考虑到不同的解决方案的优势和劣势,以及实施这些方案所带来的经济效益。通过对技术、操作和经济因素的综合考量,我们可以更好地评估基于微信小程序的冷水壶商城系统设计与实现的可行性,具体表现在:
基于微信小程序的冷水壶商城系统采用的是PHP编程语言并于MVVM模式,数据库部分采用的是当前流行的MYSQL数据库,基于微信小程序的冷水壶商城系统中的所有数据资源都存储在Mysql数据库中,本系统多处采用了AJAX的异步操作,AJAX技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是HBuilder编辑器,而HBuilder里面有自带的Apache服务器和JDK环境,因此不需要我们在重新配置。
基于微信小程序的冷水壶商城系统是在PHP和Mysql的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。基于微信小程序的冷水壶商城系统其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。
本系统是基于浏览器和服务器的基于微信小程序的冷水壶商城系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是注册用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
在设计与实现基于微信小程序的冷水壶商城系统时,为了满足不同用户角色的需求,系统将用户分为注册用户和管理员两类,针对每一类设计了相应的功能模块。以下是功能分析。
1.注册用户功能
登录注册:注册用户通过该功能进行账号注册与登录。注册时,用户需要提供必要的个人信息,如用户名、手机号、密码等。登录后,用户能够进入平台的主页,享受商城的各项服务。
首页:首页展示平台的核心内容,包括热销商品、最新活动、推荐商品、商城动态等信息,方便用户快速了解商城的最新情况,并引导用户进入相应的购物区域。
水壶资讯:用户可以在此功能中查看与冷水壶相关的最新资讯、使用技巧、评测文章等内容,增加对商品的了解和购买决策的参考。
网站公告:提供平台的公告、促销活动、节日优惠等信息,确保用户能够及时了解商城的最新动态和重要通知。
水壶商城:这是系统的主要购物区域,用户可以浏览并选择自己喜欢的水壶商品,查看商品的详细信息、价格、评价等,支持用户添加商品至购物车进行购买。
购物车:用户可以将选中的商品加入购物车,随时查看购物车内的商品列表,修改商品数量或删除商品,方便集中管理所有待购商品。
我的:
修改资料:用户可以修改个人信息,包括用户名、手机号、收货地址等,确保信息的准确性和时效性。
我的订单:用户可以查看自己的所有订单,查看订单状态(已付款、待发货、已配送等),以及历史订单详情。
收货地址:用户可以管理自己的收货地址,新增、修改或删除收货地址,以方便购物时的配送选择。
收藏:用户可以收藏喜欢的商品,方便日后购买。
评论:用户可以对已购买的商品进行评价,分享自己的使用体验,帮助其他用户做出购买决策。
取消订单:若用户决定取消订单,可以在此进行操作,系统会根据订单状态确认是否能够取消。
订单售后:提供售后服务接口,用户可以提交售后申请,包括退货、换货等。
订单配送:用户可以查看已购买商品的配送状态,了解货物的实时运输进度。
2.管理员功能
后台首页:管理员登录后进入后台首页,查看平台的整体数据,包括注册用户数、订单数量、商品销售情况等,方便管理员进行业务决策。
系统用户管理:管理员可以管理平台的注册用户,包括查看用户信息、禁用违规用户等,确保平台用户行为合规。
取消订单管理:管理员可以查看并审核用户的取消订单申请,包括原因分析,优化订单流程和客户服务。
订单售后管理:管理员可以查看和审核用户的售后服务请求,保证良好的用户体验和售后服务质量。
轮播图管理:管理员可以管理平台首页的轮播图内容,更新推广的商品、活动或促销信息,增加商城的互动性和吸引力。
通知公告管理:管理员可以发布网站公告,推送平台的新闻、活动信息等,确保用户及时获得平台的最新动态。
资源管理:
水壶资讯:管理员可以管理平台的水壶资讯栏目,包括编辑、发布最新的产品评测、使用技巧等文章内容。
资讯分类:管理员可以对水壶资讯进行分类管理,方便用户查阅相关领域的文章,提高信息的可读性与结构化。
商城管理:
水壶商城:管理员可以管理商城内的商品,包括新增商品、修改商品信息、调整商品价格等。
分类列表:管理员可以设置商品分类,例如按品牌、功能、材质等进行划分,方便用户按需筛选。
订单列表:管理员可以查看所有用户订单的状态,包括未付款、已付款、已发货等,帮助管理员更好地调度库存和物流。
订单配送:管理员可以管理订单配送情况,确保商品能及时、准确地送达用户。
通过这些功能模块的设计与实现,系统能有效地满足注册用户和管理员的各项需求,优化商城的购物体验、提升用户服务质量、促进商城运营管理效率,进而推动冷水壶商城的持续发展和用户满意度的提升。
基于微信小程序的冷水壶商城系统设计与实现是一个集众多用户信息且长时间持续运转的系统,它储存了大量的信息,所以需要保证数据不会出现泄露、损坏等情况。只有良好的数据安全才可以保证系统对农产品网站的管理。
由于本系统具有电商系统性质,涉及发布水壶资讯、网站公告、水壶商城等及时性较强的功能,所以,为了提高用户体验,需要及时反映操作的准确性以及有效性,预计需要控制系统响应时间在3s内,数据传输在50ms以内。
本系统集信息收集与管理功能于一身,除涉及大量信息数据外,还需满足用户访问。可以预见这种访问通常是集中的、突发性的访问,很容易导致服务器满载、迟缓,最终崩溃。所以这要求在软件以及硬件部分均需要拥有应对短时间内大量数据吞吐的能力。在系统设计方面,我们通过减少不必要的信息提交量等方法来提高系统在特殊情况下的稳定性能。
通过利用先进的计算机科学与互联网,我们研制出一套具有弹性的基于微信小程序的冷水壶商城系统,以有效地降低运营成本,极大地改善用户的体验。通过基于微信小程序的冷水壶商城系统的开发,我们建立了一个独立的系统,采用最新的数据库技术,以满足用户的需求,实现用户角色和功能模块的完美结合,使得管理更加高效、精准,与传统的管理信息完全不同,这样既可以节省资源,又能够大大提升业务处理的速度。这个系统拥有快速、高效、强大的功能。
注册用户在登录系统后,能够进行浏览首页、水壶资讯、网站公告、水壶商城、购物车、修改资料、查看我的订单、新增收货地址、查看收藏内容、评论记录、取消订单、订单售后、订单配送等功能,具体用例分析如图 3-1 所示。

图3-1 注册用户用例图
管理员拥有最高的权限,在登录系统后,主要进行系统用户管理、取消订单管理、订单售后管理、轮播图管理、通知公告管理、资源管理(水壶资讯、资讯分类)、商城管理(水壶商城、分类列表、订单列表、订单配送)等,起到保障作用,具体用例分析如图 3-2所示

图3-2管理员用例图
基于微信小程序的冷水壶商城系统采用三层开发设计模式,分为:用户界面层,业务逻辑层和数据访问层。用户界面层用来和用户交互,业务逻辑层负责业务的处理和各层之间的数据的传递;数据访问层负责对数据库的访问和检索。
系统的架构图如下图所示。

图4-1 系统架构图
系统各层之间的调用过程如下:
(1)用户通过用户界面层访问系统,向系统提交请求,界面层对请求进行初步的处理和包装,并判断是否要与业务逻辑层进行交互。
(2)业务逻辑层接收来自界面层的请求,对请求进行数据处理。然后调用数据访问层来实现数据库访问,数据访问层访问数据库,将数据读出并返回给逻辑层。
(3)逻辑层将处理的结果,返回给界面层。界面层加以处理呈现给用户。
通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。

图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.3.6删除信息流程
管理员可以对水壶资讯、网站公告等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图4-8所示。

图4-8 删除信息流程图
4.4数据库设计
4.4.1数据库概念设计
数据库概念设计是指对于某个具体应用的数据模型(数据结构),进行抽象和设计,以便在后续的数据库实现阶段中进行数据库逻辑设计和物理结构设计。概念结构本身特性就是其能表现来自用户的各类需求。
系统ER图如图4-9所示。

图4-9 系统ER图
4.4.2数据库表设计
数据库表是设计和实现系统的一个重要基础。以下列出了该系统几个重要的数据库表。数据库表结构文档如下:
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-address(收货地址)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | address_id | int | 是 | 是 | 收货地址 | |
| 2 | name | varchar | 32 | 否 | 否 | 姓名 |
| 3 | phone | varchar | 13 | 否 | 否 | 手机 |
| 4 | postcode | varchar | 8 | 否 | 否 | 邮编 |
| 5 | address | varchar | 255 | 是 | 否 | 地址 |
| 6 | user_id | mediumint | 是 | 否 | 用户ID | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | default | tinyint | 是 | 否 | 默认判断 |
表 4-3-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-4-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-cancellation_of_order(取消订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cancellation_of_order_id | int | 是 | 是 | 取消订单ID | |
| 2 | user_account | int | 否 | 否 | 用户账号 | |
| 3 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 4 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 5 | cancel_time | date | 否 | 否 | 取消时间 | |
| 6 | reason_for_cancellation | text | 65535 | 否 | 否 | 取消原因 |
| 7 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 8 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-cart(购物车)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cart_id | int | 是 | 是 | 购物车ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | img | varchar | 255 | 是 | 否 | 图片 |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | state | int | 是 | 否 | 状态:使用中,已失效 | |
| 8 | price | double | 是 | 否 | 单价 | |
| 9 | price_ago | double | 是 | 否 | 原价 | |
| 10 | price_count | double | 是 | 否 | 总价 | |
| 11 | num | int | 是 | 否 | 数量 | |
| 12 | goods_id | mediumint | 是 | 是 | 商品id | |
| 13 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | description | varchar | 255 | 否 | 否 | 描述 |
表 4-8-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-10-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID |
表 4-11-goods(商品信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | goods_id | mediumint | 是 | 是 | 产品ID | |
| 2 | title | varchar | 125 | 否 | 否 | 标题 |
| 3 | img | text | 65535 | 否 | 否 | 封面图:用于显示于产品列表页 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | price_ago | double | 是 | 否 | 原价 | |
| 6 | price | double | 是 | 否 | 卖价 | |
| 7 | sales | int | 是 | 否 | 销量 | |
| 8 | inventory | int | 是 | 否 | 商品库存 | |
| 9 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 10 | hits | int | 是 | 否 | 点击量 | |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img_1 | text | 65535 | 否 | 否 | 主图1 |
| 13 | img_2 | text | 65535 | 否 | 否 | 主图2 |
| 14 | img_3 | text | 65535 | 否 | 否 | 主图3 |
| 15 | img_4 | text | 65535 | 否 | 否 | 主图4 |
| 16 | img_5 | text | 65535 | 否 | 否 | 主图5 |
| 17 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | customize_field | text | 65535 | 否 | 否 | 自定义字段 |
| 20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 21 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 22 | source_id | int | 是 | 否 | 来源ID | |
| 23 | user_id | int | 否 | 否 | 添加人 |
表 4-12-goods_type(商品类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | int | 是 | 是 | 商品分类ID | |
| 2 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 3 | name | varchar | 255 | 否 | 否 | 商品名称 |
| 4 | desc | varchar | 255 | 否 | 否 | 描述 |
| 5 | icon | varchar | 255 | 否 | 否 | 图标 |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-13-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-14-kettle_mall(水壶商城)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | kettle_mall_id | int | 是 | 是 | 水壶商城ID | |
| 2 | seasoning_clip | varchar | 64 | 否 | 否 | 调味夹 |
| 3 | hits | int | 是 | 否 | 点击数 | |
| 4 | collect_len | int | 是 | 否 | 收藏数 | |
| 5 | comment_len | int | 是 | 否 | 评论数 | |
| 6 | cart_title | varchar | 125 | 否 | 否 | 标题 |
| 7 | cart_img | text | 65535 | 否 | 否 | 封面图 |
| 8 | cart_description | varchar | 255 | 否 | 否 | 描述 |
| 9 | cart_price_ago | double | 是 | 否 | 原价 | |
| 10 | cart_price | double | 是 | 否 | 卖价 | |
| 11 | cart_inventory | int | 是 | 否 | 商品库存 | |
| 12 | cart_type | varchar | 64 | 是 | 否 | 商品分类 |
| 13 | cart_content | longtext | 4294967295 | 否 | 否 | 正文 |
| 14 | cart_img_1 | text | 65535 | 否 | 否 | 主图1 |
| 15 | cart_img_2 | text | 65535 | 否 | 否 | 主图2 |
| 16 | cart_img_3 | text | 65535 | 否 | 否 | 主图3 |
| 17 | cart_img_4 | text | 65535 | 否 | 否 | 主图4 |
| 18 | cart_img_5 | text | 65535 | 否 | 否 | 主图5 |
| 19 | create_time | datetime | 是 | 否 | 创建时间 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-logistics_delivery(物流配送)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | logistics_delivery_id | int | 是 | 是 | 物流配送ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
| 4 | purchase_quantity | varchar | 64 | 否 | 否 | 购买数量 |
| 5 | total_transaction_amount | double | 否 | 否 | 交易总额 | |
| 6 | the_date_of_issuance | date | 否 | 否 | 发货日期 | |
| 7 | delivery_number | varchar | 30 | 否 | 否 | 配送订单 |
| 8 | ordinary_users | int | 否 | 否 | 普通用户 | |
| 9 | shipping_address | varchar | 64 | 否 | 否 | 收货地址 |
| 10 | delivery_status | varchar | 64 | 否 | 否 | 配送状态 |
| 11 | signing_status | varchar | 64 | 否 | 否 | 签收状态 |
| 12 | recommend | int | 是 | 否 | 智能推荐 | |
| 13 | contact_name | varchar | 255 | 否 | 否 | 联系人名字 |
| 14 | merchant_id | int | 否 | 否 | 商家id | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-16-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-17-order(订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | order_id | int | 是 | 是 | 订单ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | goods_id | mediumint | 是 | 是 | 商品ID | |
| 4 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 5 | img | varchar | 255 | 否 | 否 | 商品图片 |
| 6 | price | double | 是 | 否 | 价格 | |
| 7 | price_ago | double | 是 | 否 | 原价 | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | price_count | double | 是 | 否 | 总价 | |
| 10 | norms | varchar | 255 | 否 | 否 | 规格 |
| 11 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 12 | contact_name | varchar | 32 | 否 | 否 | 联系人姓名 |
| 13 | contact_email | varchar | 125 | 否 | 否 | 联系人邮箱 |
| 14 | contact_phone | varchar | 11 | 否 | 否 | 联系人手机 |
| 15 | contact_address | varchar | 255 | 否 | 否 | 收件地址 |
| 16 | postal_code | varchar | 9 | 否 | 否 | 邮政编码 |
| 17 | user_id | int | 是 | 否 | 买家ID | |
| 18 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 19 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 21 | description | varchar | 255 | 否 | 否 | 描述 |
| 22 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 否 | 否 | 订单备注 |
| 24 | delivery_state | varchar | 16 | 否 | 否 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 否 | 否 | 折扣 |
表 4-18-order_after_sales_service(订单售后)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | order_after_sales_service_id | int | 是 | 是 | 订单售后ID | |
| 2 | user_account | int | 否 | 否 | 用户账号 | |
| 3 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 4 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 5 | after_sales_time | date | 否 | 否 | 售后时间 | |
| 6 | after_sales_type | varchar | 64 | 否 | 否 | 售后类型 |
| 7 | after_sales_pictures | varchar | 255 | 否 | 否 | 售后图片 |
| 8 | after_sales_details | text | 65535 | 否 | 否 | 售后详情 |
| 9 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 10 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 11 | create_time | datetime | 是 | 否 | 创建时间 | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-19-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 |
表 4-20-registered_user(注册用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | registered_user_id | int | 是 | 是 | 注册用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | user_phone_number | varchar | 16 | 否 | 否 | 用户电话 |
| 5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 6 | user_id | int | 是 | 否 | 用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-21-schedule(日程管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | schedule_id | smallint | 是 | 是 | 日程ID | |
| 2 | content | varchar | 255 | 否 | 否 | 日程内容 |
| 3 | scheduled_time | datetime | 否 | 否 | 计划时间 | |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | datetime | 否 | 否 | 创建时间 | |
| 6 | update_time | datetime | 否 | 否 | 更新时间 |
表 4-22-score(评分)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | score_id | int | 是 | 是 | 评分ID | |
| 2 | user_id | int | 是 | 否 | 评分人 | |
| 3 | nickname | varchar | 64 | 否 | 否 | 昵称 |
| 4 | score_num | double | 是 | 否 | 评分 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 9 | source_id | int | 是 | 否 | 来源ID |
表 4-23-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-25-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-26-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
管理员登录,管理员通过输入界面上显示的信息然后点击登录就能登录到系统进行系统的使用了,如下图所示。

图5-1管理员登录界面图
登录代码如下:
public function login()
{
if (Request::isPost()) {
$request = Request::param();
$result = $this->validate($request, $this->validate);
if (true !== $result) {
$data['error'] = 30000;
$data['message'] = $result;
} else {
$request['password'] = md5($request['password']);
$result = $this->model->login($request, $this->table);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
return json_encode($data);
}
public function login($request=[],$table_name = ''){
$username = $request['username'];
$password = $request['password'];
$bol = $this->where(['username'=>$username])->find();
if ($bol){
$password = md5($password);
if ($request['password']==$bol['password']) {
//添加token信息
$access_token['create_time'] = date('Y-m-d H:i:s');
$access_token['update_time'] = date('Y-m-d H:i:s');
$access_token['info'] = json_encode($bol);
// $access_token['info'] = $bol;
$access_token['token'] = md5(date('Y-m-d H:i:s'));
$bol_token = Db::name('AccessToken')->insert($access_token);
if ($bol_token){
$data['obj'] = $bol;
$data['obj']['token'] = $access_token['token'];
return ['result' => $data];
}else{
return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];
}
} else {
return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];
}
}else{
return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];
}
}
管理员登录进入基于微信小程序的冷水壶商城系统之后,就可以对所有的信息进行查看,可以查看后台首页、系统用户、取消订单管理、订单售后管理、轮播图管理、通知公告管理、资源管理(水壶资讯、资讯分类)、商城管理(水壶商城、分类列表、订单列表、订单配送)等,并且还可以对其进行相应的操作管理。在功能界面还可以对商品销售金额和商品销售数量进行统计分析。如下图所示。

图5-2管理员功能界面图
管理员点击“用户管理”菜单,管理员可以管理系统中的用户信息,支持用户的增删改查操作。界面如下图所示。

图5-3用户管理界面图
添加用户代码如下:
public function register()
{
if (Request::isPost()) {
$request = Request::param();
$request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
$result = $this->validate($request, $this->validate);
if (true !== $result) {
$data['error'] = 30000;
$data['message'] = $result;
} else {
$request['password'] = md5($request['password']);
$result = $this->model->register($request, $this->table);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
return json_encode($data);
}
public function register($request=[],$table_name = ''){
$username = $request['username'];
$bol = $this->where(['username'=>$username])->find();
if (!$bol){
$result = self::allowField(true)->save($request);
if ($result) {
return ['result' => 1];
} else {
return ['error' => ['code' => 3000, 'message' => '注册失败']];
}
}else{
return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];
}
}
通知公告管理,管理员可以管理通知公告的发布和更新,确保用户及时获取重要信息。界面如下图所示。

图5-4通知公告管理界面图
修改代码如下:
public function set()
{
if (Request::isPost()) {
$get = Request::get();
$where = [];
foreach($get as $k => $g){
if($k != 'page' && $k != 'size'){
$where[$k] = $g;
}
}
$request = Request::post();
if($this->table != 'user'){
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
}
$result = $this->validate($request, $this->validate);
if (true !== $result) {
$data['error'] = 30000;
$data['message'] = $result;
} else {
$result = $this->model->set($request, $this->table, $this->table_id, $where);
$data = $result;
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。

图5-5轮播图管理界面图
添加信息代码如下:
{
if (Request::isPost()) {
$request = Request::param();
$request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
$result = $this->validate($request, $this->validate);
if (true !== $result) {
// 验证失败 输出错误信息
$data['error'] = 30000;
$data['message'] = $result;
} else {
if($this->table == 'user'){
$request['password'] = md5($request['password']);
}
$res = $this->add_before($request, $this->table, $this->table_id);
if($res['code'] == 200){
$result = $this->model->add($request, $this->table, $this->table_id);
$this->add_after($this->table);
$data = $result;
}else{
$data['error'] = $res;
}
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
管理员点击“资讯管理”这一菜单的时候,会出现水壶资讯、资讯分类这两个子菜单,可以对这两个模块进行增删改查操作。资讯管理界面如下图所示。

图5-6资讯管理界面图
上传文件代码如下:
public function upload()
{
$month = date('Ym', time());
$data = 'file';
$path = 'upload/file/' . $month . "/";//上传文件保存位置
$allow_ext = explode(",", "jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP");
if ($_FILES) {
$file = $_FILES[$data];
$rst = [];
if (!empty($file['name'])) {
$file_type = explode('.', $file['name']);
$ext = end($file_type); //获取文件的格式
$ext = strtolower($ext);
if (!in_array($ext, $allow_ext)) {
$rst['error']['code'] = 30000;
$rst['message'] = '只能上传jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP类型文件';
} else {
if (!is_dir($path))
{
mkdir($path, 0777, true);
};
$name = date('YmdHis') . '_' . rand(10000, 99999) . '.' . $ext;
$save_rst = move_uploaded_file($file['tmp_name'], $path . $name);
if ($save_rst !== false) {
$rst['result']['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path . $name;
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '文件上传失败';
}
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未选择文件';
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未获取到文件';
}
return json_encode($rst);
}
管理员点击“商城管理”这一菜单的时候,会出现水壶商城、分类列表、订单列表、订单配送这四个子菜单。点击“水壶商城”,管理员可以管理水壶商城中的所有商品,包括添加商品、删除下架商品、编辑商品详情等。管理员还可以更新商品的价格、库存等信息。点击“分类列表”,管理员可以对商品进行分类管理,以便用户更方便地浏览和选择商品。点击“订单列表”,管理员可查看所有用户订单,了解订单状态、处理用户退款、退换货请求等。点击“订单配送”,管理员可以更新订单的配送状态,包括标记已发货、配送中、已送达等状态。点水壶商城界面如下图5-7所示。订单列表界面如下图5-8所示。

图5-7水壶商城界面图

图5-8订单列表界面图
删除数据代码如下:
public function del()
{
$request = Request::param();
$result = $this->model->del_data($request, $this->table, $this->table_id);
$data = $result;
return json_encode($data);
}
注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其注册主界面展示如下图所示。

图5-9注册界面图
用户注册完成后,点击“登陆”进入到登陆页面,输入用户名和密码,点击“登陆”按钮,对用户名和密码进行验证,根据传入的用户名和密码在数据库中是否能查询到一条用户信息,若不能返回用户信息则登陆失败,页面提示用户名或密码错误。如下图所示。

图5-10登录界面图
用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图所示。

图5-11密码修改界面图
修改密码代码如下:
public function change_password()
{
$accessTokenModel = new AccessTokenModel();
$token = Request::header('x-auth-token');
if (!empty($token)) {
$result = $accessTokenModel->getToken($token);
if (Request::isPost()) {
$get = Request::get();
$keys = array_keys($get);
$where = [];
if ($result) {
$where[] = ["user_id", '=', $result['user_id']];
$i = 0;
foreach ($get as $key => $val) {
$where[] = [$keys[$i], '=', $val];
$i++;
}
$request = Request::post();
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
$result = $this->validate($request, $this->validate);
$new_password['password'] = $request['password'];
if (true !== $result) {
$data['error'] = 30000;
$data['message'] = $result;
} else {
$result = $this->model->change_password($new_password, $this->table, $this->table_id, $where);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "token错误或失效,未查询到用户数据";
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
} else {
$data['error'] = 30000;
$data['message'] = "token的值不能为空!";
}
return json_encode($data);
}
用户点击首页“水壶商城”按钮,会进入产品展示列表,支持局部搜索、分类筛选,用户点击可查看商品详情,包括标题、价格、库存、图片、详细描述等,用户可以进行加入购物车、立即购买、评论、收藏、咨询客服等操作,点击“加入购物车”,用户可以将选中的商品添加到购物车,方便统一结算,并可在购物车中修改商品数量或删除商品。点击“立即购买”可以跳转到订单页面,用户可以选择支付。产品展示列表界面如下图5-12所示。商品详情界面如下图5-13所示。

图5-12产品展示列表界面图

图5-13商品详情界面图
当用户浏览到心仪的水壶商品时,可以将水壶商品添加至购物车内,查看购物车列表,修改或者删除购物车。我的购物车界面如下图所示。

图5-14购物车界面图
点击“我的”菜单按钮,点击“取消订单”,用户可以提交取消订单申请,并可以查看审核情况。取消订单详情界面如下图所示。

图5-15取消订单详情界面图
点击“我的”菜单按钮,点击“收货地址”,用户输入收货人、手机号及详细地址可以对收货地址进行添加。收货地址新增界面如下图所示。

图5-16收货地址新增界面图
用户点击首页“水壶资讯”按钮,可以浏览有关水壶产品的最新资讯,可以进行点赞、收藏、评论、分享资讯,促进互动。界面如下图所示。

图5-17水壶资讯界面图
在对该系统进行完详细设计和编码之后,就要对在线点餐系统小程序的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。
表6-1展示了一个系统登录功能的测试用例,它可以检测用户名和密码的输入,并且可以观察到系统的反应,从而证明这个功能已经达到了预期的效果。
表6-1 系统登录功能测试用例
| 功能描述 | 用于系统登录 | |
| 测试目的 | 检测登录时的合法性检查 | |
| 测试数据以及操作 | 预期结果 | 实际结果 |
| 输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
| 输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
| 输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
| 输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
表6-2提供了一个详细的注册功能测试用例,它可以有效地检测各种数据的输入,并且可以观察系统的反应,从而证明该功能已经达到了预期的目标。
表6-2 注册功能测试用例
| 功能描述 | 用于用户注册 | |
| 测试目的 | 检测用户注册时的合法性检查 | |
| 测试数据以及操作 | 预期结果 | 实际结果 |
| 输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
| 输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
| 输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
| 输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
通过使用表6-3的测试,我们可以看到,在进行水壶商城管理时,我们可以进行增、减、更新和查询等操作,并且这些操作都已经被成功地执行。通过观察系统的反馈,我们发现这项功能已经实现了我们的预期,并且运行良好。
前置条件;用户登录系统。
表6-3 水壶商城管理的测试用例
| 功能描述 | 用于水壶商城管理 | |
| 测试目的 | 检测水壶商城管理时的各种操作的运行情况 | |
| 测试数据以及操作 | 预期结果 | 实际结果 |
| 点击添加水壶商城,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
| 点击添加水壶商城,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
| 点击修改水壶商城,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
| 点击修改水壶商城,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
| 点击删除水壶商城,选择商品标题删除 | 提示删除成功 | 与预期结果一致 |
| 点击搜索水壶商城,输入存在的商品标题 | 查找出商品信息 | 与预期结果一致 |
| 点击搜索水壶商城,输入不存在的商品标题 | 不显示商品信息 | 与预期结果一致 |
系统评价是指在系统完成或改建后,根据预定的系统目标或现有成绩,从技术、经济、社会、功能等方面进行的评价或审核。本系统个人初步评价如下。
(1)系统功能评价:
根据需求分析以及测试结果来看,本系统已将达到了初期的需求目标,满足了用户对应需求。
(2)系统技术评价:
本系统设计略显繁杂,开发过程中对功能进行了一定的简化,运行时较为稳定,暂未发现安全问题。
(3)系统经济评价:
系统在低成本开发的基础上达到了设计要求。预计可以为用户节省一定的人力、物力。
结论
本文设计并实现了一个基于微信小程序的冷水壶商城系统,采用PHP和ThinkPHP框架开发,使用MySQL数据库进行数据存储。系统旨在为用户提供便捷、高效的在线购物体验,同时为管理员提供全面的后台管理工具,提升商城运营效率。
系统通过精心设计的用户功能和管理功能,满足了不同角色的需求。注册用户能够通过平台方便地浏览商品、下单购买、管理个人信息、查看订单及配送状态,提升了购物的便捷性和个性化体验。管理员则可以高效管理商品、用户、订单、资讯等内容,保证平台运营的顺畅和系统的稳定性。
本系统不仅简化了冷水壶商品的购买流程,还为商家提供了高效的商品信息管理和订单处理工具,推动了电商平台的数字化转型。通过本系统,用户能够享受更加个性化和便捷的服务,管理员也能更好地进行商城的运营管理和决策支持。
未来,系统可以根据用户需求和市场变化进一步拓展功能,提供更多元化的商品和服务,进一步提升用户体验并增强平台的竞争力。总的来说,本论文的研究和实现为基于微信小程序的电商平台开发提供了有益的实践经验,具有重要的应用价值和发展潜力。
参考文献
- Xue F ,Lin L ,Zheng W .Design of Recommendation Algorithm Based on Knowledge Graph[J].Journal of Physics: Conference Series,2023,2425(1):
- Peng Y ,Wang S.Research and design of online drug mall system based on SOA[J].International Journal of Biomedical Engineering and Technology,2023,42(1):64-77.
- 闫娇娇.基于Think PHP+Vue商城管理系统的设计与实现[J].电脑知识与技术,2023,19(34):59-62.DOI:10.14004/j.cnki.ckt.2023.1834.
- 陶良敬,陈鑫,王旭,等.基于Spring Cloud的安徽建工电子商城系统的设计与实现[J].自动化应用,2024,65(04):1-4.DOI:10.19769/j.zdhy.2024.04.001.
- 王培培.基于SpringBoot的网上商城管理系统设计与实现[J].现代计算机,2024,30(07):117-120.
- 文臻铭,吴钧皓.基于SSM框架的电力电缆附件电子商城系统设计与实现[J].工业控制计算机,2023,36(08):145-146+153.
- 向育程,段元梅.基于Java的网上商城系统[J].电脑编程技巧与维护,2024,(08):32-34.DOI:10.16184/j.cnki.comprg.2024.08.013.
- 谭彦.基于Django的农产品电子商城系统设计与实现[J].现代信息科技,2024,8(10):92-95.DOI:10.19850/j.cnki.2096-4706.2024.10.019.
- 朴明,于湘菲.基于SSM框架技术的线上工艺品商城设计与实现[J].造纸装备及材料,2024,53(02):85-87.
- 潘涛,王柳,董冉冉.基于Vue.js框架的网上商城管理系统的设计与实现[J].科技与创新,2023,(13):8-10.DOI:10.15913/j.cnki.kjycx.2023.13.003.
- 褚天仁,吕继方.基于微服务的无人艇商城系统设计与实现[J].电脑编程技巧与维护,2022,(11):65-67+146.DOI:10.16184/j.cnki.comprg.2022.11.006.
- 李亚君.基于ASP.NET的美食商城后台管理系统设计与实现[J].机电信息,2022,(16):29-33.DOI:10.19514/j.cnki.cn32-1628/tm.2022.16.008.
- 陈小燕,朱映辉,余晓春.基于SpringBoot+Vue的好农物商城的设计与实现[J].电脑知识与技术,2022,18(22):37-39.DOI:10.14004/j.cnki.ckt.2022.1535.
- 任建新,王一鸣,李鑫,等.基于Java Web的智慧商城购物系统设计[J].信息技术与信息化,2022,(07):23-27.
- 杨晟,罗奇.基于Spring Boot的在线商城系统设计[J].科技创新与应用,2022,12(19):58-61.DOI:10.19981/j.CN23-1581/G3.2022.19.013.
- 杜雨荃,王晓菊,田立勤.基于微信小程序的网上购物系统的设计与实现[J].网络安全技术与应用,2022,(04):60-62.
- 熊晓莉,马越.基于WAMP架构的微商城网站的设计与实现[J].信息记录材料,2021,22(12):180-182.DOI:10.16009/j.cnki.cn13-1295/tq.2021.12.002.
- 董汉磊,聂雅琳,胡奎强,等.基于Django框架的美多商城系统设计与实现[J].长江信息通信,2021,34(04):125-127.
- 马静.基于微信小程序的购物商城系统的设计与实现[J].微型电脑应用,2021,37(03):31-34.
- Cai Z ,Liu Y ,Gan Y , et al.Design and Implementation of Online Mall System based on Java Web[J].International Journal of Performability Engineering,2019,15(12):3237-3244.
致 谢
在这3个月的毕业设计过程中,指导教师的指导发挥了至关重要的作用,他们的认真负责的工作态度、谨慎的教学精神以及丰富的理论知识,为我的设计提供了强有力的支持,使得整个过程顺利进行。她的教学方式非常认真,让我印象深刻。我从她那里学到了很多知识,并在实践中不断提升。我对这位老师表示由衷的感谢。
经过对毕业设计的全面研究和开发,我的系统取得了重大突破,从需求分析到实现复杂功能,再到最终的测试和维护,使我对系统有了更加深刻的理解。此外,我还在实践中不断提升自己的技能,解决复杂问题,这是这次毕业设计最大的收获。
最终,在整个系统开发的过程中,我的同学和朋友们给予了我极大的帮助,他们的建议让我能够迅速地确定系统的商业理念。因此,我深深地感谢他们的支持。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
3227

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



