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