微信点餐外卖小程序源码|点餐外卖系统开发浅谈

这篇具有很好参考价值的文章主要介绍了微信点餐外卖小程序源码|点餐外卖系统开发浅谈。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  这是一个微信点餐外卖小程序源码系统,添加了一些 UI 样式,CSS用于大部分布局。
  
  安装微信点餐外卖小程序源码
  
  演示:c.ymzan.top
  
  安装 MySQL 5.6.5 或更高版本
  
  执行 database.sql DDL 设置表
  
  您可以在 中更改数据库连接详细信息com.reonsoftware.possample.Application。默认情况下,该数据库应被称为位于 localhost 上的“pos”。密码为“pos”的数据库用户“pos”用于访问。
  
  服务端使用 Spring Boot,主类为com.reonsoftware.possample.Application. 启动服务器并浏览到 index.html。使用 CSV 导入功能将 items.csv(在此文件夹中)的内容导入项目表。
  
  .project

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>Pizzashop</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.common.project.facet.core.builder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.validation.validationbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
	</natures>
</projectDescription>
Footer

  笔记
  
  在真正的 Web 应用程序中,情况会有所不同:
  
  我喜欢 TDD 和 BDD,但还没有为此示例设置 Java/Javascript 单元测试
  
  JS 不检查失败的 AJAX 调用或其他错误
  
  使用 Angular 指令会很好(也许将菜单项变成可重用的指令/标签)
  
  NPM 用于引入 Angular 等依赖项。通常我会从源代码管理中排除 node_modules 文件夹,但在这种情况下,我将其包括在内,这样您就不必在系统上安装 Node。
  
  微信点餐外卖小程序源码核心技术
  
  当然,我们希望避免两个订单具有相同的订单号的情况,因此我们必须将我们的计数器基于数据库,否则在网站的每次渲染中,订单号将始终回到最初的数字被定义。起初,我们使用 mongoose 的 countDocuments() 来计算“orders”集合中现有订单的数量,将其递增 1,并将这个新数字分配给新订单。这个解决方案很好,但它限制了我们,因为如果我们必须从我们的集合中删除任何订单,我们最终可能会得到两个或更多具有相同订单号的订单。
  
  最终,我们创建了一个集合,其中只有一个包含数字的文档。每当下订单并将新号码分配给订单时,集合中的号码就会更新。
  
  我们可以将这个过程分为四个步骤:
  
  1. 定义方案。
  
  2. 构建和定义相关的 API 路由。(邮政柜台,邮政订单)
  
  3.在编号方案中设置一个初始值。(使用“邮政柜台”)
  
  4. 编写两个依赖函数:一个是号码函数,一个是用新号码发布新订单。
  
  1. 定义方案。
  
  数字方案相当简单,它只有一个名为“数字”的属性,其值将是一个数字:(第 5-7 行)。
  
  该模型被命名为“计数器”。

import mongoose from "mongoose";

const Schema = mongoose.Schema;

const counter = new Schema({
  number: Number,
});

mongoose.models = {};
const Counter = mongoose.model("Counter", counter);

export default Counter;

  'order' 方案显然有点复杂,但我们现在只关注方案的 order 属性(第 13 行)。

import mongoose from "mongoose";

const Schema = mongoose.Schema;

const order = new Schema({
  customerEmail: String,
  dateAndTime: String,
  specialNotesFromCustomer: String,
  mealPrice: Number,
  dishes: Array,
  wasDelivered: Boolean,
  wasCanceled: Array,
  orderNum: Number,
});

mongoose.models = {};
const Order = mongoose.model("Order", order);
export default Order;

  2. 构建和定义相关的 API 路由。(邮政柜台,邮政订单)。
  
  现在我们必须创建 API 路由来将文档发布到“计数器”集合中,以便获得一个初始编号,然后我们可以随着每个新订单进一步增加该编号。 

import connectDB from "../../middleware/mongodb";
import Counter from "../../models/countermodel"

