999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于微信小程序的點餐系統設計與實現

2024-01-18 13:22:19王馗吳勇靈
現代信息科技 2023年22期
關鍵詞:互聯網

王馗 吳勇靈

收稿日期:2023-05-08

DOI:10.19850/j.cnki.2096-4706.2023.22.007

摘? 要:文章基于微信小程序設計并實現一款既便捷又實用的點餐系統。該系統由用戶、移動端和商家管理三個部分組成,用戶僅用手機即可完成點菜、確認訂單、付款等一系列流程。實驗結果表明,這種點餐模式既能簡化用戶的點餐流程,減少員工走動時間,又能提高餐廳的服務效率和服務質量,大大提升了食客的用餐體驗,具有一定的應用推廣價值。

關鍵詞:互聯網;點餐;微信小程序

中圖分類號:TP311? 文獻標識碼:A? 文章編號:2096-4706(2023)22-0030-07

Design and Implementation of Ordering System Based on WeChat Mini Program

WANG Kui, WU Yongling

(School of Physics and Electronics, Qiannan Normal University for Nationalities, Duyun? 558000, China)

Abstract: This paper design and implement a convenient and practical ordering system based on the WeChat Mini Program. The system consists of three parts: user, mobile terminal, and merchant management. Users can complete a series of processes such as ordering, confirming orders, and making payments using only their mobile phones. The experimental results show that this ordering mode can not only simplify the user's ordering process, reduce employee walking time, but also improve the service efficiency and quality of the restaurant, greatly improving the dining experience of diners, and has certain application and promotion value.

Keywords: Internet; ordering; WeChat Mini Program

0? 引? 言

傳統餐館的紙質點餐模式存在過程煩瑣、點餐時間長、錯誤下單率高等缺點,大大增加了餐廳的人力成本和運營成本。線上點餐系統的新模式使用戶僅用手機就能完成點菜、確認、付款等一系列流程,與傳統點菜時服務員面向用戶點餐相比更為自由、便捷。網上點餐系統能夠提高餐廳的服務效能,提升顧客的就餐體驗。為此,設計一款新型點餐系統極具現實意義。

本文基于微信小程序點餐系統具有開發成本低、迭代速度快的優點,不僅致力于給顧客提供更好的就餐體驗,還能讓商家節省很多的人力成本,可有效彌補傳統點餐模式存在的效率低、易出錯、手續煩瑣等缺點[1,2]。

1? 系統相關技術概述

點餐系統主要由三個部分組成,分別為手機移動端的點餐微信小程序、云開發內容管理(CMS)的菜品管理頁面以及云開發端的數據庫和服務器[3,4]。該系統小程序采用原生小程序框架[5],使用Hbuilder和微信開發者工具進行開發。網絡端的菜品管理頁面采用云開發騰訊云提供的云端一體化數據運營平臺進行編寫[6]。云開發端的數據庫及API接口為移動端和網絡端提供數據交互[7,8]。

1.1? 微信小程序

微信小程序是一款在微信上運行的軟件[9],其開發周期較短,開發成本低于APP,還可以提前進入應用領域[10,11]。微信公共平臺上的“小程序”具有開放的功能,不僅為用戶提供簡潔、高效的應用軟件開發資源,還提供大量的構件和API。微信APP并不是獨立存在的,如果有什么需要,只需在微信上搜索一下即可找到,使用微信二維碼掃描也能進入。

1.2? 云開發平臺

“微信云開發”是由“騰訊云”和“微信”兩個部門聯合開發的專用軟件開發平臺[12],開發人員可以使用云計算快速開發小程序、小游戲、公眾號和本地微信,無須創建自己的服務器,只需使用其API即可進行商業開發,而且還不需要驗證[13]。

云開發無須搭建服務器即可快速開展業務;無須對微信進行身份認證、簽名,密鑰,還可以使用特殊的協議和微信連接,保證了該服務的安全性[14],直接調用微信API即可開展工作;支持環境共享,可在后臺開發多個小程序、公眾號、網頁等,便于對業務代碼與數據進行復用[15]。

2? 系統設計

2.1? 系統總體架構

本系統從總體架構角度主要分為移動端的點餐微信小程序、云開發內容管理(CMS)的菜品管理頁面以及云開發平臺自帶的數據庫、云函數,如圖1所示。手機端程序采用微信小程序開發,所提供的主要功能是用戶用它進行菜品選購;云開發內容管理(CMS)便于商家管理菜品信息的增加、刪除、修改、查詢等;云開發數據庫存儲菜品信息、用戶數據等,API可以讓手機端的點菜和后臺的數據實現交互。

