---
# System prepended metadata

title: 機器人總店購買頁面
tags: [實習]

---

###### tags: `實習`
# 機器人總店購買頁面
**檔案存放地點:bot_2/index.php**
## 依賴的物件方法
1. bot_2/function.php
    * convertUrlQuery:解析url傳入參數
    * urlQueryDeleteMethod:只保留url本身
2. bot_2/lib/mysqli.php and bot_3/lib/mysqli.php     
    * allDrinkData:拿取所有存在網路上的飲料資料
    * queryDrinkData:以id去查詢這個飲料的資料
    * allSeriesData:回傳全部的分類
    * querySeriesData:以id去查詢這個分類的資料
    * getOrderQueueNumber:以Line交易編號以及訂單編號查詢訂單序號
    * getAllHistoryOrder:查詢所有過去的訂單
    * getHistoryOrderDataByOrderNumber:用訂單編號查詢過去訂單
    * getLineByOrderIndex:用訂單編號查詢過去最新訂單的line id
    * saveUserOrderData:儲存用戶此次訂單所有資料
    * saveOrderAddress:保存用戶地址
    * deleteUserOrderData:儲存刪除的訂單至一個資料庫進行保存
    * deleteOriginalOrderData:刪除訂單資料的紀錄(不保存
    * getUserOrderData:取得過去使用者訂單資料
    * getUserOrderDataLatest:取得使用者最新訂單資料
    * updateUserOrderData:更新使用者訂單資料
    * getInventorySwitchSchedule:以名字拿取開關目前狀態(店家配料狀態/關店)
    * updateInventorySwitchSchedule:以名字更新開關目前狀態(店家配料狀態/關店)
    * setInventorySwitchSchedule:設定一個全先開關儲存狀態
    * setInventoryAutoOpenTime_H:設定庫存自動開啟時間
    * getInventoryAutoOpenTime_H:取得目標項目庫存自動開啟時間
    * updateInventoryAutoOpenTime_H:更新目標項目庫存自動開啟時間
    * setInventoryStatus:設定庫存狀態
    * getInventoryStatus:以項目名子取得目標項目庫存狀態
    * getInventoryStatusAPI:取得全部目標項目庫存狀態
    * updateInventoryStatus:以項目名子更新目標項目庫存狀態
    * setData:設定資料(首頁跑馬燈/付款結果頁廣告圖)
    * getData:拿取資料(首頁跑馬燈/付款結果頁廣告圖)
    * updateData:更新資料(首頁跑馬燈/付款結果頁廣告圖)
    * setSwitchStatus:設定開關狀態(付款結果頁廣告/分店機器人/總店機器人/首頁跑馬燈)
    * getSwitchStatus:拿取開關狀態(付款結果頁廣告/分店機器人/總店機器人/首頁跑馬燈)
    * updateSwitchStatus:更新開關狀態(付款結果頁廣告/分店機器人/總店機器人/首頁跑馬燈)
    * setStatisticsCount:設定新的統計數量
    * getStatisticsCount:以名子取得統計數量
    * updateStatisticsCount:以名子更新統計數量
    * saveReservationOrder:儲存預約訂單
    * getAllReservationOrder:取得所有預約訂單
    * deleteReservationOrder:刪除預約訂單
    * setLineBotPushStatus:設定 Line Bot Push 狀態
    * getLineBotPushStatus:以店名更新 Line Bot Push 狀態
    * updateLineBotPushStatus:更新 Line Bot Push 狀態
    * getHistoryOrderHighestDaySales:取得訂單歷史紀錄最高當日銷量
    * getHistoryOrderHighestDaySalesAmount:取得訂單歷史紀錄最高當日銷售額
    * getHistoryOrderForDailySalesCount:取得訂單歷史紀錄每日銷售量
    * getHistoryOrderForDailyOrderCount:取得訂單歷史紀錄每日訂單量
    * getHistoryOrderSalesCountAmountOfEveryMonth:取得訂單每個月銷售數量金額
    * saveLineNotifyAccessToken:儲存 Line Notify 訪問令牌
    * getLineNotifyAccessToken:拿取 Line Notify 訪問令牌
    * updateLineNotifyAccessToken:更新 Line Notify 訪問令牌
    * deleteLineNotifyAccessToken:刪除 Line Notify 訪問令牌
    * getUserOrderCupCountOfMonth:取得客戶月總訂單杯數
    * getAllLineUserID:取得所有使用過系統的 Line userID
    * getAllLineUserIDForSelf:取得所有使用過系統自取的 Line userID(外送/自取)
    * getAllLineUserIDForTakeout:取得所有使用過系統外送的 Line userID
    * createUserData:創建使用者資料
    * createInvitationCode:創建邀請碼
    * getInvitationCode:拿取邀請碼
    * getLineUserIDByInvitationCode:利用邀請碼找到所有者 Line userID
    * getUserRangeTotalAmount:指定日期範圍取得使用者消費總金額
    * getLocationCount:過去點餐位置
    * updateLocationCount:更新每個地址配送次數
    * getRandomStrings:隨機文字
    * saveUberEatsPrintHistory:儲存 Uber Eats 列印歷史
    * getUberEatsPrintHistory: 使用訂單 ID 取得 Uber Eats 列印歷史
    * saveUserInfoFromCookie:存使用者cookie進去資料庫
    * checkInfoFromUserInfo:使用者cookie使否存在
    * SavePointHistory:儲存點數歷史紀錄
3. bot_2/lib/Points.php
    * get:取得總累積點數
    * add:更新點數
    * delete:扣除點數
## 流程
### 初始化
1. 檢查是否是否有 $shipping_method 若沒有 預設自取
2. 檢查是否有過去用戶的訂單暫存，若有就恢復過去訂單(已經無功能) 銜接早期用戶
3. 檢查是否有過去用戶電話號，若有就恢復過去訂單(已經無功能)銜接早期用戶
### 主畫面
### 跑馬燈
#### 初始化
1. 詢問資料庫是否需要開啟跑馬燈
2. 若需要開啟，去資料庫拿取目前的跑馬燈資訊
### 點餐完成，確認訂單按鈕
#### Onclick
1. 將畫面切至確認訂單的畫面
2. 將暫存的訂單資訊拉出
3. 並將拉出的資料，放入確認清單畫面，讓客人可以一次檢視所有的飲料
### 確認清單畫面
#### 功能
1. 可以快速刪除單項
2. 可以變更單項購買資訊
3. 可以刪除全部訂單
4. 可以回到點餐畫面
5. 可以進入結帳畫面
### 結帳畫面
#### 功能
1. 可以填入個人資訊
2. 可以變更店家
3. 可以填入配送時間
4. 可以填入備註
5. 可以查詢運費配送免運表
6. 跳回選購畫面
7. 現金付款
8. Line pay 付款
### 結算畫面
#### 功能
1. 可以填入個人資訊
2. 可以變更店家暫
3. 可以填入配送時間
4. 可以填入備註
5. 可以查詢運費配送免運表
6. 跳回選購畫面
7. 現金付款
8. Line pay 付款
## 可以改進的項目
1. 模組化運費配送免運費用文檔，目前是寫死在網站上面
2. 模組化自動判斷店家加入運費進入金額，目前是寫死在網站上面
3. 模組化判斷店家是否開店
4. 可以有更多的支付方式
5. 更好的點餐UI
6. 將總店以及分店做合併
7. 預留活動區域，可以動態載入當前活動
8. 更新目前訂單狀態
9. 即時顯示目前訂單配送位置
10. 推測配送預測時間
11. 狀態更新，主動通知消費者
12. 防範DDOS攻擊
![](https://i.imgur.com/BNu92AM.jpg)(https://drive.google.com/file/d/130lzAqMXqGMs3E14mYpDR70ZOK4aVepP/view?usp=sharing)


   
 