# 加值服務
---
- 常數定義
- [加值服務效期類型](#加值服務效期類型)
- [加值服務啟用效期類型](#加值服務啟用效期類型)
- [售價優惠條件類型](#售價優惠條件類型)
- [加值服務狀態](#加值服務狀態)
- [使用者加值服務記錄狀態](#使用者加值服務記錄狀態)
- 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
}
}
}
```