2.2? 功能模塊設計

2.2.1? 移動端功能模塊設計

手機端的功能模塊即點菜軟件。通常,顧客在餐館的點菜過程如圖2所示。根據點餐過程設計微信點餐軟件的主要功能,可以將其分為四個部分:首頁、分類、訂單管理、個人中心。

在使用這個APP的時候,消費者無須輸入用戶的賬號和口令。因為它是在微信的主機上運行的,在得到用戶的許可授權后即可以使用。通過用戶的授權,這個軟件可以自動獲得使用者的注冊資料。

用戶在獲得權限之后,即可以通過云端數據庫進行菜品的查詢,系統會將數據反饋給用戶,而點菜小程序可將菜單的圖片、名稱、價格等信息展示給用戶。

在分類頁面中,菜單的信息顯示為一個列表,使用者可以根據菜單的類別查詢相應的菜單,迅速找到自己所需的菜單類型。

使用者瀏覽菜單時,只需點擊菜單旁邊的“添加”鍵,即可將這道菜添加到“訂購”頁面,同時還可以看到所有顧客所選菜品的圖片、名稱和價格。使用者還能在“訂購”頁面上直接刪除或增減菜品的數量。

用戶在菜單欄中選擇自己想要的菜品后,點擊這個“訂單”界面會顯示出與菜單有關的信息,并給出相應的數字,以便顧客確定菜單上的菜品量是否合適。用戶在確認后即可訂購和支付。

2.2.2? 云開發管理功能模塊設計

云開發內容管理即商家管理后臺,作用是幫助商家管理某些菜品的信息,例如添加、修改、刪除等,如圖3所示。

商家管理后臺模塊可以讓商家對菜品的屬性(包括菜品的種類、名稱、價格、圖片、細節等)進行更為細致的管理。

2.2.3? 云存儲功能模塊設計

數據庫中需要存儲菜品的基本信息和用戶的行為信息,這些信息會被展示在小程序端的用戶界面上,用于數據解析。

云存儲系統具有高可用性、高穩定性、高安全性,支持諸如圖片、視頻等非結構數據,具有存儲管理[16]、上傳管理[17]、組件支持等特性。

在該系統中云存儲系統主要用于存放小程序端的一些Logo和圖片。

云功能涵蓋多個文件,還需要CPU和其他計算資源,可以在多個不同的地區進行部署。只需寫好功能函數代碼,并將其部署到云端,便可在應用程序端進行調用,云端函數也可以彼此調用呼叫[18,19]。

3? 系統實現

3.1? 微信點餐小程序實現

該小程序提供首頁、分類、訂單管理、個人中心四大功能。

3.1.1? 首頁模塊

打開微信的第一步就是點擊微信的授權頁面,授權之后將會為用戶實現自動登錄的操作。實現該功能的代碼如下:

Page({

//微信授權登錄

loadByWechat(){

wx.getUserProfile({

desc: '用戶完善會員資料',})

.then(res=>{

console.log("用戶允許了微信授權登錄",res.userInfo);

wx.reLaunch({

//將微信頭像和微信名稱傳遞給[我的]頁面

url: '../index/index',})

//保存用戶登錄信息到緩存

wx.setStorageSync('userInfo', res.userInfo)})

.catch(err=>{

console.log("用戶拒絕了微信授權登錄",err);

})},

})

進入主頁模塊,利用onload功能函數代碼與云端數據庫API界面獲取菜品的相關信息,并以輪播圖、每日特價菜品、每日推薦等方式呈現在用戶面前,功能實現代碼如下:

//生命周期函數--監聽頁面加載

onLoad: function (options) {

wx.setNavigationBarTitle({

title: '首頁' })

//自動加載下面兩個函數

this.todos()

this.getAll()},

todos(){

var _this = this;

//引用數據庫

const db = wx.cloud.database({

//這個是環境ID

env: 'cloud1-3g06cifc37cb7f3d'})

db.collection('todos').get({

//如果查詢成功的話,就將數據放在arr數組

success: res => {

console.log(res.data)

this.setData({arr: res.data})}

})},

getAll(){

var that=this; wx.cloud.database().collection('caipin').skip(this.data.arr1.length).get({

success(res){

console.log(res)

console.log(res.data.length)

that.setData({

arr1:that.data.arr1.concat(res.data)})

if(res.data.length!=0){

that.getAll()}

else{

wx.showToast({

title: '加載完成',

})}}

})},

使用者可以點擊圖片來放大查看菜品,若要點菜單,只需點Logo的“+”按鈕即可完成菜品的添加操作。

