杭州 网站定制,建筑用模板是什么板材,做淘宝网站用什么软件有哪些内容,品牌营销名词解释摘 要 近年来#xff0c;随着移动互联网的迅猛发展#xff0c;微信小程序作为一种轻量级应用形式逐渐受到人们的关注和喜爱。在此背景下#xff0c;各行各业开始向微信小程序上线他们的服务#xff0c;其中包括餐饮行业#xff0c;在校园内#xff0c;学生、教职工和访客… 摘 要 近年来随着移动互联网的迅猛发展微信小程序作为一种轻量级应用形式逐渐受到人们的关注和喜爱。在此背景下各行各业开始向微信小程序上线他们的服务其中包括餐饮行业在校园内学生、教职工和访客都需要解决用餐问题。本研究旨在设计和开发一款基于微信小程序的校园点餐系统以解决传统点餐方式存在的排队等待、人为错误等问题。 本系统基于Node.js平台进行开发利用其高效的异步I/O处理能力和事件驱动特点实现了校园点餐系统的功能。系统设计包括用户登录注册、商家门店浏览、餐品选择、下单支付等功能模块旨在方便用户浏览菜单、进行点餐、并完成下单支付流程。此外系统还具备订单管理、评论反馈等功能以提升用户体验和服务质量。通过微信小程序与Node.js的结合实现了系统的高性能、实时响应的特点使校园点餐更加便捷、快捷。 系统开发环境主要包括前端开发环境和后端开发环境。前端采用微信开发者工具进行开发利用WXML、WXSS等技术实现用户界面的设计与展示后端通过Node.js框架搭建服务器使用Express框架实现后端接口功能并结合MySQL数据库存储用户信息和订单数据。整个开发过程中开发人员充分利用Node.js的模块化编程特点和微信小程序的轻量级特性实现了校园点餐系统的高效开发与运行为校园食堂的管理和服务提供了一种全新的解决方案。 关键词校园点餐系统Node.js微信小程序Java语言 Abstract In recent years, with the rapid development of mobile Internet, WeChat 小程序let, as a lightweight 小程序lication form, has gradually attracted peoples attention and love. In this context, various industries have started to launch their services on WeChat mini programs, including the catering industry. On campus, students, faculty, and visitors all need to solve their dining problems. This study aims to design and develop a campus ordering system based on WeChat mini programs to solve the problems of queuing and human errors in traditional ordering methods. This system is developed based on the Node.js platform, utilizing its efficient asynchronous I/O processing capability and event driven characteristics to achieve the functionality of the campus ordering system. The system design includes functional modules such as user login registration, merchant store browsing, food selection, and order payment, aiming to facilitate users to browse menus, order meals, and complete the order payment process. In addition, the system also has functions such as order management and feedback to improve user experience and service quality. By combining WeChat mini programs with Node.js, the system has achieved high performance and real-time response, making campus ordering more convenient and efficient. The system development environment mainly includes front-end development environment and back-end development environment. The front-end is developed using WeChat developer tools, utilizing technologies such as WXML and WXSS to design and display user interfaces; The backend builds a server using the Node.js framework, implements backend interface functions using the Express framework, and stores user information and order data in conjunction with a MySQL database. Throughout the development process, developers fully utilized the modular programming features of Node.js and the lightweight nature of WeChat mini programs to achieve efficient development and operation of the campus ordering system, providing a new solution for the management and service of campus canteens. Key wordsCampus ordering system; Node.js; WeChat Mini Program; Java language 目录 1 绪论 1.1 研究背景与意义 1.2研究现状 1.3论文主要研究内容 1.4论文组织结构 2 相关开发工具介绍 2.1 微信开发者工具 2.2 小程序框架以及目录结构介绍 2.3 MySQL数据库介绍 2.4 Node.js主要功能 3 系统分析设计 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 操作可行性分析 3.2 系统流程分析 3.2.1 用户登录流程 3.2.2 信息添加流程 3.2.3 信息删除流程 3.3 功能需求分析 3.4 非功能性需求分析 3.5系统角色用例分析 3.5.1系统前台用户用例 3.5.2系统后端用例 4 系统概要设计 4.1系统架构设计 4.2系统功能结构设计 4.3数据库概念结构设计 4.4数据库逻辑结构设计 5 系统的实现 5.1前台用户功能模块 5.1.1 前台首页界面 5.1.2注册界面 5.1.3登录界面 5.1.4 美食资讯界面 5.1.5 商家门店详情界面 5.1.6 点餐中心详情界面 5.1.7购物车管理界面 5.2后台功能模块 5.2.1 商家用户模块界面 5.2.2 系统用户界面 5.2.3菜系信息管理界面 5.2.4 系统管理界面 5.2.5 资源管理界面 5.2.6 点餐中心管理界面 6系统的测试 6.1 测试的目的 6.2 系统部分测试 6.3 系统测试结果 结论 参考文献 致谢 1 绪论 1.1 研究背景与意义 随着移动互联网技术的发展和普及人们对便捷、快捷的服务需求也在不断增长。在校园中学生和教职工们每天都需要进行点餐而传统的方式往往存在排队时间长、选择范围有限、支付不便等问题。因此开发一种基于微信小程序的校园点餐系统可以帮助提高校园餐饮服务的效率和便利性。 微信小程序作为一种轻量级应用具有无需下载、跨平台、便捷分享等特点深受用户喜爱。通过开发基于微信小程序的校园点餐系统可以让用户在手机上随时随地进行点餐、预定餐品、在线支付等操作极大地节省了时间和精力。 此外校园中的餐饮服务通常涉及到大量人员和订单传统的点餐方式难以满足高峰时期的需求容易出现混乱和错误。而基于微信小程序的点餐系统可以实现自动化点餐、订单管理和数据统计提高了点餐效率、减少了人为错误从而提升了整体服务质量。因此研究基于微信小程序的校园点餐系统具有重要的现实意义。 首先它能够提高餐厅的效率和服务质量大大减少人力资源的浪费节约经济成本。其次校园扫码点餐小程序可以提供更加快捷、方便和个性化的用餐服务提高用户体验。再次它可以为学生提供更加健康和多样化的餐饮选择满足不同口味的需求并促进校园内餐厅的竞争力与发展。此外校园扫码点餐小程序还可以提供数据分析和预测功能对餐厅经营和用户需求进行深入的研究为校园管理和餐饮服务提供科学决策支持。 1.2研究现状 随着移动互联网技术的发展校园生活中的点餐行为也逐渐向线上迁移。校园点餐系统在校园中具有重要的应用价值能够提高学生用餐的便利性和效率减少排队等待时间同时也为食堂管理提供了更加智能化的管理手段。在过去校园点餐系统主要以网页版的形式存在用户需要在电脑上访问网页进行点餐操作相对较为繁琐。近年来随着微信小程序的兴起校园点餐系统也开始向微信小程序平台迁移实现了更加便捷、快速、智能化的点餐体验。 目前一些高校已经引入了基于微信小程序的校园点餐系统为学生提供了更加便利的就餐服务。这些系统通过微信小程序的平台实现了点餐、在线支付、外卖配送等功能极大地简化了学生的用餐流程。与传统的点餐方式相比基于微信小程序的校园点餐系统具有以下优势 1便捷快速学生可以通过微信小程序随时随地进行点餐无需等待和排队节省了用餐时间 2智能化管理食堂管理方可以通过系统实时监控销售情况统计销售数据优化菜品搭配和供应链管理 3用户体验优化系统可以根据用户的历史点餐记录和偏好推荐菜品提升用户体验。 然而目前基于微信小程序的校园点餐系统还存在一些问题和挑战如用户需求分析不够精细、支付安全性问题、用户隐私保护等。因此对于如何进一步完善和优化基于微信小程序的校园点餐系统提升用户体验和系统性能仍然具有一定的研究价值和挑战。 1.3论文主要研究内容 基于微信小程序的校园点餐系统的开发及实现所研究的主要内容如下 1首先是确定选题确定好所要做的系统并对系统的背景及现在面临的一些问题等进行系统的初步确认。 2系统确认完成后结合系统开发的需求进行确认系统开发所使用的技术校园点餐系统的开发使用Node.js框架MySQL数据库进行平台的搭建开发确认好使用的技术进行技术分析所使用的技术是否可以完成系统的实现。 3确定好系统使用的技术进行确认系统所划分的用户触并且根据用户触划分确定所要设计的功能模块对校园点餐系统的设计主要划分别为注册用户、商家用户和管理员并且所使用的功能模块也相应不同但系统的数据库实现的内容是交互的普通用户可以随时根据自己的需求进行餐品信息搜索及下单购买对于商家和管理员可以根据自己的权限进行在线信息的处理及操作。 4系统的功能模块确认完成后进行程序及界面的设计设计完成后组通过测试来判断程序是否完善对于系统测试要不同的用户进行不同的内容编辑及提交及使用不同的测试方式找出程序中存在的漏洞并对程序出现的漏洞问题进行在线解决处理如果测试系统没有任何问题时可以将系统上传进行正式操作使用。 1.4论文组织结构 本文共分为七章章节内容安排如下 第一章引言。主要介绍了课题研究的背景国内目前相关研究现状以及本文的研究内容与主要工作。 第二章相关技术介绍。主要对本系统使用的相关技术和开发工具进行介绍。 第三章系统需求分析。主要从系统的用户、功能等方面进行需求分析。 第四章系统概要设计。主要对系统框架、系统功能模块、数据库进行功能设计。 第五章系统实现。主要介绍了系统框架搭建、系统界面的实现。 第六章系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。 第七章总结与展望。 2 相关开发工具介绍 2.1 微信开发者工具 微信开发者工具是一款专为小程序开发而设计的应用它不断改进提供了便捷的操作方式并且在开发过程中可以通过微信扫描二维码来访问从而实现快速、准确的小程序开发和调试。 根据用户的需求我们将采用不同的屏幕大小来制作小程序。 在完成了视图布置之后可以通过执行编辑功能快速更改当前的视图界面。 控制台:方便调试打印输出信息。 将代码上传至腾讯服务器并在审核过程中填写版本号和备注信息以确保代码的安全性和准确性。 通过查看资源文件我们可以快速地调整相关项目的文件目录从而实现断点调试。 使用远程调试技术无论是在手机端还是PC端都能够轻松地进行开发工作。 本地数据存储显示的是本地存储的数据。 通过使用子父层级结构我们可以更容易地进行视图调试。 微信的代码体积应该保持在2M 以内而且在开发过程中应该严格检查合法域名信息并且为小程序的后台配置服务器域名。 微信开发者工具已经成为了开发过程中不可或缺的一部分并且正在不断地改进和完善。 2.2 小程序框架以及目录结构介绍 这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特特色的应用。它由一套完善的框架结构将用户界面、操作界面、功能界面等多种功能完美结合使用户只需要一点点的操作就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控还能够根据用户的需求实现对界面的快速调整和优化从而使用户能够轻松地构建强大的微信小程序。 2.3 MySQL数据库介绍 MySQL是一种开源的关系型数据库管理系统由瑞典MySQL AB公司开发现在由Oracle公司维护。MySQL支持多个操作系统包括Linux、Windows、macOS等。它是一种客户端/服务器模式的数据库提供高效、可靠、稳定的数据存储和管理服务。MySQL是目前最流行的开源关系型数据库之一被广泛应用于Web应用程序、企业应用程序和移动应用程序等领域。 2.4 Node.js主要功能 V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升又节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言Node利用了这个优点编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop”的架构使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些但仍提供很好的性能。 Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时无需等待硬盘寻址并检索文件硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问 直观易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户更有一种似曾相识的感觉。 虽然让Javascript运行于服务器端不是Node的独特之处但却是其一强大功能。不得不承认浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台但因为上述特性Node发展迅猛成为事实上的平台。 在Node启动的很短时间内社区就已经贡献了大量的扩展库模块。其中很多是连接数据库或是其他软件的驱动但还有很多是凭他们的实力制作出来的非常有用的软件。 最后不得不提到的是Node社区。虽然Node项目还非常年轻但很少看到对一个项目如此狂热的社区。不管是新手还是专家大家都围绕着项目使用并贡献自己的能力致力于打造一个探索、支持、分享、听取建议的乐土。 3 系统分析设计 3.1 可行性分析 可行性分析是系统分析的第一步通过可行性分析我们可以得出系统是不是值得开发如果系统的开发是不可信的那么就没有必要再进行下面的操作对于本校园点餐系统在可行性方面进行了技术、经济以及操作的分析。 3.1.1 技术可行性分析 基于微信小程序的校园点餐系统具备良好的技术可行性。小程序作为一种跨平台、轻量级且用户友好的应用形式结合Node.js的快速开发能力可以构建出功能强大的校园点餐系统。同时MySQL作为可靠且广泛使用的数据库管理系统提供了数据存储和查询的支持。 3.1.2 经济可行性分析 基于微信小程序的校园点餐系统的开发具有显著的成本优势。相较于传统的人工管理方式系统能够自动化处理大量的数据和信息减少了人力与时间成本。系统的运行、维护的成本相对较低只需要投入少量的资源即可保持系统的稳定运行。而且系统的可拓展性与可维护性也降低以后系统的升级和改造成本。因此校园点餐系统的开发在经济上是可行的。 3.1.3 操作可行性分析 在操作可行性方面基于微信小程序的校园点餐系统具备良好的操作可行性。小程序作为一种轻量级应用形式用户无需进行额外的安装和更新可以直接在微信平台上访问和使用。基于小程序的界面设计通常简洁明了易于操作和导航提供良好的用户体验。 3.2 系统流程分析 3.2.1 用户登录流程 登录模块主要满足管理员以及用户的权限登录用户登录流程图如图3-1所示。 图3-1登录操作流程图 3.2.2 信息添加流程 用户在添加信息时信息编号自动生成系统会对添加的信息进行验证验证通过则添加至数据库添加信息成功反之添加失败。添加信息流程如图3-2所示。 图3-2 信息添加流程图 3.2.3 信息删除流程 用户可选择要删除的信息进行信息删除操作在删除信息时系统提示是否确定删除信息是则删除信息成功系统数据库将信息进行删除。删除信息流程图如图3-3所示。 图3-3 信息删除流程图 3.3 功能需求分析 1商家门店模块本校园点餐系统主要的功能之一就是浏览商家门店信息所以系统中需要管理员和商家添加商家门店供用户查询浏览管理员和商家在此模块主要是对商家门店信息增删改查游客实现对商家门店的查询普通用户则实现商家门店的点赞、评论、收藏等操作。如下图3-4所示。 图3-4 商家门店模块用例图 2点餐中心模块本校园点餐系统最主要的功能就是购买美食所以系统中需要管理员添加各种餐品信息供用户查询购买管理员和商家在此模块主要是对点餐中心的餐品信息增删改查游客实现对点餐中心的查询普通用户则实现点餐中心的收藏、评论、加购、立即购买等操作。如下图3-5所示。 图3-5 点餐中心模块用例图 3美食资讯模块管理员在后台可以对美食资讯及其分类进行增删改查游客实现查看美食资讯用户进行收藏、点赞、评论。如下图3-6所示。 图3-6美食资讯模块用例图 4用户管理模块在前台游客和商家可以通过注册然后参与到系统当中商家用户在前台注册后由管理员审核通过后才可以在系统管理端进行发布餐品数据管理订单等。管理员可以对注册的用户进行修改、删除、查询、也可以添加新的用户。如下图3-7所示。 图3-7用户管理模块用例图 5购物管理用户对喜欢的餐品信息可以进行购买可以选择立即购买或者加入到购物车中进行购买如下图3-8所示。 图3-8购物管理模块用例图 6我的订单管理在校园点餐系统中用户、商家和管理员都能够管理订单可以对订单进行查看、删除。如下图3-9所示。 图3-9订单管理模块用例图 7我的模块我的模块是用户独有的功能可以在“我的”管理基本信息、收藏、订单、购物车我的用例如下图3-10所示。 图3-10我的管理模块用例图 3.4 非功能性需求分析 非功能性分析旨在评估校园点餐系统的非功能需求和性能要求。通过对性能、可靠性、安全性、可用性和扩展性等方面进行评估确保平台能够满足用户和系统运行的要求。具体如下3-1表格中 表3-1校园点餐系统非功能需求表 非功能性要求 说明 性能 评估响应时间、并发用户数、吞吐量等指标以确保平台稳定高效地运行。 可靠性 评估系统的稳定性、容错能力和数据完整性保障系统在故障情况下正常运行。 安全性 评估用户身份认证、数据加密和访问控制等保护用户信息和交易的安全。 可用性 评估系统的稳定性、故障处理能力和用户界面友好性提供良好的用户体验。 扩展性 评估系统的可扩展性和灵活性以便根据需求进行功能扩展和升级。 3.5系统角色用例分析 3.5.1系统前台用户用例 基于微信小程序的校园点餐系统前台用户的主要功能是对系统信息的查看、收藏、评论以及对餐品的购买购买的过程中需要对购物车进行管理查看自己的订单。前台普通用户用例图如图3-11所示。 图3-11 校园点餐系统前台普通用户用例图 在系统前台中主要实现的是对基于微信小程序的校园点餐系统中信息的浏览用户对信息收藏、评论以及在点餐中心中对餐品购买几个功能。 1美食资讯功能主要实现了是对美食资讯的查看用户进行评论、收藏、点赞用例说明如下表所示 表3-1 美食资讯用例说明 用例名称 美食资讯 角色 用户 用例说明 对美食资讯评论 前置条件 用户登录到系统当中 后置条件 用户发表评论 基本事件流 1.进入系统登录界面 2.点击美食资讯选择某条美食资讯查看详情 3.输入评论内容 4.点击提交按钮发表评论 扩展流程 3a.用户没有登录成功 异常事件流 3a.输入评论内容为空 其他 无 2点餐中心购买功能本功能是系统的主要功能主要是实现在线购买功能用例说明如下标所示 表3-2 点餐中心购买用例说明 用例名称 点餐中心购买 角色 用户 用例说明 对餐品加入购物车购买或者立即购买 前置条件 用户登录到系统当中 后置条件 对餐品加入购物车购买或者立即购买 基本事件流 1.进入系统登录界面 2.点击点餐中心选择某条餐品信息查看详情 3.加入购物车或者立即购买 4.输入订单信息提交订单 扩展流程 3a.现在支付方式 异常事件流 3a.用户没有登录 其他 无 3.5.2系统后端用例 用户不能进入后台商家通过管理员审核通过的账号信息进入后台可以对商家门店管理、商城管理点餐中心、订单列表进行管理后台管理员进入以后可以对系统用户、菜系信息管理、商家门店管理、系统管理、网站公告管理、资源管理、商城管理点餐中心、分类列表、订单列表进行管理。 商家用例图如图3-12所示。 图3-12 校园点餐系统后台商家用户用例图 后台管理员用例图如图3-13所示。 图3-13 校园点餐系统后台管理员用户用例图 后台管理员主要实现了是对用户的信息管理对菜系信息和展示在前台的商家门店信息的管控同时对系统轮播图、网站公告和美食资讯信息的增删改查还可以对商城管理的点餐中心、分类列表、订单列表进行管理。后台管理员的用例说明如下表所示 表3-3 后台管理员用例说明 用例名称 后台管理 角色 管理员 用例说明 对前端显示的信息进行管理 前置条件 管理员登录进入后台管理页面 后置条件 无 基本事件流 1.管理员登录进入后台管理界面 2.点击左侧选择相应功能板块 3.选择所要操作的数据 4.点击选择的内容进行增加/删除/修改/查找 5.点击立即保存按钮 扩展流程 无 异常事件流 无 其他 无 4 系统概要设计 4.1系统架构设计 在系统架构设计中我们将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格划分系统的层次结构并定义各个模块的职责和交互方式。架构图如下图4-1所示。 图4-1校园点餐系统架构设计图 表现层Presentation Layer负责与用户进行交互将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。 业务逻辑层Business Logic Layer处理系统的核心业务逻辑包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层实现了业务逻辑的封装和复用。 数据层Data Layer负责数据的存储、访问和管理包括数据库和持久化机制。数据层提供了对数据的增删改查操作并与业务逻辑层进行交互使系统能够有效地存储和检索数据。 这三个层次相互独立通过明确的接口和协议进行通信实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层业务逻辑层处理请求并返回结果最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。 4.2系统功能结构设计 通过整体功能模块设计我们将根据需求分析的结果将系统的功能划分为不同的模块。每个模块负责实现特定的功能并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。具体的功能模块图如图4-2所示。 图4-2 系统功能结构图 4.3数据库概念结构设计 数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型我们将定义系统中涉及的各个实体以及它们之间的联系。 下面是整个校园点餐系统中主要的数据库表总E-R实体关系图。 图4-3 校园点餐系统总E-R关系图 4.4数据库逻辑结构设计 通过上一小节中校园点餐系统中总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 用户编号: 表address (商家门店) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 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 默认判断 表article (文章用于内容管理系统的文章) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 article_id mediumint 8 0 N Y 文章id[0,8388607] 2 title varchar 125 0 N Y 标题[0,125]用于文章和html的title标签中 3 type varchar 64 0 N N 0 文章分类[0,1000]用来搜索指定类型的文章 4 hits int 10 0 N N 0 点击数[0,1000000000]访问这篇文章的人次 5 praise_len int 10 0 N N 0 点赞数 6 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间 7 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 8 source varchar 255 0 Y N 来源[0,255]文章的出处 9 url varchar 255 0 Y N 来源地址[0,255]用于跳转到发布该文章的网站 10 tag varchar 255 0 Y N 标签[0,255]用于标注文章所属相关内容多个标签用空格隔开 11 content longtext 2147483647 0 Y N 正文文章的主体内容 12 img varchar 255 0 Y N 封面图 13 description text 65535 0 Y N 文章描述 表article_type (文章分类) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 type_id smallint 5 0 N Y 分类ID[0,10000] 2 display smallint 5 0 N N 100 显示顺序[0,1000]决定分类显示的先后顺序 3 name varchar 16 0 N N 分类名称[2,16] 4 father_id smallint 5 0 N N 0 上级分类ID[0,32767] 5 description varchar 255 0 Y N 描述[0,255]描述该分类的作用 6 icon text 65535 0 Y N 分类图标 7 url varchar 255 0 Y N 外链地址[0,255]如果该分类是跳转到其他网站的情况下就在该URL上设置 8 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间 9 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 表auth (用户权限管理) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 auth_id int 10 0 N Y 授权ID 2 user_group varchar 64 0 Y N 用户组 3 mod_name varchar 64 0 Y N 模块名 4 table_name varchar 64 0 Y N 表名 5 page_title varchar 255 0 Y N 页面标题 6 path varchar 255 0 Y N 路由路径 7 position varchar 32 0 Y N 位置 8 mode varchar 32 0 N N _blank 跳转方式 9 add tinyint 3 0 N N 1 是否可增加 10 del tinyint 3 0 N N 1 是否可删除 11 set tinyint 3 0 N N 1 是否可修改 12 get tinyint 3 0 N N 1 是否可查看 13 field_add text 65535 0 Y N 添加字段 14 field_set text 65535 0 Y N 修改字段 15 field_get text 65535 0 Y N 查询字段 16 table_nav_name varchar 500 0 Y N 跨表导航名称 17 table_nav varchar 500 0 Y N 跨表导航 18 option text 65535 0 Y N 配置 19 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间 20 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 表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]用于产品规格描述 表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 表cuisine_information (菜系信息) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 cuisine_information_id int 10 0 N Y 菜系信息ID 2 cuisine_name 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 更新时间 表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 表logistics_delivery (物流配送) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 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 更新时间 表merchant_stores (商家门店) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 merchant_stores_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 license_code varchar 64 0 Y N 执照编码 5 store_poster varchar 255 0 Y N 门店海报 6 dishes_and_cuisines varchar 64 0 Y N 菜品菜系 7 merchant_introduction text 65535 0 Y N 商家简介 8 praise_len int 10 0 N N 0 点赞数 9 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 10 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 表merchant_users (商家用户) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 merchant_users_id int 10 0 N Y 商家用户ID 2 merchant_name varchar 64 0 Y N 商家名称 3 license_code varchar 64 0 N N 执照编码 4 examine_state varchar 16 0 N N 未审核 审核状态 5 user_id int 10 0 N N 0 用户ID 6 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 7 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 表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 折扣 表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已取消 表recommended_dishes (菜品推荐) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 recommended_dishes_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 praise_len int 10 0 N N 0 点赞数 5 cart_title varchar 125 0 Y N 标题[0,125]用于产品html的标签中 6 cart_img text 65535 0 Y N 封面图用于显示于产品列表页 7 cart_description varchar 255 0 Y N 描述[0,255]用于产品规格描述 8 cart_price_ago double 8 2 N N 0.00 原价[1] 9 cart_price double 8 2 N N 0.00 卖价[1] 10 cart_inventory int 10 0 N N 0 商品库存 11 cart_type varchar 64 0 N N 未分类 商品分类 12 cart_content longtext 2147483647 0 Y N 正文产品的主体内容 13 cart_img_1 text 65535 0 Y N 主图1 14 cart_img_2 text 65535 0 Y N 主图2 15 cart_img_3 text 65535 0 Y N 主图3 16 cart_img_4 text 65535 0 Y N 主图4 17 cart_img_5 text 65535 0 Y N 主图5 18 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 19 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 表registered_users (注册用户) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 registered_users_id int 10 0 N Y 注册用户ID 2 user_name varchar 64 0 Y N 用户姓名 3 user_gender varchar 64 0 Y N 用户性别 4 examine_state varchar 16 0 N N 已通过 审核状态 5 user_id int 10 0 N N 0 用户ID 6 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 7 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 表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 mediumint 8 0 N Y 用户ID[0,8388607]用户获取其他与用户相关的数据 2 state smallint 5 0 N N 1 账户状态[0,10](1可用|2异常|3已冻结|4已注销) 3 user_group varchar 32 0 Y N 所在用户组[0,32767]决定用户身份和权限 4 login_time timestamp 19 0 N N CURRENT_TIMESTAMP 上次登录时间 5 phone varchar 11 0 Y N 手机号码[0,11]用户的手机号码用于找回密码时或登录时 6 phone_state smallint 5 0 N N 0 手机认证[0,1](0未认证|1审核中|2已认证) 7 username varchar 16 0 N N 用户名[0,16]用户登录时所用的账户名称 8 nickname varchar 16 0 Y N 昵称[0,16] 9 password varchar 64 0 N N 密码[0,32]用户登录所需的密码由6-16位数字或英文组成 10 email varchar 64 0 Y N 邮箱[0,64]用户的邮箱用于找回密码时或登录时 11 email_state smallint 5 0 N N 0 邮箱认证[0,1](0未认证|1审核中|2已认证) 12 avatar varchar 255 0 Y N 头像地址[0,255] 13 open_id varchar 255 0 Y N 针对获取用户信息字段 14 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间 15 vip_level varchar 255 0 Y N 会员等级 16 vip_discount double 11 2 Y N 0.00 会员折扣 表user_group (用户组用于用户前端身份和鉴权) 编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 group_id mediumint 8 0 N Y 用户组ID[0,8388607] 2 display smallint 5 0 N N 100 显示顺序[0,1000] 3 name varchar 16 0 N N 名称[0,16] 4 description varchar 255 0 Y N 描述[0,255]描述该用户组的特点或权限范围 5 source_table varchar 255 0 Y N 来源表 6 source_field varchar 255 0 Y N 来源字段 7 source_id int 10 0 N N 0 来源ID 8 register smallint 5 0 Y N 0 注册位置: 9 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间 10 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间 5 系统的实现 5.1前台用户功能模块 5.1.1 前台首页界面 前台首页界面是用户访问系统的入口页面它应该展示平台的主要功能和特色并提供导航链接以便用户浏览和搜索。首页界面的设计应注重页面的美观性和用户体验同时也需要考虑页面的加载速度和响应性能。其主界面展示如下图5-1所示。 图5-1 前台首页界面图 5.1.2注册界面 用户注册界面用于新用户进行账号注册用户需要填写必要的个人信息并选择合适的用户名和密码。注册界面应该进行输入验证和数据格式检查确保用户提供有效的信息。界面如下图所示。注册流程图如图5-2所示注册界面展示如下图5-3所示。 图5-2注册流程图 图5-3 前台注册界面图 注册关键代码如下所示。 Register.prototype.index async function(ctx) { var group_list await $.services[user_group].get_list({}, Object.assign({}, this.config)); return await ctx.render(this.config.tpl index.html, { group_list }); }; Register.prototype.api async function(ctx) { var user $.services.user; var body ctx.request.body; var username body.username; var obj await user.get_obj({ username }); if (obj) { return { error: { code: 70000, message: 账户名已存在, }, }; } else { var password md5(body.password); var nickname body.nickname; var user_group body.user_group; var email body.email; var email_state body.hasOwnProperty(email_state) ? body.email_state : 0; var phone body.phone; var phone_state body.hasOwnProperty(phone_state) ? body.phone_state : 0; var avatar body.avatar; var bl_reg await user.add({ username, password, nickname, user_group, email, email_state, phone, phone_state, avatar }); if (bl_reg) { return { result: 注册成功 }; } else { return { error: { code: 70000, message: 注册失败, }, }; } } }; 5.1.3登录界面 用户登录界面用于已注册用户进行账号登录用户需要输入正确的用户名和密码才能成功登录系统。登录界面应对用户的输入进行验证并提供密码找回或重新注册的选项。界面如下图所示。用户登录流程如图5-4所示登录界面如下图5-5所示。 图5-4 登录流程图 图5-5普通用户登录界面图 登录的逻辑代码如下所示。 const md5 require(md5); var Controller require(../core/controller.js); class Login extends Controller { constructor(config) { super( Object.assign({ tpl: ./login/, service: user, }, config ) ); } } Login.prototype.api async function(ctx) { var body ctx.request.body; var obj await $.services[user].get_obj({ username: body.username },{like:false}); if (obj) { var group await $.services[user_group].get_obj({ name:obj.user_group }) if (group){ if (group.name!管理员){ var sql select examine_state from group.source_table WHERE user_id obj.user_id; var userExamine await $.mysql.run(sql); if (userExamine userExamine.length 0 userExamine[0].examine_state!已通过){ return { error: { code: 70000, message: 该用户审核未通过 }, }; } } if (obj.state!1){ return { error: { code: 70000, message: 用户非可用状态不能登录 }, }; } var password md5(body.password); if (password obj.password) { ctx.session.user obj; var date Date.parse(new Date()); var token md5(obj.user_id _ date); await $.services[access_token].add({ token, info: JSON.stringify(obj), user_id:obj.user_id }); obj.token token; return { result: {obj} }; } else { return { error: { code: 70000, message: 密码错误 }, }; } }else { return { error: { code: 70000, message: 用户组不存在 }, }; } } else { return { error: { code: 70000, message: 账户不存在 } }; } }; 5.1.4 美食资讯界面 美食资讯提供餐饮行业相关的知识、建议和文章涵盖美食做法、菜系介绍、商家门店推荐等方面帮助用户便捷查看最新餐饮相关资讯。美食资讯列表界面如下图5-6所示。 图5-6美食资讯列表界面图 查询美食资讯列表的逻辑代码如下所示。 Service.prototype.get_list async function(query, config) { var sql $.mysql.toGetSql(query, Object.assign({}, this.config, config || {})); return await this.run(sql); }; Service.prototype.get_list async function(query, config) { var sql $.mysql.toGetSql(query, Object.assign({}, this.config, config || {})); return await this.run(sql); }; 5.1.5 商家门店详情界面 当用户点击“商家门店”菜单按钮时可以选择感兴趣的商家门店信息并点击以进入详细介绍界面查看包括商家用户、商家名称、执照编码、门店海报、菜品菜系、商家简介等信息并进行点赞、收藏和评论操作。商家门店详情展示页面如图5-7所示。 图5-7 商家门店详情界面图 5.1.6 点餐中心详情界面 当用户点击“点餐中心”菜单按钮时他们将能够在界面上浏览管理员在后台发布的所有点餐中心信息。该界面支持通过关键词搜索来筛选和查找适合自己的餐品信息。用户可以选择感兴趣的餐品信息并点击以进入详细介绍界面。此外用户还可以进行加购、立即购买、点赞、收藏和评论等操作。这样的点餐中心详情界面为用户提供了便捷的方式来浏览、筛选和选择合适的餐品信息并与之进行交易。点餐中心详情展示页面如图5-8所示。 图5-8 点餐中心详情界面图 查询单个餐品数据关键代码如下所示。 Service.prototype.get_obj async function(query, config) { var sql $.mysql.toGetSql(query, Object.assign({}, this.config, config || {})); var arr await this.run(sql); if (arr.length 0) { return arr[0]; } return null; }; Controller.prototype.get_obj async function(ctx) { var query ctx.request.query; var { field, sqlwhere } query; delete query.field; delete query.sqlwhere; var result await this.service.get_obj( query, Object.assign({}, this.config, { field, sqlwhere }) ); if (this.service.error) { return { error: this.service.error }; } if (this.config.interact) { m await this.interact_list(ctx, result); } return { result: {obj: result}, }; }; 5.1.7购物车管理界面 当用户点击“购物车”按钮则会显示自己加入购物车的餐品信息然后对其进行购买管理购买流程图如图5-9所示购物车界面如下图5-10所示。 图5-9购买流程图 图5-10 购物车管理界面图 购物车数量管理关键代码如下所示。 Controller.prototype.count async function(ctx) { var result await this.service.count(ctx.request.query, this.config); if (this.service.error) { return { error: this.service.error, }; } return { result, }; }; 5.2后台功能模块 5.2.1 商家用户模块界面 商家用户登录后台可以对自己的商家门店信息进行管理可以添加新的商家门店信息。商家门店信息添加界面如下图5-11所示。 图5-11商家门店信息添加界面图 添加商店门店信息关键代码如下所示。 Controller.prototype.add async function(ctx) { var result await this.service.add(ctx.request.body, this.config); if (this.service.error) { return { error: this.service.error, }; } return { result, }; }; 商家用户在商城管理模块可以对与自己门店相关的展示在前台点餐中心的信息以及用户提交的订单信息进行管理也可以管控用户的评论信息。商城管理界面如下图5-12所示。 图5-12商城管理界面图 5.2.2 系统用户界面 后台管理人员是可以对前台注册的普通用户和后台商家用户、管理员进行管理。系统用户管理界面如下图5-13所示。 图5-13系统用户管理界面图 修改用户信息关键代码如下所示。 Service.prototype.set async function(query, body, config) { var sql $.mysql.toSetSql(query, body, Object.assign({}, this.config, config || {})); var ret await this.run(sql); return ret; }; 5.2.3菜系信息管理界面 管理员点击“菜系信息管理”会显示出所有的菜系信息支持输入菜系名称查询菜系信息也可以添加新的菜系信息。菜系信息管理界面如下图5-14所示。 图5-14菜系信息管理界面图 5.2.4 系统管理界面 管理人员在“系统管理”这一菜单下是可以对校园点餐系统内展示的轮播图进行添加修改的。系统管理界面如下图5-15所示。 图5-15系统管理界面图 上传轮播图关键代码如下所示。 Controller.prototype.upload async function(ctx) { var req ctx.request; var query req.query; var url ; if (req.files req.files.file) { var f req.files.file; const render fs.createReadStream(f.path); var name f.name; var dir f.dir || ; var file _dir dir name; try { if (fs.existsSync(file)) { var arr name.split(.); name arr[0]; var extension arr[arr.length - 1]; var num 10000; for (var i 0; i num; i) { var na name _ (i 1) . extension; file path.join(_dir, na); if (!fs.existsSync(file)) { name na; break; } } } const upStream fs.createWriteStream(file); render.pipe(upStream); url _path name; } catch (e) { console.log(上传失败, e); } return { result: { url } }; } else { return { code: 10000, message: 上传的文件file不能为空, }; } }; 5.2.5 资源管理界面 后台管理人员是可以对美食资讯以及资讯分类的分类进行增删改查操作。美食资讯界面如下图5-16所示。 图5-16美食资讯管理界面图 5.2.6 点餐中心管理界面 后台管理人员对校园点餐系统内的不同分类下的点餐中心信息进行维护和管理的也可以对用户提交的关于点餐中心的评论信息进行管控。点餐中心管理界面如下图5-17所示。 图5-17点餐中心管理界面图 6系统的测试 6.1 测试的目的 测试目的是为了验证系统的功能、性能和稳定性以确保系统在实际应用中能够达到预期的要求。通过测试可以发现潜在的问题和缺陷并及时进行修复和改进。测试还可以评估系统的可靠性、安全性和用户体验以提供一个高质量和可信赖的产品。此外测试也有助于验证系统是否满足用户需求和预期是否符合相应的标准和规范。总之测试的目的是为了确保系统的质量和可靠性从而为用户提供良好的使用体验和价值。 6.2 系统部分测试 表6-1用户注册测试用例 测试编号 测试内容 预期结果 TC-001 输入有效信息 注册成功跳转到登录页面 TC-002 输入已存在账号 显示账号已存在的提示信息 TC-003 输入无效信息 显示注册失败的提示信息要求重新输入有效信息 表6-2用户登录测试用例 测试编号 测试内容 预期结果 TC-004 输入正确的账号密码 登录成功跳转到个人主页 TC-005 输入错误的账号密码 显示登录失败的提示信息要求重新输入正确的账号密码 表6-3 修改密码测试用例 测试编号 测试内容 预期结果 TC-006 输入有效密码 密码修改成功显示修改成功的提示信息 TC-007 输入无效密码 显示密码无效的提示信息要求重新输入有效密码 TC-008 输入错误原密码 显示原密码错误的提示信息要求重新输入正确原密码 表6-4 商家门店添加测试用例 测试编号 测试内容 预期结果 TC-009 输入有效的商家门店信息 商家门店添加成功显示添加成功的提示信息 TC-010 输入无效的商家门店信息 显示添加失败的提示信息要求重新输入有效信息 表6-5 查看点餐中心测试用例 测试编号 测试内容 预期结果 TC-014 点击查看点餐中心 显示点餐中心页面展示相关的餐品名称、价格、图片等内容 TC-015 选择其他分类 显示所选分类下的相关点餐中心信息等内容 TC-016 无可用点餐中心 显示暂无点餐中心的提示信息提醒用户重新选择分类 6.3 系统测试结果 综上所述校园点餐系统在功能测试中表现良好通过了所有测试用例。系统提供的用户注册、登录、修改密码、商家门店添加、查看点餐中心等主要功能都能正常运行并能够给出预期的提示信息和结果。然而为了确保系统的全面稳定性和质量仍建议进行更多的综合性测试包括性能测试、安全性测试和用户体验测试等以进一步验证和改进系统的功能和性能。 结论 本研究设计并实现了基于微信小程序的校园点餐系统。通过对系统进行功能测试和评估得出以下结论该系统在功能上经过验证用户注册、登录、购物车、点餐中心购买、商家门店浏览和美食资讯管理等功能都能正常运行技术上具备稳定性和可扩展性小程序提供跨平台应用Node.js框架简化开发MySQL数据库支持数据存储与查询从经济角度看Node.js和MySQL均为免费且开源操作上易用性好校园点餐系统界面简洁明了Node.js的自动化部署与MySQL的管理工具提供便捷操作。 综上所述校园点餐系统在功能、技术、经济和操作上均具有优势。该系统在提高用户点餐便捷性的同时也为商家提供了一种在线销售的渠道促进了餐饮行业的发展。未来可以进一步扩展功能和优化性能以满足用户需求并提供更好的用户体验。 参考文献 [1]张乐.高校食堂自助点餐系统设计与实现[J].电脑与信息技术,2024,32(02):51-53.DOI:10.19414/j.cnki.1005-1228.2024.02.009. [2]QianJun L ,JingJing Z ,RuiChao Y , et al.WeChat mini program in laboratory biosafety education among medical students at Guangzhou Medical University: a mixed method study of feasibility and usability[J].BMC Medical Education,2024,24(1):305-305. [3]Xiao J ,Zhou H ,Lei Q , et al.Attention-Mechanism-Based Face Feature Extraction Model for WeChat Applet on Mobile Devices[J].Electronics,2024,13(1): [4]Kabamba M H ,Khouzam M ,Dagenais R M .Vnode: Low-Overhead Transparent Tracing of Node.js-Based Microservice Architectures[J].Future Internet,2023,16(1): [5]王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-3539.DOI:10.19850/j.cnki.2096-4706.2023.22.007. [6]苏兵.基于微服务的校园点餐系统后台的设计与实现[J].电脑与电信,2023,(11):23-28.DOI:10.15966/j.cnki.dnydx.2023.11.008. [7]陈海燕,常莹,张燕宁.基于Android系统的校园点餐系统中不同数据存储方式的教学研究[J].电脑编程技巧与维护,2023,(09):57-60.DOI:10.16184/j.cnki.comprg.2023.09.012. [8]张祎萌,顾丹彤,刘少杰,等.基于校园“智慧点餐”系统的膳食大数据准确性评价[C]//亚洲营养学会联合会,中国营养学会.Abstract Book of the 14th Asian Congress of Nutrition--Food Nutrition.复旦大学公共卫生学院;复旦大学健康传播研究所;复旦大学附属眼耳鼻喉科医院;,2023:1.DOI:10.26914/c.cnkihy.2023.076164. [9]王侠,汪进敏,师瑜,等.“快吃”微信点餐小程序的设计与运营构想[J].中国质量万里行,2023,(02):62-65. [10]种倩倩,孙丽英,陈滨,等.基于微信小程序的点餐系统的设计与开发[J].电脑知识与技术,2022,18(19):66-6973.DOI:10.14004/j.cnki.ckt.2022.1307. [11]谷研硕,时振涛,孙申英,等.基于内容推荐算法的点餐系统的设计与实现[J].电脑知识与技术,2022,18(10):48-49.DOI:10.14004/j.cnki.ckt.2022.0815. [12]宁功林.基于微信小程序的大学校园点餐管理系统设计与实现[J].华东科技,2022,(02):77-79. [13]陈帅.微信点餐系统小程序的设计与实现[J].电子技术与软件工程,2021,(24):30-31. [14]Christoforos N ,Panagiotis B ,Dimitris A , et al.NodeXP: NOde.js server-side JavaScript injection vulnerability DEtection and eXPloitation[J].Journal of Information Security and Applications,2021,58 [15]李昊.基于微信小程序的智能推荐点餐系统的设计与实现[D].南京邮电大学,2020.DOI:10.27251/d.cnki.gnjdc.2020.000283. [16]雷少玲.基于Node.js为后端的微信小程序授权登录的探究与实现[J].电子制作,2020,(22):42-44.DOI:10.16589/j.cnki.cn11-3571/tn.2020.22.015. [17]孙瑜霞,王泽元,刘硕洲,等.关于高职“校园一点通”微信点餐系统的构建研究[J].数码世界,2020,(09):33-34. [18]张钊源,刘晓瑜,鞠玉霞.Node.js后端技术初探[J].中小企业管理与科技(上旬刊),2020,(08):193-194. [19]李新锦,鲁志萍,刘苑如.基于微信小程序的校园点餐系统的设计[J].电脑知识与技术,2020,16(07):50-5156.DOI:10.14004/j.cnki.ckt.2020.0756. [20]黄朝富,姬小波,吕明,等.基于微信平台的校园点餐系统的设计与实现[J].工业控制计算机,2020,33(01):112-113127. 致谢
在完成本研究工作过程中我们要向指导老师表示衷心的感谢。感谢老师在选题、需求分析、系统设计和实现等方面给予的细致指导和支持。老师的专业知识和经验对我们的研究工作起到了重要的指导作用。此外还要感谢师兄师姐和同学们他们在技术问题上给予了很多帮助和建议。感谢他们的悉心指导和无私分享使我们能够更好地完成研究工作。最后要感谢家人和朋友们对我们学业上的理解和支持。感谢他们的鼓励和陪伴给予了我们坚持下去的动力。
感谢所有为本研究工作做出贡献的人们你们的支持和帮助使本研究取得了成功。再次向所有相关人员表示衷心的感谢。 免费领取项目源码请关注❥点赞收藏并私信博主谢谢~