# 訂購記錄
---
- 常數定義
- [訂購類型](#訂購類型)
- [訂購記錄狀態](#訂購記錄狀態)
- [使用者訂購記錄項目狀態](#使用者訂購記錄項目狀態)
- API 清單
- App端
- [取得訂購記錄列表](#取得訂購記錄列表)
- [取得訂購記錄明細](#取得訂購記錄明細)
- Web端
- [取得當日新訂購數量](#取得當日新訂購數量)
- [取得加值服務機構單位列表](#取得加值服務機構單位列表)
- [取得加值服務列表](#取得加值服務列表)
- [匯出會員訂單報表](#匯出會員訂單報表)
---
## 常數定義
### 訂購類型
欄位 | 型態 | 說明
---|---|---
purchaseType | string | 訂購類型, MEMBER_CARD: 會員卡, VALUE_ADDED_SERVICE: 加值服務
### 訂購記錄狀態
欄位 | 型態 | 說明
---|---|---
status | string | 訂購記錄狀態, CREATED: 已建立, PAYING: 付款中, PAID: 已付款, PROCESSED: 已完成後續處理
### 使用者訂購記錄項目狀態
欄位 | 型態 | 說明
---|---|---
status | string | 使用者訂購記錄項目狀態, 01: 未啟用, 02:啟用中, 03:已啟用, 04:已終止, 05:退款中
---
# API 清單
## App端
### 取得訂購記錄列表
```url
POST /purchase-record/list
```
* 權限: App一般使用者
#### Request-取得訂購記錄列表
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
query | json | | | | 查詢條件json
#### Request-取得訂購記錄列表-query(json)
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
status | string | | | | 使用者訂購記錄項目狀態, 未填則表示查詢全部, 請參閱 [使用者訂購記錄項目狀態](#使用者訂購記錄項目狀態)
```javascript
{
"query": {
"status": null
}
}
```
#### Response-取得訂購記錄列表
欄位 | 型態 | 說明
--- | --- | ---
purchaseId | string | 訂購記錄id
purchaseType | string | 訂購類型, 參閱 [訂購類型](#訂購類型)
purchaseItemName | string | 訂購項目名稱
orderId | string | 訂單記錄id
targetId | string | 訂購項目id, 依據purchaseType=MEMBER_CARD, 為memberCardId, purchaseType=VALUE_ADDED_SERVICE, 為加值服務id
purchaseTime | timestamp | 訂購時間
status | string | 使用者訂購記錄項目狀態, 參閱 [使用者訂購記錄項目狀態](#使用者訂購記錄項目狀態)
activeTime | timestamp | 啟用時間
expiredTime | timestamp | 到期時間
activeApplyEndTime | timestamp | 服務申請啟用截止時間
activeApplyTime | timestamp | 服務申請啟用時間
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"purchaseId": "530860e4-c8db-4133-b311-0bbd97faa09b",
"purchaseType": "MEMBER_CARD",
"purchaseItemName": "銀卡會員",
"orderId": "7e274d01-2541-4cc1-9251-296f1c6e9570",
"targetId": "283634a5-aee8-499f-a4cb-7cb27a8048e9",
"purchaseTime": 1677061442771,
"status": "03",
"activeTime": 1677061582749,
"expiredTime": 1768838399999
},
{
"purchaseId": "3dccc957-c113-4b00-ba51-041224aa6f06",
"purchaseType": "VALUE_ADDED_SERVICE",
"purchaseItemName": "營養師諮詢服務",
"orderId": "a159010a-1ed7-486a-970d-c55e4dedb0b6",
"targetId": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
"purchaseTime": 1677059915484,
"tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
"tenantName": "小港醫院",
"status": "01",
"activeApplyEndTime": 1679759999999
},
...
],
"total": 4
}
}
```
### 取得訂購記錄明細
```url
POST /purchase-record/info
```
* 權限: App一般使用者
#### Request-取得訂購記錄明細
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
id | string | Y | 36 | | 訂購記錄id
```javascript
{
"id": "530860e4-c8db-4133-b311-0bbd97faa09b"
}
```
#### Response-取得訂購記錄明細
欄位 | 型態 | 說明
--- | --- | ---
userMemberCardInfo | json | 使用者會員卡記錄json
userValueAddedServiceInfo | json | 使用者加值服務記錄json
orderInfo | json | 訂單info json
##### Response-取得訂購記錄明細-userMemberCardInfo(json)
欄位 | 型態 | 說明
--- | --- | ---
id | string |
householdMemberId | string | householdMemberId
memberCardId | string | 訂購的會員卡id
period | int | 訂購時的會員卡效期
periodType | string | 訂購時的會員卡效期類型, 參閱 [會員卡效期類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E6%95%88%E6%9C%9F%E9%A1%9E%E5%9E%8B)
activeTime | timestamp | 會員效期啟始時間
expiredTime | timestamp | 會員效期到期時間
price | decimal | 訂購時的售價
upgradePoints | int | 訂購時的升等贈點
purchaseId | string | 訂購記錄id
levelType | string | 會員卡等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
isHot | boolean | 熱門選項
contentZh | string | 內容描述(中文)
contentEn | string | 內容描述(英文)
status | string | 使用者訂購記錄項目狀態, 參閱 [使用者訂購記錄項目狀態](#使用者訂購記錄項目狀態)
##### Response-取得訂購記錄明細-userValueAddedServiceInfo(json)
欄位 | 型態 | 說明
--- | --- | ---
id | string |
householdMemberId | string | housholdMemberId
vasId | string | 訂購的加值服務id
purchaseId | string | 訂購記錄id
memberLevel | string | 訂購時的會員卡等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
price | decimal | 訂購時的售價
period | int | 訂購時的加值服務效期
periodType | string | 訂購時的加值服務效期類型, 參閱 [加值服務效期類型](#https://hackmd.io/3o9lX9ByRr6i3d4vQ3Epig?view#%E5%8A%A0%E5%80%BC%E6%9C%8D%E5%8B%99%E6%95%88%E6%9C%9F%E9%A1%9E%E5%9E%8B)
applyPeriod | int | 訂購時的加值服務啟用效期
applyPeriodType | string | 訂購時的加值服務啟用效期類型, 參閱 [加值服務啟用效期類型](#https://hackmd.io/3o9lX9ByRr6i3d4vQ3Epig?view#%E5%8A%A0%E5%80%BC%E6%9C%8D%E5%8B%99%E5%95%9F%E7%94%A8%E6%95%88%E6%9C%9F%E9%A1%9E%E5%9E%8B)
priceType | string | 訂購時的售價優惠條件類型, 參閱 [售價優惠條件類型](#https://hackmd.io/3o9lX9ByRr6i3d4vQ3Epig?view#%E5%94%AE%E5%83%B9%E5%84%AA%E6%83%A0%E6%A2%9D%E4%BB%B6%E9%A1%9E%E5%9E%8B)
activeTime | timestamp | 服務啟用時間
expiredTime | timestamp | 服務到期時間
activeApplyEndTime | timestamp | 服務申請啟用截止時間
activeApplyTime | timestamp | 服務申請啟用時間
status | string | 使用者訂購記錄項目狀態, 參閱 [使用者訂購記錄項目狀態](#使用者訂購記錄項目狀態)
tenantId | string | 提供加值服務的租戶id
tenantName | string | 提供加值服務的租戶名稱
serviceName | string | 加值服務名稱(中文)
serviceNameEn | string | 加值服務名稱(英文)
description | string | 加值服務說明(中文)
descriptionEn | string | 加值服務說明(英文)
##### Response-取得訂購記錄明細-orderInfo(json)
欄位 | 型態 | 說明
--- | --- | ---
id | string | 訌單id
orderType | string | 訂單類型, MEMBER_LEVEL: 會員卡, VALUE_ADDED_SERVICE: 加值服務
orderNo | string | 訂單號碼
orderStatus | string | 訂單狀態, NONE:尚未付款, PROCESSING:付款處理中, COMPLETED:付款成功, FAILED:付款失敗
totalAmount | int | 付款金額
orderTime | timestamp | 訂單建立日期時間
paymentType | string | 付款類型, ONETIME: 信用卡一次付清
itemName | string | 訂購目名稱
* 使用者會員卡記錄
```javascript
{
"httpCode": 200,
"result": {
"data": {
"userMemberCardInfo": {
"id": "82a530fd-a449-4132-8f60-cbbed1424692",
"householdMemberId": "150b53f5-7126-4900-9fb0-87a08b45e06b",
"memberCardId": "283634a5-aee8-499f-a4cb-7cb27a8048e9",
"period": 1,
"periodType": "YEAR",
"activeTime": 1677061582749,
"expiredTime": 1768838399999,
"price": 1000,
"upgradePoints": 100,
"purchaseId": "530860e4-c8db-4133-b311-0bbd97faa09b",
"levelType": "SILVER",
"isHot": false,
"contentZh": ".健康購物享優惠價\r\n.生理量測/步行/飲食健康紀錄\r\n.健康分析\r\n.衛教資訊\r\n.參與線上活動",
"contentEn": ". Enjoy discounted prices for healthy shopping\r\n. Physiological measurement/walking/diet health records\r\n. Health analysis\r\n. Health education information\r\n. Online activities",
"status": "03"
},
"orderInfo": {
"id": "7e274d01-2541-4cc1-9251-296f1c6e9570",
"orderType": "MEMBER_LEVEL",
"orderNo": "ML2302220004",
"orderStatus": "COMPLETED",
"totalAmount": 1000,
"orderTime": 1677061442838,
"paymentType": "ONETIME",
"itemName": "銀卡會員"
}
}
}
}
```
* 使用者加值服務記錄
```javascript
{
"httpCode": 200,
"result": {
"data": {
"userValueAddedServiceInfo": {
"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",
"activeApplyEndTime": 1679759999999,
"status": "01",
"tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
"tenantName": "小港醫院",
"serviceName": "營養師諮詢服務",
"serviceNameEn": "Dietitian Consulting Services",
"description": "透過營養師個人化專屬菜單設計,精算每日所需營養,規劃出飲食執行計劃,並且由營養師追蹤客戶的執行與成效,用飲食打造客戶最佳的身體狀態!",
"descriptionEn": "Through the dietitian's personalized and exclusive menu design, actuarial calculation of dialy nutritional needs, planning a diet execution plan, and the nutritionist will track the client's execution and results, and use diet to create the best physical condition of the client!"
},
"orderInfo": {
"id": "a159010a-1ed7-486a-970d-c55e4dedb0b6",
"orderType": "VALUE_ADDED_SERVICE",
"orderNo": "VA2302220001",
"orderStatus": "COMPLETED",
"totalAmount": 3000,
"orderTime": 1677059915652,
"paymentType": "ONETIME",
"itemName": "營養師諮詢服務"
}
}
}
}
```
## Web端
### 取得當日新訂購數量
```url
POST /purchase-record-mgmt/new-purchase-count
```
* 權限: 平台管理員
#### Request-取得當日新訂購數量
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
```javascript
```
#### Response-取得訂購記錄列表
欄位 | 型態 | 說明
--- | --- | ---
totalCount | int | 當日新訂購的總數量
dataList | json array | 訂購類型json array
#### Response-取得訂購記錄列表-dataList(json)
欄位 | 型態 | 說明
--- | --- | ---
purchaseType | string | 訂購類型, 參閱 [訂購類型](#訂購類型)
count | int | 數量
```javascript
{
"httpCode": 200,
"result": {
"data": {
"totalCount": 5,
"dataList": [
{
"purchaseType": "MEMBER_CARD",
"count": 3
},
{
"purchaseType": "VALUE_ADDED_SERVICE",
"count": 2
}
]
}
}
}
```
### 取得加值服務機構單位列表
```url
POST /purchase-record-mgmt/vas-tenant-list
```
* 權限: 平台管理員
* 只列出有提供加值服務的租戶列表
#### Request-取得加值服務機構單位列表
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
```javascript
```
#### Response-取得加值服務機構單位列表
欄位 | 型態 | 說明
--- | --- | ---
tenantId | string | 租戶id
tenantName | string | 租戶名稱
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
"tenantName": "小港醫院"
},
...
]
}
}
```
### 取得加值服務列表
```url
POST /purchase-record-mgmt/vas-name-list
```
* 權限: 平台管理員
#### Request-取得加值服務列表
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
tenantId | string | | 36 | | 租戶id, 若未填入, 則列出所有加值服務列表
```javascript
{
"tenantId": null
}
```
#### Response-取得加值服務列表
欄位 | 型態 | 說明
--- | --- | ---
id | string | 加值服務id
serviceName | string | 加值服務名稱(中文)
serviceNameEn | string | 加值服務名稱(英文)
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "e8330b6f-6b8a-4320-a71e-94ef54bcd23d",
"serviceName": "營養師諮詢服務",
"serviceNameEn": "Dietitian Consulting Services"
},
...
]
}
}
```
### 匯出會員訂單報表
```url
POST /purchase-record-mgmt/export
```
* 權限: 平台管理員
#### Request-匯出會員訂單報表
欄位 | 型態 | 必填 | 長度限制 | 預設 | 說明
---|---|---|---|---|---
startDate | string | Y | 10 | | 訂單期間啟始日, YYYY-MM-DD
endDate | string | Y | 10 | | 訂單期間截止日, YYYY-MM-DD
purchaseType | string | | 10 | | 訂購類型, 參閱 [訂購類型](#訂購類型)
tenantId | string | | 36 | | 租戶id
vasId | string | | 36 | | 加值服務id
memberLevel | string | | 10 | | 會員等級, 參閱 [會員卡類型](#https://hackmd.io/kvZLCMSqSpW159tkxEVKmg#%E6%9C%83%E5%93%A1%E5%8D%A1%E9%A1%9E%E5%9E%8B)
```javascript
{
"startDate": "2023-02-01",
"endDate": "2023-02-28",
"purchaseType": null,
"tenantId": null,
"vasId": null,
"memberLevel": null
}
```
#### Response-匯出會員訂單報表
* httpCode 200 -Download file
```
File name: 會員訂單報表.xlsx
```