實現菜品圖片放大代碼如下:

//點擊圖片放大

previewImage0: function (e) {

var imgUrl0 = this.data.imgUrl0;

wx.previewImage({

urls: [imgUrl0], // 需要預覽的圖片列表

current: '',

})},

實現菜品添加到數據庫onclik()點擊事件函數代碼如下:

//添加數據到數據庫

onclik() {

const db = wx.cloud.database()

db.collection('tianjia').add({

data: {

cpname: "[魚香肉絲]",

images:"cloud://cloud1-3g06cifc37cb7f3d.636c-cloud1-3g06cifc37cb7f3d-1312530931/cloudbase-cms/upload/2022-07-28/z5yi6e2z0dl3cq9jbaxfld6bhooj0p9b_.png",

price:"29",

num:1},

})

db.collection('tianjia').get({

//如果查詢成功的話

success: res => {

console.log(res.data)

this.setData({

arr2: res.data

})}

})

wx.showToast({

title: '添加成功'

})},

3.1.2? 分類模塊

用戶點擊分類圖標后,小程序將跳轉到分類頁面(該頁面會把餐廳數據庫中所擁有的菜品信息分為川菜、淮揚菜、魯菜、粵菜、閩菜、湘菜、浙菜等八大菜系)。實現菜品前端分類頁面顯示和菜品導航欄代碼如下:

<!-- // 展示數組的前八條數據 -->

{{item.cpname}}

{{item.content}}

{{item.price}}

//左邊點擊事件

left_tap: function (e) {

console.log(e.currentTarget.dataset.index)

this.setData({

select_index:'select_index'+e.currentTarget.dataset.index})

console.log(this.data.select_index)},

//右邊scroll-view滑動事件

scroll: function(e) {

var h = e.detail.scrollTop//距離頂部的滾動距離

var scroll_height=0;

var select_index;},

點擊菜品右邊購物車圖標即可以添加菜品到訂單管理頁面。

3.1.3? 訂單管理模塊

用戶點擊訂單管理圖標后,小程序將跳轉到訂單管理頁面4(該頁面包含所有用戶選擇的菜品),用戶可以在已添加的菜品中進行菜品數量的增減。實現數量增減的函數代碼如下:

//數量加函數

numadd: function (e) {

var _this = this;

const index = e.currentTarget.dataset.index;

let carts = this.data.arr;

let num = carts[index].num;//數量

num = num + 1;

carts[index].num=num;

this.setData({

arr: carts});

var sum = 0;

for (var i = 0; i < carts.length; i++) {

var QC = _this.data.arr[i].num;

sum += parseFloat(QC);}

// console.log(sum);

var price = 0;

if (sum > 0) {

for (var i = 0; i < carts.length; i++){

var QB = _this.data.arr[i].price;

var QR = _this.data.arr[i].num;

price += QB * QR ;}}

console.log(price.toFixed(2))

this.setData({

add_car_num: sum,

price: price.toFixed(2)})},

//數量減函數

numminus: function (e) {

const index = e.currentTarget.dataset.index;

let carts = this.data.arr;

let _this = this;

let num = carts[index].num;

if (num <= 1) {

const index = e.currentTarget.dataset.index;

let carts = this.data.arr;

let state = carts[index].state;

state = 0;

carts[index].state = state;

carts[index].num = 0;

console.log(carts[index].num)

this.setData({

arr: carts,});}

else {

num = num - 1;

carts[index].num = num;

this.setData({

arr: carts,});}

var sum = 0;

for (var i = 0; i < carts.length; i++) {

var QC = _this.data.arr[i].num;

sum += parseFloat(QC);}

if (sum <= 0) {

this.setData({

ico_num: 0? ? ? });}

else{

this.setData({

ico_num: 1});}

var price = 0;

if (sum > 0) {

for (var i = 0; i < carts.length; i++) {

var QB = _this.data.arr[i].price;

var QR = _this.data.arr[i].num;

price += QB * QR;}}

this.setData({

add_car_num: sum,

price: price.toFixed(2)});},

將菜品往左滑動可以清除該菜品,實現刪除的函數及計算金額的代碼如下:

//刪除

