吃飯的時候,發現某個飯店的掃碼點餐功能很簡潔,不把它做出來,心裡癢癢的,從週一到週五,利用晚上下班時間,加上之前的積累,一個小demo 基本成型了。之後要是開個飯店就用它了~(手動狗頭)
如何使用
- 下載壓縮包
- 進入根目錄
php artisan cache:clear
php artisan migrate
php artisan db:seed
php artisan serve --port=8888
訪問
—我是分割線—
以下想二次開發的同學看
技術棧
api後端
- Laravel8.*
管理後端
管理後端沒動力寫了,等自己再遇到實際需求的時候在弄,現在用的是假資料填充。
前端
- uni-app (colorUi)
關於如何登入
考慮到登入的複雜性,更多的是根據業務來,因此,預設登入的是id為1 的使用者,但也有一個登入介面,改改就可以用。
更改.env 中的
APP_DEBUG=false
話,就會禁用預設登入,此時前端必透過登入介面,獲取token ,在header裡傳
關於支付
沒有微信商戶號,沒有支付能力,有商戶號的同學,當點選支付的時候,後臺寫兩個api,一個獲取微信的支付配置,另一個寫微信的支付回掉邏輯即可。
關於優惠
資料結構支援各種各樣的優惠邏輯,只需要將優惠資訊,儲存在 adjustments 表中,在重新呼叫 calculator 方法,就會重新計算應付金額。對於促銷活動,這一塊有時間,再搞一搞,這一塊挺有意思的。
關於原始碼
壓縮包裡包含了前端打包後的程式碼和後端原始碼
由於考慮到壓縮包只需要php環境就可執行,因此使用的是sqlite 資料庫。線上,可使用mysql。
DB_CONNECTION=mysql DB_HOST=mysql5 DB_PORT=3306 DB_DATABASE=saomadiancan DB_USERNAME=root DB_PASSWORD=123456
如有想要前端原始碼的同學,進行二次開發,聯絡我呀~
如何掃碼點餐
第一次進帶著引數 store_id 和 table_number,會放進快取裡,如不傳,store_id 預設是1,table_number 預設是10001
如想傳參store_id 2 則,先準備個假資料
php artisan db:seed
訪問 127.0.0.1:8888/h5?store_id=2 是id 為 2門店的選單
草圖
我是分割線
2021-03-19 晚更新
頻寬1M~~
研究了幾個晚上,已成功實現小程式連線藍芽列印,還比較穩定,使用workman進行訂單推送。有一點比較坑,小程式進入後臺wbsocket會自動斷,這樣訂單就推送不了了,使用的解決方案是後臺記錄沒有推送成功的訂單,起個定時任務,wbsocket連上後,再主動推給客戶端,在客戶端做了一個列印佇列,藍芽連不上的話,將訂單先放進佇列,連上自動列印,佇列的作用是不會串單,要不一起傳送給印表機就會列印重合,就亂掉了。
用uni-app 還能打安卓包和ios包,已經成功了打了一個安卓包,但怎麼除錯還在摸索中,假如使用安卓作為列印客戶端的話,優點是,進入後臺wbsocket不會斷,就能一直自動接單,但這樣就有點“重”,增加成本。一個小程式和一個印表機,“輕資產”,便宜,一個印表機也就100來塊錢,訂單推送workman穩定,還不要錢~
2021-03-25 更新新增優惠活動
- 滿減
- 打折
- 套餐
滿減-打折-套餐
本作品採用《CC 協議》,轉載必須註明作者和本文連結