# 定位系統 Web API 技術指引 ## 請求錯誤代碼說明 * 401:填入參數錯誤 * 402:accesToken 錯誤 * 403:無權限操作 * 404:系統錯誤 ## 取得總部/品牌/門店 API網址:http://localhost/dudoo/reservation/getHQBrandsCompany 功能說明:取得所有公司總部名稱,顯示在下拉選單,並為取得品牌的查詢必要條件。 限制條件:使用者必須登入 通訊協議命令:POST #### Request 輸入參數 | 參數名稱 | 描述 | 類型和長度限制 | 必填(Y/N) | | ----------- | ------------------------------------------------------------ | -------------- | --------- | | type | 本參數填入「**HQ**」則回應會獲得總部<br />填入「**BRANDS**」則回應會獲得品牌<br />填入「**COMPANY**」則回應會獲得門店 | String | Y | | hierarchyId | 當 type 填入「**BRANDS**」時,此參數必須帶入 | Int | N | | brandId | 當 type 填入「**COMPANY**」時,此參數必須帶入 | Int | N | #### Response 返回結果(成功) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | hierarchyId | 總部編號,當輸入參數 type = '**HQ**' 的時候才會出現 | Int | | brandId | 品牌編號,當輸入參數 type = '**BRANDS**' 的時候才會出現 | Int | | companyId | 門店編號,當輸入參數 type = '**COMPANY**' 的時候才會出現 | Int | | name | 當輸入參數 type = '**HQ**' 的時候為總部名稱<br />當輸入參數 type = '**BRANDS**' 的時候為品牌名稱<br />當輸入參數 type = '**COMPANY**' 的時候為門店名稱 | String | | type | 當輸入參數 type = '**HQ**' 的時候顯示**HQ**<br />當輸入參數 type = '**BRANDS**' 的時候顯示**BRANDS**<br />當輸入參數 type = '**COMPANY**' 的時候顯示**COMPANY** | String | #### Response 返回結果顯示範例(成功) ```json # $type = 'HQ' 的時候 { success: true, recordsTotal: 1, recordsFiltered: 1, data:[ { hierarchyId:1, name:"圓石", type:"HQ" } ] } # $type = 'BRANDS' 的時候 { success: true, recordsTotal: 1, recordsFiltered: 1, data:[ { brandId:10, name:"我是品牌", type:"BRANDS" } ] } # $type = 'COMPANY' 的時候 { success: true, recordsTotal: 1, recordsFiltered: 1, data:[ { companyId: 31, name:"圓石左營店", type:"COMPANY" } ] } ``` #### Response 返回結果(失敗) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | code | 錯誤代碼 | Int | | msg | 錯誤訊息 | String | #### Response 返回結果顯示範例(失敗) ```json { success: false, recordsTotal: 1, recordsFiltered: 1, data:[ { code:401, msg:"填入參數錯誤" } ] } ``` ## 通知發送紀錄 API網址:http://localhost/dudoo/reservation/notificationSendLog 功能說明:本 API 提供通知發送紀錄頁面顯示資料,查詢條件除了起迄日期不得留空之外,其他欄位均可留空。 限制條件:查詢條件除了起迄日期必須填入參數之外,其餘參數非必填。 通訊協議命令:POST #### Request 輸入參數 | 參數名稱 | 描述 | 類型和長度限制 | 必填(Y/N) | | ----------- | ------------------------- | -------------- | --------- | | hierarchyId | 總部,填入總部編號 | Int | N | | brandId | 品牌,填入品牌編號 | Int | N | | companyId | 門店,填入門店編號 | Int | N | | phone | 手機號碼搜尋 | String(15) | N | | username | 顧客姓名 | String | N | | startDate | 起迄日期,格式 YYYY/mm/dd | DateTime | Y | | endDate | 起迄日期,格式 YYYY/mm/dd | DateTime | Y | #### Response 返回結果(成功) | 參數名稱 | 描述 | 類型和長度限制 | | -------------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | createTime | 訊息發送時間,格式為 yyyy/mm/dd HH:ii | Date | | phone | 顧客電話,當 notificationResource 為**簡訊**時不論發送成功與否,都要顯示電話號碼。當 notificationResource 為**LINE**則顯示 「 - 」即可。 | String(15) | | name | 顧客姓名 | String | | hq | 交易總部 | String | | brand | 交易品牌 | String | | company | 發送門店 | String | | notificationResource | 通知類型(sms = 簡訊 / line = LINE) | String | | notificationType | 通知種類:<br />confirm = 訂位確認(自動)<br />remind_auto = 用餐提醒(自動)<br />remind_manual = 用餐提醒(手動) | String | | status | 狀態種類:<br />queue = 排程中<br />sent = 成功<br />fail = 失敗<br />terminate = 失敗 | String | | id | 通知發送紀錄ID,取自 notify_job 表格的 job_id 欄位 | Int | #### Response 返回結果顯示範例(成功) ```json { success: ture, recordsTotal: 4, recordsFiltered: 4, data:[ { id: 1, createTime: "2018/07/20 08:02", phone: "0918106177", name: "翁先珍", hq: "酮溫層酮低碳飲食專賣店", brand: "健身廚房", company: "奎克咖啡", notificationResource: "sms", notificationType: "confirm", status: "terminate" }, { id: 2, createTime: "2018/07/20 08:02", phone: "0919233121", name: "謝一行", hq: "健身廚房", brand: "健身廚房", company: "健身廚房", notificationResource: "sms", notificationType: "remind_auto", status: "sent" }, { id: 3, createTime: "2018/07/20 08:02", phone: "-", name: "林君稀", hq: "瓏鹽酥雞", brand: "瑪喜大韓食堂", company: "瓏鹽酥雞", notificationResource: "line", notificationType: "remind_auto", status: "sent" }, { id: 4, createTime: "2018/07/20 08:02", phone: "-", name: "謝羽志", hq: "翻白眼女孩 炭烤三明治", brand: "陳媽媽私房雞肉", company: "翻白眼女孩 炭烤三明治", notificationResource: "line", notificationType: "remind_auto", status: "sent" } ] } ``` #### Response 返回結果(失敗) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | code | 錯誤代碼 | Int | | msg | 錯誤訊息 | String | #### Response 返回結果顯示範例(失敗) ```json { success: false, recordsTotal: 1, recordsFiltered: 1, data:[ { code:401, msg:"填入參數錯誤" } ] } ``` ## 發送通知統計 API網址:http://localhost/dudoo/reservation/notificationSendStatic 功能說明:本 API 提供通知發送統計頁面顯示資料,查詢條件除了起迄日期不得留空之外,其他欄位均可留空。 限制條件:查詢條件除了起迄日期必須填入參數之外,其餘參數非必填。 通訊協議命令:POST #### Request 輸入參數 | 參數名稱 | 描述 | 類型和長度限制 | 必填(Y/N) | | ----------- | ------------------------- | -------------- | --------- | | hierarchyId | 總部,填入總部編號 | Int | N | | brandId | 品牌,填入品牌編號 | Int | N | | companyId | 門店,填入門店編號 | Int | N | | startDate | 起迄日期,格式 YYYY/mm/dd | DateTime | Y | | endDate | 起迄日期,格式 YYYY/mm/dd | DateTime | Y | #### Response 返回結果(成功) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | smsTotal | 簡訊發送數量合計 | Int | | lineTotal | Line 訊息發說數量合計 | Int | | createTime | 發送時間,格式為 YYYY/mm/dd | Date | | sms | 當日簡訊發送數量合計 | Int | | line | 當日Line 訊息發說數量合計 | Int | #### Response 返回結果顯示範例(成功) ```json { success: true, recordsTotal: 1, recordsFiltered: 1, smsTotal: 60905, lineTotal: 816, data:[ { createTime: "2018/08/15", sms: 59606, line: 312 }, { createTime: "2018/08/14", sms: 11068, line: 402 }, { createTime: "2018/08/13", sms: 67417, line: 403 } ] } ``` #### Response 返回結果(失敗) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | code | 錯誤代碼 | Int | | msg | 錯誤訊息 | String | #### Response 返回結果顯示範例(失敗) ```json { success: false, recordsTotal: 1, recordsFiltered: 1, data:[ { code:401, msg:"填入參數錯誤" } ] } ``` ## 通知方案設定/新增/修改/刪除通知方案 API網址:http://localhost/dudoo/reservation/alterNotificationProgram 功能說明:本 API 提供通知方案設定新增一個通知方案 限制條件:使用者必須登入 通訊協議命令:POST #### Request 輸入參數 | 參數名稱 | 描述 | 類型和長度限制 | 必填(Y/N) | | --------- | ------------------------------------------------------------ | -------------- | --------- | | name | 方案名稱 | String | Y | | startDate | 開始販售日期 | DateTime | Y | | endDate | 結束販售日期,不填預設永久 | DateTime | N | | price | 方案收費金額 | Int | Y | | smsPrice | SMS簡訊每組價錢 | Float | Y | | linePrice | LINE訊息通知每組價錢 | Float | Y | | type | **CREATE** = 新增,**UPDATE** = 修改,**DELETE** = 刪除 | String | Y | | id | **dudoo_center.services 的 id**,當操作 **UPDATE**、**DELETE** 時才需要傳入此參數 | Int | N | | disabled | 販售狀態,0 = 銷售,1 = 停售 | Int | N | #### Response 返回結果(成功) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | code | 狀態碼,code = 0 表示新增方案成功 | Int | | msg | 新增/修改/刪除完畢顯示訊息 | String | #### Response 返回結果顯示範例(成功) ```json { success: true, recordsTotal: 1, recordsFiltered: 1, data: { code: 201, msg: "操作成功" } } ``` #### Response 返回結果(失敗) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | code | 錯誤代碼 | Int | | msg | 錯誤訊息 | String | #### Response 返回結果顯示範例(失敗) ```json { success: false, recordsTotal: 1, recordsFiltered: 1, data:[ { code:401, msg:"填入參數錯誤" } ] } ``` ## 通知方案設定/顯示所有通知方案 API網址:http://localhost/dudoo/reservation/getNotificationProgram 功能說明:本 API 提供通知方案設定頁面載入時,顯示所有方案狀態列表 限制條件:使用者必須登入 通訊協議命令:GET #### Request 輸入參數 | 參數名稱 | 描述 | 類型和長度限制 | 必填(Y/N) | | -------- | ---- | -------------- | --------- | | 無 | - | - | - | #### Response 返回結果(成功) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | name | 方案名稱 | String | | startDate | 銷售開始時間,格式為YYYY-mm-dd HH:ii:ss | String | | endDate | 結束銷售時間,格式為YYYY-mm-dd HH:ii:ss,若是 NULL 表示無限期 | String | | linePrice | LINE(組/價) | Int | | lineAmount | Line 可發送數(組) | Int | | smsPrice | 簡訊(組/價) | Int | | smsAmount | 簡訊可發送數(組) | Int | | programPrice | 方案金額 | Int | | status | 狀態 0 = 排程中,1 = 銷售中,2 = 已停售 | Int | | id | **dudoo_center.services 的 id** | Int | #### Response 返回結果顯示範例(成功) ```json { success: true, recordsTotal: 1, recordsFiltered: 1, data:[ { name: "豪華套餐", startDate: "2020-02-06 00:00:00", endDate: "2020-12-31 00:00:00", linePrice: 2.5, lineAmount: 3600, smsPrice: 5, smsAmount: 1800, programPrice: 9000, status: 1 } ] } ``` #### Response 返回結果(失敗) | 參數名稱 | 描述 | 類型和長度限制 | | --------------- | ------------------------------------------------------------ | -------------- | | success | 成功 = true,失敗 = false | Boolean | | recordsTotal | 查詢資料總筆數 | Int | | recordsFiltered | 如果有搜尋時的資料筆數,如果無搜尋條件則與 recordsTotal 相同 | Int | | code | 錯誤代碼 | Int | | msg | 錯誤訊息 | String | #### Response 返回結果顯示範例(失敗) ```json { success: false, recordsTotal: 1, recordsFiltered: 1, data:[ { code:403, msg:"無權限操作" } ] } ``` ##