蛋糕美食城系统--毕设附源码80950

摘  要

随着互联网技术的迅速发展,电子商务已经成为现代商业的重要组成部分。在这个背景下,设计了基于PHP的蛋糕美食城系统,旨在为用户提供便捷的蛋糕购买体验,并为商家和管理员提供高效的后台管理平台。本系统的设计与实现涉及普通用户、商家用户和管理员三种不同角色,分别通过不同的功能模块满足各自的需求。

对于普通用户,本系统提供了包括首页、公告通知、新闻资讯、蛋糕商城、商城管理(购物车、订单管理)、个人中心等功能,用户可以轻松浏览、选择和购买心仪的蛋糕,并管理个人信息和订单。商家用户可以通过后台管理系统,管理商品、分类、订单及售后服务,提升经营效率。管理员则通过后台系统对用户、商家、商品、订单及平台内容进行全面管理,包括轮播图、公告通知、资讯分类等内容的发布与维护。

本系统采用PHP语言开发,结合MySQL数据库,实现了一个高效、安全、易于扩展的电子商务平台。系统设计遵循模块化、功能化的原则,各个功能模块清晰划分,操作简便,用户体验良好。通过本系统的实现,能够为蛋糕行业的电子商务提供一个完整的解决方案,同时为未来类似的电子商务系统设计提供参考。

关键词:蛋糕美食城;PHP语言;订单管理;MySQL

Abstract

With the rapid development of Internet technology, e-commerce has become an important part of modern commerce. In this context, a PHP based cake food city system was designed to provide users with a convenient cake purchasing experience and an efficient backend management platform for merchants and administrators. The design and implementation of this system involve three different roles: ordinary users, business users, and administrators, each meeting their respective needs through different functional modules.

For ordinary users, this system provides functions including homepage, announcement notifications, news and information, cake mall, mall management (shopping cart, order management), personal center, etc. Users can easily browse, select and purchase their favorite cakes, and manage personal information and orders. Merchant users can manage products, categories, orders, and after-sales services through the backend management system to improve business efficiency. Administrators comprehensively manage users, merchants, products, orders, and platform content through the backend system, including the publication and maintenance of carousel images, announcement notifications, information classification, and other content.

This system is developed using PHP language and combined with MySQL database to achieve an efficient, secure, and easily scalable e-commerce platform. The system design follows the principles of modularity and functionality, with clear division of each functional module, easy operation, and a good user experience. Through the implementation of this system, a complete solution can be provided for e-commerce in the cake industry, and reference can be provided for the design of similar e-commerce systems in the future.

Keywords:Cake and Food City; PHP language; Order management; MySQL

目  录

1 前  言

1.1 选题背景和意义

1.2 国内外研究现状

1.3 论文结构与章节安排

2 关键技术

2.1 HTTP协议

2.2 B/S结构

2.3 PHP脚本语言

2.4 Mysql数据库

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 功能需求分析

3.3 系统性能分析

3.4 系统流程分析

3.4.1 登录流程

3.4.2 注册流程

3.4.3 添加信息流程

3.4.4 删除信息流程

3.4.5 业务流程图

4 系统设计

4.1 系统架构设计

4.1.2 功能模块设计

4.2 数据库设计

4.2.1 E-R图

4.2.2 数据库表结构设计

5 系统实现

5.1 普通用户模块

5.1.1 用户登录界面

5.1.2 用户注册界面

5.1.3 新闻资讯界面

5.1.4 蛋糕商城界面

5.1.5 商城管理界面

5.1. 收藏界面

5.2 商家用户模块

5.2.1 商城管理界面

5.3 后台管理员模块

5.3.1 系统用户界面

5.3.2 系统管理界面

5.3. 通知公告管理界面

5.3.4 资源管理界面

6 系统测试

6.1 测试目的

6.2 测试概述

6.3 单元测试

6.3.1 登录测试

6.3.2 商品管理测试

6.4 集成测试

7 结束语

参考文献

致  谢

1   

1.1选题背景和意义

