---
# System prepended metadata

title: 加值服務

---

# 加值服務

---
- 常數定義
  - [加值服務效期類型](#加值服務效期類型)
  - [加值服務啟用效期類型](#加值服務啟用效期類型)
  - [售價優惠條件類型](#售價優惠條件類型)
  - [加值服務狀態](#加值服務狀態)
  - [使用者加值服務記錄狀態](#使用者加值服務記錄狀態)
- API 清單
  - 加值服務管理[WEB]
    - [組織機構列表](#組織機構列表)
    - [疾病列表](#疾病列表)
    - [加值服務管理列表](#加值服務管理列表)
    - [取得加值服務管理明細](#取得加值服務管理明細)
    - [新增加值服務](#新增加值服務)
    - [編輯加值服務](#編輯加值服務)
    - [編輯加值服務狀態](#編輯加值服務狀態)
    - [刪除加值服務](#刪除加值服務)
    - [服務啟用待確認清單](#服務啟用待確認清單)
    - [服務啟用](#服務啟用)
  - App端
    - [取得加值服務列表](#取得加值服務列表)
    - [取得加值服務明細](#取得加值服務明細)
    - [購買加值服務](#購買加值服務)
    - [啟用服務](#啟用服務)
  
---


## 常數定義
### 加值服務效期類型
 欄位 | 型態  | 說明  
 ---|---|---
 periodType | string | 加值服務效期類型, YEAR: 年, MONTH: 月, TIME: 次

### 加值服務啟用效期類型
 欄位 | 型態  | 說明  
 ---|---|---
 applyPeriodType | string | 加值服務啟用效期類型, MONTH: 月, DAY: 天

### 售價優惠條件類型
 欄位 | 型態  | 說明  
 ---|---|---
 priceType | string | 售價優惠條件類型, DEFAULT: 預設(依會員等級折扣), CUSTOM: 自定義折扣

### 加值服務狀態
 欄位 | 型態  | 說明  
 ---|---|---
 status | string | 加值服務狀態, NONE: 未啟用, ON:已啟用, OFF:停用

### 使用者加值服務記錄狀態
 欄位 | 型態  | 說明  
 ---|---|---
 status | string | 使用者加值服務記錄狀態, 01: 未啟用, 02:啟用中, 03:已啟用, 04:已終止, 05:退款中

---

# API 清單
## 加值服務管理[WEB]

### 組織機構列表
```url
POST /value-added-service-mgmt/tenant-list
```
* 權限: 平台管理員

#### Request-組織機構列表

```javascript
```

#### Response-組織機構列表
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 機構組織id
 name | string | 機構組織名稱
 status | boolean | 狀態, true: 啟用, false: 停用

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
                "name": "小港醫院",
                "tenantType": "HOSPITAL",
                "status": true,
                "industryTypeList": [],
                "featureList": []
            },
            ...
        ]
    }
}
```


### 疾病列表
```url
POST /value-added-service-mgmt/disease-list
```
* 權限: 平台管理員

#### Request-疾病列表

```javascript
```

#### Response-疾病列表
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 疾病id
 name | string | 疾病名稱
 status | boolean | 狀態, true: 啟用, false: 停用

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "DM",
                "name": "DM",
                "status": true,
                "i18N": "CASE.DISEASE_TYPE.DM"
            },
            ...
        ]
    }
}
```


### 加值服務管理列表
```url
POST /value-added-service-mgmt/list
```
* 權限: 平台管理員

#### Request-加值服務管理列表
##### Request-加值服務管理列表-query (查詢條件json)
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 serviceName | string | | 50 | | 服務名稱
 tenantId | string | | 36 | | 機構組織id
 status | string | | 10 | | 加值服務狀態, 未填則表示查詢全部, 參閱 [加值服務狀態](#加值服務狀態)
 
##### Request-加值服務管理列表-pagination (分頁json)
 欄位 | 型態  | 必填 | 預設 | 說明
 ---|---|---|---|---
 current | int | | 1 | 當前頁數 
 pageSize | int | | 10 | 每頁結果數量，-1 為顯示所有
 
##### Request-加值服務管理列表-sorter (排序json) 
 欄位 | 型態  | 必填 | 預設 | 說明
 ---|---|---|---|--- 
 field | string | | updateTime | 排序欄位,可排序欄位有 serviceName, tenantName, period, periodType, price, priceType, memberCount, status, updateTime
 order | string | | desc | 升序或降序 

```javascript
{
    "query": {
        "levelType": null,
        "startDate": null,
        "endDate": null,
        "status": null
    } ,
    "pagination": {
        "current": 1,
        "pageSize": 10
    }, 
    "sorter": {
        "field": "updateTime",
        "order": "desc"
    }
}
```


#### Response-加值服務管理列表
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 diseaseId | string | 疾病id
 diseaseName | string | 疾病名稱
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 加值服務啟用效期
 applyPeriodType | string | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 price | decimal | 售價(一般會員)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 memberCount | int | 會員數量
 updateTime | timestamp | 更新日期時間

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "403e939f-7009-4e92-aa83-7cee20670503",
                "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
                "tenantName": "小港醫院",
                "serviceName": "營養師諮詢服務",
                "serviceNameEn": "Dietitian Consulting Services",
                "diseaseId": "ECKD",
                "period": 1,
                "periodType": "YEAR",
                "applyPeriod": 1,
                "applyPeriodType": "MONTH",
                "priceType": "DEFAULT",
                "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
                "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs,...",
                "status": "NONE",
                "createTime": 1676365389338,
                "updateTime": 1676365389338,
                "memberCount": 0,
                "price": 3000
            }
        ],
        "pagination": {
            "current": 1,
            "pageSize": 10,
            "total": 1
        },
        "sorter": {
            "field": "updateTime",
            "order": "desc"
        },
        "total": 1
    }
}
```


### 取得加值服務管理明細
```url
POST /value-added-service-mgmt/info
```
* 權限: 平台管理員

#### Request-取得加值服務管理明細
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 id | string | Y | 36 | | 加值服務id
 
```javascript
{
    "id": "403e939f-7009-4e92-aa83-7cee20670503"
}
```

#### Response-取得加值服務管理明細
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 diseaseId | string | 疾病id
 diseaseName | string | 疾病名稱
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 加值服務啟用效期
 applyPeriodType | string | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 price | decimal | 售價(一般會員)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 updateTime | timestamp | 更新日期時間
 priceList | json array | 售價json array

##### Response-取得加值服務管理明細-priceList(json)
 欄位 | 型態 | 說明 
 ---  | --- | ---
 memberLevel | string | 會員等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 price | decimal | 售價
 revenuePlatform | decimal | 平台分額
 revenueTenant | decimal | 租戶分額

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "403e939f-7009-4e92-aa83-7cee20670503",
            "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
            "tenantName": "小港醫院",
            "serviceName": "營養師諮詢服務-1",
            "serviceNameEn": "Dietitian Consulting Services-1",
            "diseaseId": "DM",
            "diseaseName": "DM",
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
            "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, planning a diet execution plan, ...",
            "status": "NONE",
            "createTime": 1676365389338,
            "updateTime": 1676366379672,
            "priceList": [
                {
                    "memberLevel": "NORMAL",
                    "price": 3000,
                    "revenuePlatform": 500,
                    "revenueTenant": 2500
                },
                {
                    "memberLevel": "SILVER",
                    "price": 2800,
                    "revenuePlatform": 300,
                    "revenueTenant": 2500
                },
                {
                    "memberLevel": "GOLD",
                    "price": 2700,
                    "revenuePlatform": 200,
                    "revenueTenant": 2500
                }
            ]
        }
    }
}
```


### 新增加值服務
```url
POST /value-added-service-mgmt/add
```
* 權限: 平台管理員
* 新增的加值服務狀態為NONE: 未啟用
* 已有購買的加值服務不允許刪除

#### Request-新增加值服務
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 tenantId | string | Y | 36 | | 機構組織id
 serviceName | string | Y | 500 | | 服務名稱(中文)
 serviceNameEn | string |  | 500 | | 服務名稱(英文)
 diseaseId | string | Y  | 36 |  | 收案疾病id
 period | int | Y | | | 加值服務效期, 需 > 0
 periodType | string | Y | 10 | | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | Y | | | 加值服務啟用效期, 需 > 0
 applyPeriodType | string | Y | 10 | | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | Y | 10 | | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string |  | 2000 | | 服務描述(中文)
 descriptionEn | string |  | 2000 | | 服務描述(英文)
 priceList | json array | Y | | | 售價json array

#### Request-新增加值服務-priceList(json)
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 memberLevel | string | Y | 10 | | 會員等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 price | decimal | Y | | | 售價, 售價=平台分額+租戶分額
 revenuePlatform | decimal | Y | | | 平台分額
 revenueTenant | decimal | Y | | | 租戶分額

 
```javascript
{
    "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
    "serviceName": "營養師諮詢服務",
    "serviceNameEn": "Dietitian Consulting Services",
    "diseaseId": "ECKD",
    "period": 1,
    "periodType": "YEAR",
    "applyPeriod": 1,
    "applyPeriodType": "MONTH",
    "priceType": "DEFAULT",
    "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
    "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
    "priceList": [
        {
            "memberLevel": "NORMAL",
            "price": 3000,
            "revenuePlatform": 500,
            "revenueTenant": 2500
        }, 
        {
            "memberLevel": "SILVER",
            "price": 2850,
            "revenuePlatform": 350,
            "revenueTenant": 2500
        }, 
        {
            "memberLevel": "GOLD",
            "price": 2700,
            "revenuePlatform": 200,
            "revenueTenant": 2500
        }
    ]
}
```


#### Error-新增加值服務
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.ARGUMENT_ERROR | 輸入參數錯誤, 可參閱 errorDesc

#### Response-新增加值服務
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 diseaseId | string | 疾病id
 diseaseName | string | 疾病名稱
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 加值服務啟用效期
 applyPeriodType | string | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 price | decimal | 售價(一般會員)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 updateTime | timestamp | 更新日期時間

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "403e939f-7009-4e92-aa83-7cee20670503",
            "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
            "serviceName": "營養師諮詢服務",
            "serviceNameEn": "Dietitian Consulting Services",
            "diseaseId": "ECKD",
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
            "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
            "status": "NONE",
            "createTime": 1676365389338,
            "updateTime": 1676365389338,
            "creator": "a1131b35-dab0-4593-899b-9485356e02d4",
            "updater": "a1131b35-dab0-4593-899b-9485356e02d4"
        }
    }
}
```

### 編輯加值服務
```url
POST /value-added-service-mgmt/update
```
* 權限: 平台管理員
* 編輯加值服務, 不會更新目前狀態

#### Request-編輯加值服務
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 id | string | Y | 36 | | 加值服務id
 tenantId | string | Y | 36 | | 機構組織id
 serviceName | string | Y | 500 | | 服務名稱(中文)
 serviceNameEn | string |  | 500 | | 服務名稱(英文)
 diseaseId | string | Y  | 36 |  | 收案疾病id
 period | int | Y | | | 加值服務效期, 需 > 0
 periodType | string | Y | 10 | | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | Y | | | 加值服務啟用效期, 需 > 0
 applyPeriodType | string | Y | 10 | | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | Y | 10 | | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string |  | 2000 | | 服務描述(中文)
 descriptionEn | string |  | 2000 | | 服務描述(英文)
 priceList | json array | Y | | | 售價json array

#### Request-編輯加值服務-priceList(json)
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 memberLevel | string | Y | 10 | | 會員等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 price | decimal | Y | | | 售價, 售價=平台分額+租戶分額
 revenuePlatform | decimal | Y | | | 平台分額
 revenueTenant | decimal | Y | | | 租戶分額

```javascript
{
    "id": "403e939f-7009-4e92-aa83-7cee20670503",
    "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
    "serviceName": "營養師諮詢服務-1",
    "serviceNameEn": "Dietitian Consulting Services-1",
    "diseaseId": "DM",
    "period": 1,
    "periodType": "YEAR",
    "applyPeriod": 1,
    "applyPeriodType": "MONTH",
    "priceType": "DEFAULT",
    "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
    "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
    "priceList": [
        {
            "memberLevel": "NORMAL",
            "price": 3000,
            "revenuePlatform": 500,
            "revenueTenant": 2500
        }, 
        {
            "memberLevel": "SILVER",
            "price": 2800,
            "revenuePlatform": 300,
            "revenueTenant": 2500
        }, 
        {
            "memberLevel": "GOLD",
            "price": 2700,
            "revenuePlatform": 200,
            "revenueTenant": 2500
        }
    ]
}
```

#### Error-編輯加值服務
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.NOT_EXIST | 無此筆資料
 400 | API_ERROR.ARGUMENT_ERROR | 輸入參數錯誤, 可參閱 errorDesc

#### Response-編輯加值服務
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 diseaseId | string | 疾病id
 diseaseName | string | 疾病名稱
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 加值服務啟用效期
 applyPeriodType | string | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 price | decimal | 售價(一般會員)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 updateTime | timestamp | 更新日期時間

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "403e939f-7009-4e92-aa83-7cee20670503",
            "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
            "serviceName": "營養師諮詢服務",
            "serviceNameEn": "Dietitian Consulting Services",
            "diseaseId": "ECKD",
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
            "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
            "status": "NONE",
            "createTime": 1676365389338,
            "updateTime": 1676365389338,
            "creator": "a1131b35-dab0-4593-899b-9485356e02d4",
            "updater": "a1131b35-dab0-4593-899b-9485356e02d4"
        }
    }
}
```


### 編輯加值服務狀態
```url
POST /value-added-service-mgmt/update-status
```
* 權限: 平台管理員

#### Request-編輯加值服務狀態
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 id | string | Y | 36 | | 加值服務id
 status | string | Y | 10 | | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)

```javascript
{
    "id": "403e939f-7009-4e92-aa83-7cee20670503",
    "status": "ON"
}
```

#### Error-編輯加值服務狀態
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.NOT_EXIST | 無此筆資料
 400 | API_ERROR.ARGUMENT_ERROR | 輸入參數錯誤, 可參閱 errorDesc
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_MGMT_UPDATE_STATUS_NOT_ALLOWED | 不允許變更加值服務狀態

#### Response-編輯加值服務狀態
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 diseaseId | string | 疾病id
 diseaseName | string | 疾病名稱
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 加值服務啟用效期
 applyPeriodType | string | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 price | decimal | 售價(一般會員)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 updateTime | timestamp | 更新日期時間

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "403e939f-7009-4e92-aa83-7cee20670503",
            "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
            "serviceName": "營養師諮詢服務",
            "serviceNameEn": "Dietitian Consulting Services",
            "diseaseId": "ECKD",
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
            "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
            "status": "ON",
            "createTime": 1676365389338,
            "updateTime": 1676365389338,
            "creator": "a1131b35-dab0-4593-899b-9485356e02d4",
            "updater": "a1131b35-dab0-4593-899b-9485356e02d4"
        }
    }
}
```

### 刪除加值服務
```url
POST /value-added-service-mgmt/delete
```
* 權限: 平台管理員
* 只允許刪除未啟用/已停用加值服務, 且無會員數量的加值服務

#### Request-刪除加值服務
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 id | string | Y | 36 | | 加值服務id

```javascript
{
    "id": "403e939f-7009-4e92-aa83-7cee20670503"
}
```

#### Error-刪除加值服務
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.NOT_EXIST | 無此筆資料
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_MGMT_DELETE_NOT_ALLOWED_STATUS_ON | 不允許刪除已啟用加值服務
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_MGMT_DELETE_NOT_ALLOWED_HAD_MEMBERS | 不允許刪除加值服務,已有會員

#### Response-刪除加值服務
 欄位 | 型態 | 說明 
 ---  | --- | ---
 count | int | 刪除筆數, > 0 表示成功刪除

```javascript
{
    httpCode: 200,
    result: {
        data: {
            count: 1
        }
    }
}
```

### 服務啟用待確認清單
```url
POST /value-added-service-mgmt/list-apply-active
```
* 權限: 一般租戶使用者

#### Request-服務啟用待確認清單
##### Request-服務啟用待確認清單-query (查詢條件json)
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 startDate | string | | 10 | | 要搜尋的啟始日期, YYYY-MM-DD
 endDate | string | | 10 | | 要搜尋的結束日期, YYYY-MM-DD
 keyword | string | | 50 | | 輸入關鍵字查詢姓名或手機號碼
 
##### Request-服務啟用待確認清單-pagination (分頁json)
 欄位 | 型態  | 必填 | 預設 | 說明
 ---|---|---|---|---
 current | int | | 1 | 當前頁數 
 pageSize | int | | 10 | 每頁結果數量，-1 為顯示所有
 
##### Request-服務啟用待確認清單-sorter (排序json) 
 欄位 | 型態  | 必填 | 預設 | 說明
 ---|---|---|---|--- 
 field | string | | activeApplyTime | 排序欄位,可排序欄位有 activeApplyTime, userName, gender, serviceName
 order | string | | desc | 升序或降序 

```javascript
{
    "query": {
        "startDate": null,
        "endDate": null,
        "keyword": null
    } ,
    "pagination": {
        "current": 1,
        "pageSize": 10
    }, 
    "sorter": {
        "field": "activeApplyTime",
        "order": "desc"
    }
}
```


#### Response-服務啟用待確認清單
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 使用者加值服務記錄id
 vasId | string | 加值服務id
 householdMemberId | string | householdMemberId
 userName | string | 使用者名稱
 mobile | string | 手機號碼
 gender | int | 1: 男, 2: 女
 serviceName | string | 加值服務名稱(中文)
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 status | string | 使用者加值服務記錄狀態, 參閱 [使用者加值服務記錄狀態](#使用者加值服務記錄狀態)
 activeApplyTime | timestamp | 申請啟用時間
 suggestActiveTime | timestamp | 服務啟用日期建議值
 suggestExpiredTime | timestamp | 服務到期日期建議值

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "29449983-a5d7-4bd4-bed1-1c24a845bdba",
                "vasId": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
                "householdMemberId": "150b53f5-7126-4900-9fb0-87a08b45e06b",
                "userName": "呂學霖",
                "mobile": "0973621449",
                "gender": 1,
                "serviceName": "營養師諮詢服務",
                "period": 1,
                "periodType": "YEAR",
                "status": "02",
                "activeApplyTime": 1677748765832,
                "suggestActiveTime": 1677838235147,
                "suggestExpiredTime": 1709481599999
            },
            ...
        ],
        "pagination": {
            "current": 1,
            "pageSize": 10,
            "total": 2
        },
        "sorter": {
            "field": "activeApplyTime",
            "order": "desc"
        },
        "total": 2
    }
}
```

### 服務啟用
```url
POST /value-added-service-mgmt/active
```
* 權限: 一般租戶使用者

#### Request-服務啟用
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 uvasId | string | Y | 36 | | 使用者加值服務記錄id
 activeTime | string | Y | 10 | | 服務啟用日期, YYYY-MM-DD
 expiredTime | string | Y | 10 | | 服務到期日期, YYYY-MM-DD
 
```javascript
{
    "uvasId": "980e50ac-57d2-4ba1-861d-11944ce22096",
    "activeTime": "2023-03-03",
    "expiredTime": "2023-12-31"
}
```

#### Error-刪除加值服務
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.NOT_EXIST | 無此筆資料
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_MGMT_ACTIVE_NOT_ALLOWED_STATUS | 不允許核准啟用, 非申請啟用狀態


#### Response-服務啟用
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 使用者加值服務記錄id
 householdMemberId | string | householdMemberId
 vasId | string | 訂購的加值服務id
 purchaseId | string | 訂購記錄id
 memberLevel | string | 訂購時的會員卡等級
 price | decimal | 訂購時的售價
 period | int | 訂購時的加值服務效期
 periodType | string | 訂購時的加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 訂購時的加值服務啟用效期
 applyPeriodType | string | 訂購時的加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 訂購時的售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 activeTime | timestamp | 服務啟用時間
 expiredTime | timestamp | 服務到期時間 
 activeApplyEndTime | timestamp | 服務申請啟用截止時間
 activeApplyTime | timestamp | 服務申請啟用時間
 status | string | 使用者加值服務記錄狀態, 參閱 [使用者加值服務記錄狀態](#使用者加值服務記錄狀態)
 createTime | timestamp | 建立日期時間
 updateTime | timestamp | 更新日期時間

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "980e50ac-57d2-4ba1-861d-11944ce22096",
            "householdMemberId": "60f6252e-0450-4494-a899-6ff5c81ed9b4",
            "vasId": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
            "purchaseId": "8bb20b29-129b-4271-a6df-1bb95e70d41c",
            "memberLevel": "SILVER",
            "price": 3000,
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "activeTime": 1677772800000,
            "expiredTime": 1704038399999,
            "activeApplyEndTime": 1679759999999,
            "activeApplyTime": 1677748765832,
            "status": "03",
            "createTime": 1677060326715,
            "updateTime": 1677838798862
        }
    }
}
```


## App端

### 取得加值服務列表
```url
POST /value-added-service/list-available
```
* 權限: App一般使用者

#### Request-取得加值服務列表
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---

```javascript
```

#### Response-取得加值服務列表
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 price | decimal | 售價(一般會員)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 updateTime | timestamp | 更新日期時間
 price | decimal | 售價(一般會員)
 priceList | json array | 售價json array
 currentMemberLevel | string | 使用者目前的會員卡等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 memberDiscountPrice | decimal | 會員優惠價(非一般會員時才會顯示此欄位)

##### Response-取得加值服務列表-priceList(json)
 欄位 | 型態 | 說明 
 ---  | --- | ---
 memberLevel | string | 會員等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 price | decimal | 售價
 

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
                "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
                "tenantName": "小港醫院",
                "serviceName": "營養師諮詢服務",
                "serviceNameEn": "Dietitian Consulting Services",
                "period": 1,
                "periodType": "YEAR",
                "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
                "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
                "status": "ON",
                "updateTime": 1676538372470,
                "price": 3000,
                "priceList": [
                    {
                        "memberLevel": "NORMAL",
                        "price": 3000
                    },
                    ...
                ],
                "currentMemberLevel": "SILVER",
                "memberDiscountPrice": 2850
            }
        ]
    }
}
```

### 取得加值服務明細
```url
POST /value-added-service/info
```
* 權限: App一般使用者

#### Request-取得加值服務明細
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 id | string | Y | 36 | | 加值服務id
 
```javascript
{
    "id": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d"
}
```

#### Response-取得加值服務明細
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 加值服務id
 tenantId | string | 機構組織id
 tenantName | string | 機構組織名稱
 serviceName | string | 加值服務名稱(中文)
 serviceNameEn | string | 加值服務名稱(英文)
 diseaseId | string | 疾病id
 diseaseName | string | 疾病名稱
 period | int | 加值服務效期
 periodType | string | 加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 加值服務啟用效期
 applyPeriodType | string | 加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 description | string | 服務內容(中文)
 descriptionEn | string | 服務內容(英文)
 status | string | 加值服務狀態, 參閱 [加值服務狀態](#加值服務狀態)
 updateTime | timestamp | 更新日期時間
 price | decimal | 售價(一般會員)
 priceList | json array | 售價json array
 currentMemberLevel | string | 使用者目前的會員卡等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 memberDiscountPrice | decimal | 會員優惠價(非一般會員時才會顯示此欄位)

##### Response-取得加值服務明細-priceList(json)
 欄位 | 型態 | 說明 
 ---  | --- | ---
 memberLevel | string | 會員等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
 price | decimal | 售價
 

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
            "tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
            "tenantName": "小港醫院",
            "serviceName": "營養師諮詢服務",
            "serviceNameEn": "Dietitian Consulting Services",
            "diseaseId": "ECKD",
            "diseaseName": "ECKD",
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "description": "透過營養師個人化專屬菜單設計，精算每日所需營養，規劃出飲食執行計劃，並且由營養師追蹤客戶的執行與成效，用飲食打造客戶最佳的身體狀態!",
            "descriptionEn": "Through the dietitian＇s personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, ...",
            "status": "ON",
            "createTime": 1676538372470,
            "updateTime": 1676538372470,
            "price": 3000,
            "priceList": [
                {
                    "memberLevel": "NORMAL",
                    "price": 3000
                },
                ...
            ],
            "currentMemberLevel": "SILVER",
            "memberDiscountPrice": 2850
        }
    }
}
```

### 購買加值服務
```url
POST /value-added-service/purchase
```
* 權限: App一般使用者

* App端點擊購買後, 呼叫此API, API會回傳訂單info
* Android端呼叫綠界SDK執行付款流程, iOS則執行WebView執行付款流程

#### Request-購買加值服務
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 vasId | string | Y  | 36 |  | 購買的加值服務id
 invoiceType | string | Y  | 10 |  | 發票類型. PERSONAL: 個人 DONATION: 捐贈 COMPANY: 企業
 loveCode | string | N  | 7 |  | 捐贈碼, invoiceType=DONATION時必填
 carrierNum | string | N  | 8 |  | 載具編號, invoiceType=PERSONAL時選填
 customerIdentifier | string | N  | 8 |  | 統編, invoiceType=COMPANY時必填
 customerName | string | N  | 60 |  | 公司名稱, invoiceType=COMPANY時必填
 customerAddr | string | N  | 100 |  | 發票寄送地址, invoiceType=COMPANY時必填
 customerPhone | string | N  | 20 |  | 客戶電話, customerEmail為空時必填
 customerEmail | string | N  | 80 |  | 客戶電子信箱, customerPhone為空時必填

 
```javascript
{
    "vasId": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
    "invoiceType": "PERSONAL",
    "customerPhone": "0987654321"
}
```

#### Error-購買加值服務
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.NOT_EXIST | 無此筆資料
 400 | API_ERROR.ARGUMENT_ERROR | 輸入參數錯誤, 可參閱 errorDesc
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_PURCHASE_NOT_ALLOWED_NOT_ON_STATUS | 不允許購買加值服務, 加值服務非啟用狀態
 422 | SERVICE_ERROR.INVOICE_LOVE_CODE_ERROR | 發票資訊-捐贈碼錯誤
 422 | SERVICE_ERROR.INVOICE_BAR_CODE_ERROR | 發票資訊-手機載具錯誤
 422 | SERVICE_ERROR.INVOICE_COMPANY_IDENTIFIER_INFO_ERROR | 發票資訊-統編資訊錯誤
 422 | SERVICE_ERROR.INVOICE_CUSTOMER_PHONE_EMAIL_NOT_FOUND | 發票資訊-客戶信箱或電話未填

#### Response-購買加值服務
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 訂單id
 orderType | string | 訂單類型, 此處會是VALUE_ADDED_SERVICE: 加值服務
 orderNo | string | 訂單號碼 
 totalAmount | int | 付款金額
 paymentType | string | 付款類型, 此處會是ONETIME: 信用卡一次付清
 issueDate | timestamp | 訂單建立日期
 orderTime | timestamp | 訂單建立日期時間
 orderStatus | string | 訂單狀態, NONE:尚未付款, PROCESSING:付款處理中, COMPLETED:付款成功, FAILED:付款失敗 
 target | string | 訂單所對應的加值服務購買記錄id
 householdMemberId | string | householdMemberId
 itemName | string | 訂單購買項目名稱
 createTime | timestamp | 建立日期時間
 updateTime | timestamp | 更新日期時間

```javascript   
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "4b040353-2162-4f69-8620-e563403eb708",
            "orderType": "VALUE_ADDED_SERVICE",
            "orderNo": "VA2301180001",
            "totalAmount": 0,
            "paymentType": "ONETIME",
            "issueDate": 1673971200000,
            "orderTime": 1674028877594,
            "orderStatus": "NONE",
            "target": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
            "householdMemberId": "150b53f5-7126-4900-9fb0-87a08b45e06b",
            "itemName": "營養師諮詢服務",
            "updateTime": 1674028877590,
            "createTime": 1674028877590
        }
    }
}
```


### 啟用服務
```url
POST /value-added-service/apply-active
```
* 權限: App一般使用者

* 狀態為未啟用時, 可呼叫此API申請啟用服務

#### Request-購買加值服務
 欄位 | 型態  | 必填 | 長度限制 | 預設 | 說明  
 ---|---|---|---|---|---
 id | string | Y  | 36 |  | 使用者加值服務記錄id, 可從購買記錄明細API裡取得

 
```javascript
{
    "id": "29449983-a5d7-4bd4-bed1-1c24a845bdba"
}
```

#### Error-購買加值服務
 httpCode | 錯誤碼 | 說明
 --- | --- | ---
 400 | API_ERROR.NOT_EXIST | 無此筆資料
 400 | API_ERROR.ARGUMENT_ERROR | 輸入參數錯誤, 可參閱 errorDesc
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_APPLY_ACTIVE_NOT_ALLOWED_STATUS | 非未啟用狀態,不允許申請啟用
 422 | SERVICE_ERROR.VALUE_ADDED_SERVICE_APPLY_ACTIVE_NOT_ALLOWED_OVER_END_TIME | 已超過申請啟用時間,不允許申請啟用
 

#### Response-購買加值服務
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 使用者加值服務記錄id
 householdMemberId | string | householdMemberId
 vasId | string | 訂購的加值服務id
 purchaseId | string | 訂購記錄id
 memberLevel | string | 訂購時的會員卡等級
 price | decimal | 訂購時的售價
 period | int | 訂購時的加值服務效期
 periodType | string | 訂購時的加值服務效期類型, 參閱 [加值服務效期類型](#加值服務效期類型)
 applyPeriod | int | 訂購時的加值服務啟用效期
 applyPeriodType | string | 訂購時的加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#加值服務啟用效期類型)
 priceType | string | 訂購時的售價優惠條件類型, 參閱 [售價優惠條件類型](#售價優惠條件類型)
 activeTime | timestamp | 服務啟用時間
 expiredTime | timestamp | 服務到期時間 
 activeApplyEndTime | timestamp | 服務申請啟用截止時間
 activeApplyTime | timestamp | 服務申請啟用時間
 status | string | 使用者加值服務記錄狀態, 參閱 [使用者加值服務記錄狀態](#使用者加值服務記錄狀態)
 createTime | timestamp | 建立日期時間
 updateTime | timestamp | 更新日期時間

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "29449983-a5d7-4bd4-bed1-1c24a845bdba",
            "householdMemberId": "150b53f5-7126-4900-9fb0-87a08b45e06b",
            "vasId": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
            "purchaseId": "3dccc957-c113-4b00-ba51-041224aa6f06",
            "memberLevel": "SILVER",
            "price": 3000,
            "period": 1,
            "periodType": "YEAR",
            "applyPeriod": 1,
            "applyPeriodType": "MONTH",
            "priceType": "DEFAULT",
            "activeTime": null,
            "expiredTime": null,
            "activeApplyEndTime": 1679759999999,
            "activeApplyTime": 1677134525928,
            "status": "02",
            "createTime": 1677060326715,
            "updateTime": 1677060326715
        }
    }
}
```