delete_btn:function(e){

var that = this;

var index = e.currentTarget.dataset.index;

wx.showModal({

// title: '提示',

content: '刪除后不能恢復,是否刪除?',

confirmColor:'#1da1f2',

success: function (res) {

if (res.confirm) {

console.log(index)

var list = that.data.arr;

//移除列表中下標為index的項

list.splice(index, 1);

//更新列表的狀態

that.setData({

arr: list});

let carts = that.data.arr;

var sum = 0;

for (var i = 0; i < carts.length; i++) {

var QC = that.data.arr[i].num;

sum += parseFloat(QC);? ? ? ? ?}

var price = 0;

if (sum > 0) {

for (var i = 0; i < carts.length; i++) {

var QB = that.data.arr[i].price;

var QR = that.data.arr[i].num;

price += parseFloat(QB * QR);}}

//console.log(price)

that.setData({

add_car_num: sum,

price: price})}

else if (res.cancel) {

console.log('用戶點擊取消')}}

})}

3.1.4? 個人中心模塊

該頁面會登錄用戶授權時的頭像和昵稱信息,包含我的訂單(其中包含待支付、待評價、售后/退款、全部訂單4個子模塊)、聯系客服、意見反饋等模塊。

3.2? 云開發商家后臺管理實現

進入云開發內容管理(CMS)后,需要首先創建商家管理后臺項目,再進行內容模型等數據庫字段設計,如圖4所示。本系統的功能是對菜品信息進行管理,提供添加、修改、刪除、查詢等功能,如圖5所示。

3.3? 云開發的數據庫實現

數據庫主要是存儲菜單基礎數據,對每個文字、數字和地址進行特殊唯一ID值綁定,用不同的字段名去分配各類數據類型,顯示在小程序端的界面上,如圖6所示。

4? 結? 論

該系統的應用是建立在微信主機的基礎之上的,不需要下載,也不需要卸載,由移動端的點餐微信小程序、云開發內容管理(CMS)的菜品管理頁面以及云開發端的數據庫和服務器組成。其是根據點餐流程設計小程序的主體功能,包括菜品顯示與選擇、訂單信息顯示、付款以及評價功能。

對系統功能進行調試,調試情況總結如下:

1)移動端小程序頁面正常顯示出菜品的圖片、價格、名稱等信息,正常顯示操作按鈕圖標等頁面組件信息。點擊購物車Logo鍵后,就會彈出添加成功的提示。可在訂單管理里看到所有選擇的菜品信息,點擊加減鍵可增加或減少菜品份數,動態顯示計算總金額。

2)菜單信息管理功能能夠正常顯示菜品的相關信息,使用者可以正常添加、編輯、刪除單個菜品的相關信息,能夠大量刪除所選擇的菜品信息并獲得刪除成功提示。

基于微信小程序的點餐系統成功解決了傳統點餐模式存在的點餐效率低下、服務管理混亂、等餐時間漫長等餐廳運營難題,具有一定的應用推廣價值。

參考文獻:

[1] 李昊.基于微信小程序的智能推薦點餐系統的設計與實現 [D].南京:南京郵電大學,2020.

[2] 郭銀科,鄭承承.基于微信小程序掃碼點餐平臺設計與實現 [J].網絡安全和信息化,2022(2):84-86.

[3] 閆爍.基于微信小程序的商品展示系統的設計與實現 [D].大連:大連海事大學,2020.

[4] 李晶.基于微信小程序的美食推薦系統 [D].蘭州:蘭州大學,2021.

[5] 梁驍.基于微信小程序的移動學習平臺建設與應用研究 [D].牡丹江:牡丹江師范學院,2021.

[6] 姚梅玲.基于微信小程序的Scratch移動學習資源的設計和開發 [D].昆明:云南師范大學,2020.

[7] 史櫓,吳毅堅,趙文耘.JavaScript代碼分析技術綜述 [J].計算機應用與軟件,2018,35(11):16-25+32.

[8] 李孟輝.基于Web的云開發平臺的研究與實現 [D].成都:電子科技大學,2017.

[9] 舒嘉豪.基于微信小程序的答題系統的設計與實現 [D].武漢:華中科技大學,2020.

[10] 張麗瑩.《教育技術理論與創新》課程的微信小程序的設計研究 [D].內蒙古:內蒙古師范大學,2018.

[11] 李常寶.基于微信小程序的電子商城的設計與開發 [J].呂梁教育學院學報,2021,38(3):133-136.

[12] 孫路玲.微信小程序的場景應用研究 [D].長沙:湖南師范大學,2022.

[13] 賴曉鳳.微信小程序跨平臺競爭研究 [D].長沙:湖南大學,2020.

[14] 張曉蘭,陳奮.基于“微信小程序”的闖關游戲式學習平臺研究 [J].廈門城市職業學院學報,2019,21(3):78-82.

[15] 李珊.基于微信小程序的學生活動管理系統的設計與實現 [D].廣州:廣東工業大學,2020.

[16] 陸禹文.基于微信小程序的移動學習平臺的設計、開發及應用 [D].蘭州:蘭州大學,2021.

