---
# System prepended metadata

title: 定位系統 Web API 技術指引

---



# 定位系統 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:"無權限操作"
    }
  ]
}
```

## 