###### 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)