const postInitialNumber = async (req, res) => {

  if (req.method === "POST") {

    const { number } =  req.body;

    if (number) {
      try {

        const counter = new Counter({
          number
        });

        const counterCreated = await counter.save();
        return res.status(200).send(counterCreated);
      } catch (error) {
        return res.status(500).send(error.message);
      }
    } else {
      res.status(422).send("data_incomplete");
    }
  } else {
    res.status(422).send("req_method_not_supported");
  }
};

export default connectDB(postInitialNumber);

  这使我们能够决定从哪个数字开始计数。您可以选择从零开始,或从 100 开始,或者最适合您需要的任何值。
  
  (实际上,您甚至可以拥有多个集合,这意味着您可以拥有多个计数系统,您可以使用它来区分不同类型的订单。)
  
  3.在编号方案中设置一个初始值。(使用“邮政柜台”)
  
  4. 编写两个依赖函数:一个是号码函数,一个是用新号码发布新订单。
  
  现在我们已经在数据库中获得了所需的初始值,我们需要一个 API 路由来将其加一。我们使用了 mongoDB 的 findOneAndUpdate() 和 $inc 方法来设置路由。
  
  请注意第 7 行:我们传入参数括号;首先,空大括号,然后是另一个对象内的嵌套对象。
  
  外部对象定义了递增的方法。内部对象定义了在哪个属性上执行该方法以及执行多少。在我们的例子中,我们想将 1 添加到“数字”属性。  到目前为止,我们创建了我们需要的方案和模型,以及API路由。现在我们想在“托盘”组件中实现所有这些,并将后端连接到前端。
  
  我们制作了一个“下单”按钮,并为其分配了一个onClick功能。

<button onClick={() => newOrderNum()}> Place Order </button>

  这个按钮实际上有两个功能,一个接一个。
  
  我们必须这样设置,因为fetch函数是一个异步函数,我们需要完成它,以便在发布新订单之前获得编号。
  
  第一个函数将获取一个新的订单号,然后,它将激活第二个函数,新的订单编号作为参数传递。
微信点餐外卖小程序源码|点餐外卖系统开发浅谈  
  请注意,在第25-27行中,我们向API传递了一个“PATCH”方法。
  
  信息在第29-30行中获取。数据库中的号码被更新,我们会收到以前的号码。
  微信点餐外卖小程序源码|点餐外卖系统开发浅谈
  在第31行,我们将一个变量分配给数字(“newOrderNum”),在第32行,我们调用第二个函数,将整个订单发布到我们的数据库中。
  
  此外,您可以在第 8 行看到,我们只发回了“数字”的值,而不是整个对象。
微信点餐外卖小程序源码|点餐外卖系统开发浅谈  
  使用整个集合来分配订单号可能看起来很浪费。但它允许我们自由地以更准确和精确的方式管理数据库的其余部分。因此,从长远来看,它将帮助我们在工作中更加经济,从而提高生产力。

 文章来源地址https://www.toymoban.com/news/detail-492844.html

 

 

 