随着互联网技术的快速发展和电子商务的广泛普及,传统零售行业逐渐向线上转型,电子商务平台成为现代商业的重要组成部分。尤其是在食品行业,随着消费者购买习惯的变化和生活方式的转变,线上食品购物市场的需求不断增长,成为一个充满潜力和竞争的领域。蛋糕作为一种传统的美食,具有广泛的市场需求和独特的消费群体,尤其是在生日、节庆等特殊时刻,蛋糕消费需求尤为旺盛。然而,蛋糕行业在传统的线下销售模式中存在着许多局限,如地域限制、信息不对称、价格透明度低等问题,亟需借助现代信息技术来解决。

PHP作为一种开源、灵活且高效的开发语言,广泛应用于电子商务平台的构建中。基于PHP的系统能够帮助商家和用户实现在线浏览、购买、管理订单等功能,同时,PHP的开发效率和系统稳定性使得开发者能够在较短时间内开发出高效且易于维护的系统。在这种背景下,设计并实现一个基于PHP的蛋糕美食城系统,既能够为消费者提供便捷的线上购物平台,又能够为商家提供高效的后台管理工具,有助于解决传统蛋糕销售模式中的问题,推动蛋糕行业的线上转型。

本研究的意义在于通过对基于PHP的蛋糕美食城系统的设计与实现,探索电子商务在垂直行业中的应用,尤其是在蛋糕等食品类商品的线上销售中如何实现高效的商品管理、订单处理、售后服务等功能。同时,该系统通过模块化设计、用户友好界面、强大的后台管理功能等特点,能够提升用户体验并优化商家的运营效率。该研究不仅为蛋糕行业提供了一个切实可行的电商平台解决方案,也为未来其他垂直电商平台的开发提供了有价值的参考与借鉴。

1.2国内外研究现状

随着电子商务的快速发展,尤其是食品行业的线上购物需求不断增长,越来越多的电子商务系统应运而生,其中基于PHP的系统由于其开发简便、性能高效而广泛应用。在国内外的研究中,基于PHP的电子商务平台系统,尤其是面向特定行业如蛋糕、美食等垂直电商平台的设计与实现,已经成为研究的热点。

国外在电子商务系统的研究领域,早期主要集中在通用型平台的开发,诸如Amazon、eBay等大型平台的架构设计和系统优化,这些平台虽然在商品种类和服务上十分广泛,但在垂直行业的细分领域如食品、蛋糕等却较少涉及。随着市场对定制化、个性化产品需求的增加,国外一些小型平台开始聚焦于垂直电商的开发。PHP作为一种灵活的开发语言,因其开源、高效和成本低廉,在开发过程中得到了广泛使用。研究者们主要探讨如何结合PHP与MySQL、JavaScript等技术,构建高效的购物车系统、订单管理系统和支付结算系统,并在此基础上提升用户体验,优化网站性能。

在国内,随着互联网行业的迅速发展,基于PHP的电商系统的研究逐渐增多,许多电商平台的设计和实现都依赖PHP的强大功能。国内一些大学和研究机构已经对电商平台的构建和优化进行了较为深入的探讨,尤其是在如何将传统的食品行业与电商结合方面,已有不少成功案例。国内的研究多聚焦于如何通过系统的后台管理功能,提升商家的运营效率和订单处理能力,同时也着重研究如何在平台上设计合适的用户交互界面,以提高消费者的购买体验。此外,国内研究还注重如何利用PHP进行数据安全管理,包括支付系统的安全性、用户隐私保护等问题,尤其是在涉及在线支付时,如何确保交易安全是关键问题。

总体来看,国内外的研究方向较为一致,都在关注如何通过PHP和相关技术优化电子商务平台的功能和性能,提升用户体验与商家的运营效率。然而,具体到蛋糕美食城这样一个特定的行业,尽管有一些成功的案例,但针对这一领域的深度研究相对较少。因此,基于PHP的蛋糕美食城系统的设计与实现不仅具备较大的实际意义,也为未来垂直电商平台的发展提供了更多研究空间。

1.3论文结构与章节安排

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

第一章:引言,主要介绍蛋糕美食城系统领域研究的背景和意义,概述国内外研究的现状。

第二章:关键技术,主要探讨和说明实现蛋糕美食城系统的关键技术。

第三章:系统分析,主要从蛋糕美食城系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对蛋糕美食城系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了蛋糕美食城系统功能、系统界面的实现。