[17] 梁艷玲.基于HTML+CSS網頁布局定位參數研究 [J].呂梁學院學報,2022,12(2):17-22.

[18] 徐杰,孟建新.基于Javascript技術的關聯表單設計和實現 [J].現代電子技術,2008(2):93-94.

[19] 張蕊,歐陽資銘,李文杰,等.校園食堂預約微信小程序的研究與開發 [J].傳感器世界,2021,27(5):15-18+24.

作者簡介:王馗(2001.01—),男,漢族,貴州金沙人,本科在讀,研究方向:軟件編程;通訊作者:吳勇靈(1976.05—),男,苗族,貴州惠水人,教授,博士,研究方向:信息技術與物理教學融合研究、數據挖掘。

猜你喜歡
互聯網
互聯網+背景下數學試驗課程的探究式教學改革
科技視界(2016年21期)2016-10-17 18:47:55
基于“互聯網+”的京東自營物流配送效率分析
科技視界(2016年21期)2016-10-17 18:37:15
互聯網+醫療保健網的設計
科技視界(2016年21期)2016-10-17 17:07:28
試論網絡大環境下音樂作品的法律保護問題
商(2016年27期)2016-10-17 06:43:49
淺談大數據在出版業的應用
今傳媒(2016年9期)2016-10-15 23:35:12
淺析互聯網時代維基百科的生產模式
今傳媒(2016年9期)2016-10-15 22:51:03
“互聯網+”環境之下的著作權保護
今傳媒(2016年9期)2016-10-15 22:15:57
“互聯網+”對傳統圖書出版的影響和推動作用
今傳媒(2016年9期)2016-10-15 22:09:11
從“數據新聞”看當前互聯網新聞信息傳播生態
今傳媒(2016年9期)2016-10-15 22:06:04
互聯網背景下大學生創新創業訓練項目的實施
考試周刊(2016年79期)2016-10-13 23:23:28
主站蜘蛛池模板: 国产高清精品在线91| 成人在线观看一区| 国产免费羞羞视频| 欧美特黄一免在线观看| 日本欧美一二三区色视频| 污污网站在线观看| 久久天天躁夜夜躁狠狠| 成人国内精品久久久久影院| 亚洲欧美国产五月天综合| 国产成人精品日本亚洲77美色| 亚洲综合片| 一级毛片在线播放免费观看| 欧美午夜一区| 91精品啪在线观看国产91九色| 日韩精品免费一线在线观看| 久久国产拍爱| 色综合五月婷婷| 青草国产在线视频| 国产97区一区二区三区无码| 激情亚洲天堂| 国产成人三级| 97视频精品全国在线观看| 91网址在线播放| 亚洲av日韩av制服丝袜| 国产不卡一级毛片视频| 亚洲αv毛片| 色综合五月| 福利视频久久| 亚洲国产日韩在线成人蜜芽| 久久婷婷色综合老司机| 永久在线精品免费视频观看| 青青草原国产av福利网站| 国产幂在线无码精品| 国产三级韩国三级理| 国产精品开放后亚洲| 91原创视频在线| 精品久久高清| 在线精品视频成人网| 极品国产一区二区三区| 亚洲无码在线午夜电影| 亚洲人成网18禁| 青青青国产在线播放| 亚洲国产精品一区二区第一页免 | 高清不卡毛片| 日韩一区二区在线电影| 亚洲综合色婷婷中文字幕| 中文字幕无线码一区| 国产不卡国语在线| lhav亚洲精品| 国产亚洲精久久久久久无码AV| 国产va免费精品观看| 波多野结衣一区二区三区88| 狠狠色噜噜狠狠狠狠奇米777 | 亚洲综合亚洲国产尤物| 国产另类乱子伦精品免费女| 欧美人人干| 欧美成人午夜视频免看| 欧美午夜在线观看| 国产精品白浆在线播放| 午夜无码一区二区三区| 91视频首页| 香蕉伊思人视频| 在线观看免费黄色网址| 重口调教一区二区视频| 国产精品分类视频分类一区| 国产主播一区二区三区| 99久久99视频| 亚洲人成在线免费观看| 国产一级毛片高清完整视频版| 欧美有码在线| 国产精品久久久精品三级| 亚洲一区第一页| 91原创视频在线| 亚洲人网站| 亚洲综合日韩精品| 午夜a级毛片| 无码一区二区三区视频在线播放| 福利片91| 国内精品伊人久久久久7777人| 在线网站18禁| 亚洲人成人无码www| 国产精品视频白浆免费视频|