到了这里,关于微信点餐外卖小程序源码|点餐外卖系统开发浅谈的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ssm基于微信小程序的外卖点餐系统的设计与实现毕业设计-附源码211704

    ssm基于微信小程序的外卖点餐系统的设计与实现毕业设计-附源码211704

    摘要 立足于当下餐饮行业现有的点餐模式,分析传统APP点餐的运作流程,结合微信小程序的特点设计新型的外卖点餐系统。近几年,人们生活水平日益提升,但工作强度和压力不断增强,尤其是对于上班族而言,到餐厅吃饭费时费力,而传统的APP点餐难以适应针对性。基于此

    2024年02月08日
    浏览(8)
  • 点餐系统源码|点餐外卖系统源码带小程序(源码+搭建教程)

    点餐系统源码|点餐外卖系统源码带小程序(源码+搭建教程)

    当今世界,在线订购系统已成为一种期望。顾客希望足不出户就能订购他们喜欢的食物和饮料。这导致了各种不同的在线订购系统的开发,以满足客户的需求。这就是为什么餐馆老板需要了解什么是在线订餐系统。 在线订购系统是企业为客户提供在线订购产品的能力的一种方

    2024年02月03日
    浏览(11)
  • 微信小程序餐饮奶茶扫码点餐小程序堂食外卖桌台自助下单源码

    微信小程序餐饮奶茶扫码点餐小程序堂食外卖桌台自助下单源码

    系统产品主要功能:【外卖】【堂食】【会员】【优惠券】【营销功能】【积分商城】【手机接单管理】【奶茶店】【餐饮店】【私房外卖】【酒吧/酒店】【小吃店】【便利店】【超市】全方位..... 餐饮5种场景 一、【桌台号/房问/包厢下单】扫码下单,服务员送餐上桌 二、

    2024年02月02日
    浏览(15)
  • 微信小程序点餐系统源码

    微信小程序点餐系统源码是食客在餐厅点餐和支付餐费的一种新方式。客人扫描桌子上的二维码。然后他们被带到一个移动友好的数字版本的餐厅菜单。从那里,客户可以直接通过手机订购食物和饮料。所有订单均由工作人员批准,然后可以通过打印机发送到酒吧或厨房。

    2024年02月09日
    浏览(10)
  • 点餐微信小程序系统 毕业设计-附源码221144

    点餐微信小程序系统 毕业设计-附源码221144

    springboot点餐微信小程序 摘  要 点餐微信小程序采用B/S模式、采用JAVA语言、springboot框架、mysql数据库、 小程序框架 uniapp等开工具。促进了点餐微信小程序的业务发展。与传统线下点餐相比,点餐维信小程序不但节省了商家的线下运营的成本和门店曝光等难题,对用户而言提

    2024年02月09日
    浏览(8)
  • 基于微信小程序的校园点餐系统小程序(源码+文档+部署+讲解)

    基于微信小程序的校园点餐系统小程序(源码+文档+部署+讲解)

    毕设帮助、技术解答、源码交流 联系方式见文末。 校园点餐系统小程序采用B/S模式、采用JAVA语言、springboot框架、mysql数据库、小程序框架uniapp等开工具,促进了校园点餐系统小程序的业务发展。与传统线下点餐相比,校园点餐系统小程序不但节省了卖家的线下运营的成本和

    2024年04月28日
    浏览(175)
  • 基于微信小程序的餐饮自助点餐系统(源码+文档+包运行)

    基于微信小程序的餐饮自助点餐系统(源码+文档+包运行)

    毕设帮助、技术解答、源码交流 联系方式见文末。 微信小程序的出现,给建设自己的线上餐饮店铺提供了无限可能。商家有了自己的餐饮小程序,用户通过微信里面就可以看到并且可以自助点餐。本课题研究的基于微信小程序的自助点餐系统前后台分离,让商品订单,用户

    2024年02月03日
    浏览(12)
  • Java基于微信小程序的校园外卖平台系统,附源码

    Java基于微信小程序的校园外卖平台系统,附源码

    博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W+、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 2022-2024年最全的计算机软件毕业设计选题大全:

    2024年04月11日
    浏览(14)
  • springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)

    springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)

    技术架构 SprongBoot+Mysql+微信小程序 简介 本点餐小程序是使用Java/JavaScript编程语言开发的,存储数据方面则用到了MySQL数据库。顾客可以使用小程序扫码功能扫描餐厅桌角的二维码就座,也可以点击排号等位由后台工作人员安排就座;通过首页搜索框搜寻指定菜品,将菜单中的

    2023年04月13日
    浏览(10)
  • 基于微信小程序的点餐系统源码/基于uni-app点餐系统app【有多种UI样式】

    基于微信小程序的点餐系统源码/基于uni-app点餐系统app【有多种UI样式】

    目录 一、整体目录(示范): 文档含项目技术介绍、E-R图、数据字典、项目功能介绍与截图等 二、运行截图 三、代码部分(示范): 四、数据库表(示范): 数据库表有注释,可以导出数据字典及更新数据库时间,欢迎交流学习 五、主要技术介绍: 六、项目调试学习(点击

    2024年02月10日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包