第六章:系统测试,主要对蛋糕美食城系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:结束语。总结全文研究内容,提出对蛋糕美食城系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。

2  关键技术

2.1HTTP协议

超文本传输协议(HTTP)作为协作式与分布式的通信协议,其以万维网交换信息作为前提条件。HTTP为IEIF的国际化标准指标,在制定相关标准与实现内,W3C积极参与其中,同时发挥着不可替代的作用。其能够借助超文本标记语言,将文档在服务器与浏览器之间相互传输。HTML作为构架文档的标记语言,这些文档内将包括有关信息的链接,用户仅需要点击其中一个链接就能够访问多媒体对象与图像,同时获得该链接项所具有的附加信息。

2.2B/S结构

在系统的开发上采用了B/S结构,在B/S结构中,统一采用浏览器,而不需要去开发任何的用户界面,Web浏览器向处理它的Web服务器发送请求,并一步一步地将处理结果返回给客户端。B/S结构主要采用了各种脚本语言和ActiveX技术,降低了系统的开发难度并简化了系统维护以及使用。

B/S结构有如下特点:B/S结构建立在广域网上,不需要专门为其配置硬件环境,比C/S结构的适应范围更强;由于其基于广域网,所以其对安全的控制能力相对较弱;B/S的多种结构要求构造相对独立的函数,这样才能可以更好地重用;B/S结构组成简单,便于对个别构件进行更换,降低了系统的维护成本B/S信息流向与C/S不同,B/S信息流向可变化。

2.3PHP脚本语言

PHP是在94年由Rasmus Lerdorf创建的一款程序设计语言,其能够在多个平台内应用,具有良好兼容性,进而其凭借自身优势在数据中心、个人PC与科技超级计算机等平台内广泛应用,具有目前最为庞大的开发者专业社群。

PHP可以放在在html里使用,也可以独自使用,它同时也具备有很多种优点,可以讲,Web脚本技术的先驱是PHP。现代编程语言(像C,Java和Perl等)的一些最好的特点都融合在PHP里,Web服务器里的一些配置标准是由PHP、Apache和数据库等的组合在一起的。

2.4Mysql数据库

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

本系统最终选择Mysql数据库的主要原因在于系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对蛋糕美食城系统后台数据进行存储操作。

3  系统分析

3.1可行性分析

3.1.1技术可行性

技术性方面,采用当前主流的PHP技术进行系统主体框架的搭建,前台使用jquery,ajax,实现前台页面的设计与美观调整,以上技术,均由本人经过系统学习,并且都是在课程设计中实践过的,可以使得开发更加便捷和系统。从技术角度看,这个系统是完全可以实现的。

3.1.2经济可行性

整个系统从设计到开发以及测试过程严谨步骤齐全,所有工作任务全部由本人完成,并未获取外部技术支持,节约了一切服务成本开销以及人工成本,在硬件方面,为节约成本使用一台二手移动工作站作为项目部署服务器以及数据库服务器,成本在一万元一下,真个网络部署也是由本人独立完成不涉及到其他人工费用,整个开发过程本着低成本,低消耗的原则。

3.1.3操作可行性

蛋糕美食城系统的使用界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,用户只要平时使用过电脑都能进行访问操作。此系统的开发采用PHP技术开发,人性化和完善化是B/S结构开发比较显要的特点使得用户操作相比较其他更加简洁方便。易操作、易管理、交互性好在本系统操作上体现得淋漓尽致。

从技术、经济和操作三个维度来看,蛋糕美食城系统的开发均具备高度的可行性。

3.2功能需求分析

(一)普通用户角色用例如下图所示。

图3.1普通用户用例图

普通用户具体功能说明如下所示。

首页:展示平台动态,便于用户快速浏览和进入其他功能模块。

公告通知:显示平台公告、活动信息和系统维护通知。

新闻资讯:提供蛋糕、美食行业的新闻和健康建议,帮助用户获取最新资讯。

蛋糕商城:展示各种蛋糕商品,支持按类别浏览、搜索和查看详细信息,用户可以选择商品加入购物车。

商城管理:

我的购物车:查看和管理购物车商品。

我的订单:查看历史订单,支持订单状态查询和退款操作。

我的账户:管理个人资料、密码等信息。

个人中心:

个人首页:展示用户基本信息和最近活动。

收藏:管理用户收藏的商品。

评论管理:查看和管理用户对购买商品的评论。

(二)商家用户角色用例如下图所示。

图3.2商家用户用例图

商家用户具体功能说明如下所示。

后台首页:商家用户登录后进入的首页,通常展示平台的基本统计信息。

商城管理:

蛋糕商城:商家可以在此模块管理自己的商品,进行商品的新增、编辑、删除等操作。每个商品包括蛋糕的名称、价格、描述、库存量、图片等信息。

分类列表:商家可以管理商品的分类,方便顾客浏览。支持添加、删除和修改商品分类,确保商城商品分类清晰,便于用户找到所需商品。

订单列表:展示商家所有的订单信息,商家可以查看订单的详细信息(如商品、数量、用户信息等),并根据订单状态进行处理,如发货、取消订单等。

订单售后:商家可以查看和处理售后请求,包括退款、退货、换货等操作。商家需要根据平台政策和用户请求及时解决售后问题,保证用户满意度。

(三)管理员角色用例如下图所示。

图3.3管理员用例图

系统后台管理端管理员具体功能说明如下所示。

 后台首页:后台首页展示系统的概览信息,帮助管理员了解系统的当前状态和运营情况。

系统用户:该模块允许管理员管理平台上的所有用户,包括普通用户、商家用户等。管理员可以查看用户的基本信息、管理用户的权限,执行禁用、删除用户等操作,确保平台的用户管理规范。

系统管理:轮播图管理:管理员可以上传和编辑首页展示的轮播图,方便更新平台的促销活动、热点商品或重要信息,提升平台的视觉吸引力。

公告通知管理:管理员可以发布和管理平台公告,通知用户关于系统的更新、节日活动、促销等重要信息,确保所有用户获取到最新通知。

资源管理:新闻资讯管理:管理员可以管理平台的新闻内容,包括发布新的新闻、编辑已有新闻和删除不需要的新闻,以保证平台内容的更新与丰富。

资讯分类管理:管理员可以对新闻资讯进行分类管理,帮助用户更方便地找到感兴趣的内容。可以新增、删除或编辑资讯分类。

商城管理

蛋糕商城:管理员可以管理平台上的所有商品,包括审核商家发布的商品、设置商品的显示状态(上架/下架)、编辑商品信息等。

分类列表:管理员可以管理商品的分类,包括创建新的分类、删除和修改现有分类,以帮助商品更好地归类。

订单列表:管理员可以查看所有订单,管理订单的状态,包括标记订单已完成、已发货等,并处理平台上发生的异常订单。

订单售后:管理员可以处理与商家、用户之间的售后问题,如退款、退货等,确保平台秩序和用户满意度。

权限管理:该模块用于管理员对系统中的不同用户角色和权限进行管理。管理员可以分配不同的权限,控制用户在系统中能访问和操作的功能模块,确保系统的安全性和规范性。

3.3系统性能分析

对于蛋糕美食城系统的设计与实现,下面是系统性能分析表:

表3.1性能需求表

项目

内容

响应时间

系统对用户请求的响应时间需在500ms以内

并发用户数

系统需要支持1000个并发用户同时访问

吞吐量

系统每秒需要处理1000个请求

可用性

系统需要保证每月99.9%的可用性

数据安全

用户敏感数据需要加密存储,并支持数据库备份和恢复

数据一致性

系统中的数据操作需保证ACID特性,确保数据一致性

扩展性

系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量

可维护性

系统代码需要清晰易懂、结构良好,方便维护和修改

日志记录

系统需要记录用户操作日志、异常日志以及系统运行日志

监控报警

系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员

缓存设置

针对频繁使用的数据,系统需要进行合适的缓

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.7删除信息流程图

3.4.5业务流程图

业务流程图既反映了内部业务间的相互联系。蛋糕美食城系统须支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对信息自身特点和面临的现实条件,对系统进行业务流程图设计。系统通过流程的顺畅和高效,实现了需求的满足和系统管理的便捷,提升了系统的运行效率和用户体验。蛋糕美食城系统的业务流程如下图所示。

用户购买蛋糕业务流程如下图3.8所示。

图3.8用户购买蛋糕业务流程图

4  系统设计

4.1系统架构设计

蛋糕美食城系统采用三层开发设计模式,分为:用户界面层,业务逻辑层和数据访问层。用户界面层用来和用户交互,业务逻辑层负责业务的处理和各层之间的数据的传递;数据访问层负责对数据库的访问和检索。

系统的架构图如下图所示。

图4.1系统架构图

系统各层之间的调用过程如下:

(1)用户通过用户界面层访问系统,向系统提交请求,界面层对请求进行初步的处理和包装,并判断是否要与业务逻辑层进行交互。

(2)业务逻辑层接收来自界面层的请求,对请求进行数据处理。然后调用数据访问层来实现数据库访问,数据访问层访问数据库,将数据读出并返回给逻辑层。

(3)逻辑层将处理的结果,返回给界面层。界面层加以处理呈现给用户。

4.1.2功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。蛋糕美食城系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统功能结构图

4.2数据库设计

4.2.1E-R

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本蛋糕美食城系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3总E-R图

4.2.2数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

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

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

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

3

type

varchar

64

0

N

N

0

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

4

hits

int

10

0

N

N

0

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

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

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

9

url

varchar

255

0

Y

N

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

10

tag

varchar

255

0

Y

N

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

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

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

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

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

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

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

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

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

更新时间:

表cake_mall (蛋糕商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

cake_mall_id

int

10

0

N

Y

蛋糕商城ID

2

merchant_users

int

10

0

Y

N

0

商家用户

3

merchant_name

varchar

64

0

Y

N

商家名称

4

merchant_address

varchar

64

0

Y

N

商家地址

5

product_specifications

varchar

64

0

Y

N

商品规格

6

collect_len

int

10

0

N

N

0

收藏数

7

comment_len

int

10

0

N

N

0

评论数

8

cart_title

varchar

125

0

Y

N

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

9

cart_img

text

65535

0

Y

N

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

10

cart_description

varchar

255

0

Y

N

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

11

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

12

cart_price

double

8

2

N

N

0.00

卖价:[1]

13

cart_inventory

int

10

0

N

N

0

商品库存

14

cart_type

varchar

64

0

N

N

未分类

商品分类:

15

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

16

cart_img_1

text

65535

0

Y

N

主图1:

17

cart_img_2

text

65535

0

Y

N

主图2:

18

cart_img_3

text

65535

0

Y

N

主图3:

19

cart_img_4

text

65535

0

Y

N

主图4:

20

cart_img_5

text

65535

0

Y

N

主图5:

21

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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]用于产品规格描述

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

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

3

img

text

65535

0

Y

N

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

4

description

varchar

255

0

Y

N

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

5

price_ago

double

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

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

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表goods_type (商品类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表merchant_users (商家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

merchant_users_id

int

10

0

N

Y

商家用户ID

2

merchant_name

varchar

64

0

Y

N

商家名称

3

merchant_address

varchar

64

0

Y

N

商家地址

4

contact_information

varchar

16

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

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

255

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

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

22

state

varchar

16

0

N

N

待付款

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

23

remark

text

65535

0

Y

N

订单备注

24

delivery_state

varchar

16

0

Y

N

未配送

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

25

vip_discount

double

11

2

Y

N

0.00

折扣

表order_after_sale (订单售后)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_after_sale_id

int

10

0

N

Y

订单售后id

2

order_id

int

10

0

N

N

订单ID

3

order_number

varchar

64

0

Y

N

订单号

4

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

5

title

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

user_id

int

10

0

N

N

0

买家ID

11

merchant_id

mediumint

8

0

N

N

0

商家ID

12

state

varchar

16

0

N

N

待付款

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

13

after_state

varchar

16

0

Y

N

未审核

售后状态:未审核,未通过,已通过

14

after_state_reply

varchar

255

0

Y

N

售后回复

15

type

varchar

255

0

Y

N

售后类型

16

content_desc

varchar

255

0

Y

N

售后内容

17

imgs

varchar

1000

0

Y

N

售后凭证

18

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

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

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

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

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

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

email

varchar

64

0

Y

N

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

11

email_state

smallint

5

0

N

N

0

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

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

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

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

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

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5  系统实现

5.1普通用户模块

5.1.1用户登录界面

用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图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.1.2用户注册界面

用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图5.2用户注册界面设计

注册的关键代码如下:

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.1.3新闻资讯界面

该模块提供与蛋糕、美食等相关的新闻资讯,帮助用户了解行业发展趋势、健康食物建议、节日特供蛋糕等内容。新闻资讯通常也有搜索功能,用户可以根据兴趣查找相关内容。

新闻资讯主界面图如下所示。

图5.3新闻资讯主界面设计

5.1.4蛋糕商城界面

用户可以方便地浏览并购买各种蛋糕及相关产品。商城内的商品通过蛋糕类型、口味、尺寸等多种分类进行展示,帮助用户快速找到心仪的商品。同时,用户还可以通过关键字搜索功能,快速定位自己感兴趣的蛋糕。每款商品都提供详细的介绍,包括价格、尺寸、材料、用户评价等信息,确保用户在购买前能全面了解产品。用户选择商品后,可以将其加入购物车,方便后续结算,提升购物体验的便捷性和流畅性。

蛋糕商城主界面图如下所示。

图5.4蛋糕商城主界面设计

5.1.5商城管理界面

商城管理模块提供了“我的购物车”和“我的订单”两个重要功能。用户可以在“我的购物车”中查看和管理已选的商品,随时调整商品数量或删除不需要的商品,以便在结算时做出最合适的选择。在“我的订单”中,用户可以查看历史订单的详细信息,跟踪订单的处理状态,如待付款、待发货、已完成等,并且可以进行退款操作,确保在购物过程中获得良好的售后服务体验。

我的购物车主界面图如下所示。

图5.5我的购物车主界面设计

我的订单主界面图如下所示。

图5.6我的订单主界面设计

5.1.6收藏界面

用户可以收藏喜欢的蛋糕,以便以后快速查找和再次订购。

收藏主界面图如下所示。

图5.7收藏主界面设计

5.2商家用户模块

5.2.1商城管理界面

在“蛋糕商城”模块中,商家可以管理自己的商品,包括新增、编辑和删除商品,商品信息涵盖名称、价格、描述、库存量、图片等,确保商品展示的准确性和完整性。在“分类列表”中,商家可以方便地管理商品分类,支持添加、删除和修改分类,帮助顾客快速找到所需商品。“订单列表”展示商家的所有订单,商家可以查看订单的详细信息并根据订单状态进行处理,如发货、取消订单等。通过“订单售后”模块,商家可以处理用户的售后请求,如退款、退货和换货等,确保根据平台政策及时解决问题,提升用户的购物体验和满意度。

蛋糕商城主界面图如下所示。

图5.8蛋糕商城界面设计

分类列表主界面图如下所示。

图5.9分类列表界面设计

订单列表主界面图如下所示。

图5.10订单列表界面设计

订单售后主界面图如下所示。

图5.11订单售后界面设计

5.3后台管理员模块

5.3.1系统用户界面

管理员可对普通用户、商家用户和管理员等用户信息进行管控,包括进行增删改查操作,可点击详情进行查阅。

系统用户主界面图如下所示。

图5.12系统用户界面设计

添加用户的关键代码如下:

public function add()

    {

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

    }

删除的关键代码如下:

public function del()

    {

        $request = Request::param();

        $result = $this->model->del_data($request, $this->table, $this->table_id);

        $data = $result;

        return json_encode($data);

    }

5.3.2系统管理界面

管理员可以对轮播图进行管理,包括添加、修改、删除轮播图,设置轮播图属性等。

系统管理界面如下所示。

图5.13系统管理界面设计

轮播图上传的关键代码如下:

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.3.3通知公告管理界面

管理员可以发布公告信息,所有用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。

通知公告管理界面如下所示。

图5.14通知公告管理界面设计

5.3.4资源管理界面

管理员可以管理平台的新闻内容,包括发布新的新闻、编辑已有新闻和删除不需要的新闻,以保证平台内容的更新与丰富。管理员还可以对新闻资讯进行分类管理,帮助用户更方便地找到感兴趣的内容。可以新增、删除或编辑资讯分类。

资源管理界面如下所示。

图5.15资源管理详情界面设计

6  系统测试

6.1测试目的

该系统能够完成各项功能,做到所开发的系统操作简单,符合系统开放性要求,该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接。

6.2测试概述

根据系统测试目的并结合面向对象的测试方法,给出如下系统测试方案:

1、尽可能早的、并且不断地进行系统测试。因为错误发现的越早,修正它所付出的代价以及费用就会越小。

2、设计本测试用例时,应该给出测试的预期结果。一个合理的测试用例由两部分组成:主要有测试用的输入数据和该输入数据所期望的系统运行结果。

3、在设计本测试用例时,不仅需要有合法的输入测试用例,还应该要有非法的输入测试用例。因为,因为在系统的实际使用过程中,通常由于各种原因,用户往往会使用一些非法的输入测试用例来进行测试。测试用例为了测试系统的正确性和完整性,本节将对系统中重点模块的测试进行介绍。

6.3单元测试

6.3.1登录测试

表6-1登录测试用例

测试项

首页登录功能测试

输入数据

1、输入正确的用户名和密码,单击“登录”按钮

2、输入错误的用户名和密码,单击“登录”按钮

3、不输入用户名和密码,单击“登录”按钮

预计输出数据

1、数据库中存在的用户能正确登录,。结果弹出主界面。

2、错误的或者无效用户登录,登录系统失败。

3、输入用户名或密码信息为空,登录系统失败。

使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入正确的用户名和密码时候,系统将弹出登录成功信息提示对话框。

使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入错误的或无效的用户名时,系统将弹出错误信息提示对话框。

通过测试可以观察到实现的运行结果与测试用例中预计输出的结果是相符的,所以测试通过。

6.3.2商品管理测试

商品管理进行测试 。

名称:用户管理测试。        目的:测试商品管理界面 。

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了商品表中目前所存在的记录。

表6-2商品表预存数据

    商品名

商品类别

商品价格

商品状态

A

A

389

上架

B

B

249

上架

C

C

322

下架

D

D

168

上架

添加时应注意事项:

管理员添加商品时必须添加已存在的商品类别,若该商品不属于现有的所有类别,则应该先添加商品类别。

下表描述了添加商品进行测试的用例,主要是为了防止添加商品时出现异常和存在的漏洞。

表6-3添加商品测试用例

输入

输出

商品名

商品价格

商品图片

   空

参数错误

参数错误

请选择上传图片

A

1

a.jpg

添加成功

购买商品测试 

名称:购买商品测试。        目的:测试购买商品界面。 

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了购买商品的测试用例,防止购买时出错。

表6-4购买商品测试用例

输入

输出

用户ID

商品ID

商品数量

11

1

1

购买商品成功

22

商品

请填写商品数量

33

商品

a

购买失败

用户购买商品时,首先判断商品数量是否小于库存,若超出库存数量,则提示商品数量不足。

6.4集成测试

集成测试的方案主要如下所述:

1.将系统移植到另一台计算机上,运行出错。修改配置信息后运行成功。

2.用户信息管理模块综合测试,添加新用户roess,为其分配一般管理员角色,查看一般管理员角色权限,保存设置,以roess身份登录,查看所拥有权限。

3.最后按照蛋糕美食城系统的设计与实现,以不同角色的身份进入系统,对系统各模块功能进行测试,测试模块间逻辑功是否有误。

经过测试,本系统可以满足蛋糕美食城系统流程的基本工作流程和基本要求。

7  结束语

经过一段时间的深入研究和开发,成功地完成了这个蛋糕美食城系统的设计和实现。在这个过程中,我不仅加深了对PHP编程技术的理解,还学会了如何将理论知识应用到实际项目中,提升了自己的实践能力和问题解决能力。

这个项目让我更加熟悉和掌握了PHP编程语言的核心特性和优势。通过实现网站的各项功能,我深入理解了PHP在服务器端处理数据、与数据库交互以及构建动态网页方面的强大功能。

这个项目也锻炼了我的网站设计能力。在设计过程中,我充分考虑了用户需求和体验,力求打造一个简洁、易用且功能全面的系统。通过不断地优化和改进,我逐渐提高了自己在系统设计方面的水平。

这个项目还让我学会了如何有效地寻求帮助和解决问题。在开发过程中,我遇到了许多技术难题和挑战,但通过向老师和同行请教、查阅专业资料和参与在线讨论,我成功地克服了这些困难,积累了宝贵的经验。

最后,这个项目让我更加明白了理论知识与实践相结合的重要性。只有将所学知识应用到实际项目中,才能真正理解和掌握其精髓。通过这个项目的开发,我不仅提高了自己的编程技能,还学会了如何将理论知识转化为实际应用。

总的来说,这个蛋糕美食城系统项目让我收获颇丰。我不仅提高了自己的编程技能和系统设计能力,还学会了如何有效地解决问题和将理论知识与实践相结合。未来,我将继续努力学习和实践,不断提升自己的综合素质和能力水平。

参考文献

[1]向育程,段元梅.基于Java的网上商城系统[J].电脑编程技巧与维护,2024,(08):32-34.DOI:10.16184/j.cnki.comprg.2024.08.013.

[2]马标.基于推荐算法的助农商城系统设计与实现[D].华东师范大学,2024.

[3]王培培.基于SpringBoot的网上商城管理系统设计与实现[J].现代计算机,2024,30(07):117-120.

[4]闫娇娇.基于Think PHP+Vue商城管理系统的设计与实现[J].电脑知识与技术,2023,19(34):59-62.DOI:10.14004/j.cnki.ckt.2023.1834.

[5]Yuxin* H ,Bringula R.Design and Implementation of the Heartful Education System Platform Based on PHP[J].International Journal of Information and Education Technology,2023,13(12):

[6]李倞,友拓商城系统.山西省,山西黄河智创科技有限公司,2023-11-14.

[7]潘涛,王柳,董冉冉.基于Vue.js框架的网上商城管理系统的设计与实现[J].科技与创新,2023,(13):8-10.DOI:10.15913/j.cnki.kjycx.2023.13.003.

[8]Yin Z ,Lee J U S .Security Analysis of Web Open-Source Projects Based on Java and PHP[J].Electronics,2023,12(12):

[9]韩本东.基于DeepFM的直播商城系统设计与实现[D].北京交通大学,2023.DOI:10.26944/d.cnki.gbfju.2023.003274.

[10]赵永师,VDTS多商户商城系统.山西省,运城市恩光科技有限公司,2023-06-01.

[11]Américo R ,Fernando A E B .PHP code smells in web apps: Evolution, survival and anomalies[J].The Journal of Systems & Software,2023,200

[12]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.

[13]李亚君.基于SSM框架的B2C电子商城系统的设计与实现[D].合肥工业大学,2022.DOI:10.27101/d.cnki.ghfgu.2022.000313.

[14]李亚君.基于ASP.NET的美食商城后台管理系统设计与实现[J].机电信息,2022,(16):29-33.DOI:10.19514/j.cnki.cn32-1628/tm.2022.16.008.

[15]陈小燕,朱映辉,余晓春.基于SpringBoot+Vue的好农物商城的设计与实现[J].电脑知识与技术,2022,18(22):37-39.DOI:10.14004/j.cnki.ckt.2022.1535.

[16]任建新,王一鸣,李鑫,等.基于Java Web的智慧商城购物系统设计[J].信息技术与信息化,2022,(07):23-27.

[17]朱琨日.高性能智能商城系统架构设计与实现[D].桂林电子科技大学,2022.DOI:10.27049/d.cnki.ggldc.2022.000395.

[18]蔡旺.基于个性化推荐的图书商城的研究与实现[D].杭州电子科技大学,2022.DOI:10.27075/d.cnki.ghzdc.2022.001245.

[19]张朋莉.基于深度学习的蛋糕推荐系统的研究[D].天津科技大学,2020.DOI:10.27359/d.cnki.gtqgu.2020.000370.

[20]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.

致  谢

蛋糕美食城系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。

蛋糕美食城系统的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在本系统的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。

在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。  

点赞+收藏+关注 → 私信领取本源代码、数据库

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值