# 健促指標總覽
---
API 清單
* [TOC]
---
## 健促指標分析
```url=
POST /health-promote/indicator-analyse
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
year | int | Y | | 年度
```javascript
{
"year": 2021
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
abnormal | int | 檢驗異常總人數
total | json | 員工總人數
-male | int | 男性員工人數
-female | int | 女性員工人數
list | json array | 指標項目array
-itemName | string | 項目名稱, BMI: BMI, BODY_WEIGHT: 體重, STEPS: 平均每日步行數
-gender | int | 性別, 1:男性, 2: 女性, 0: 全部
-max | int | 最高
-min | int | 最低
-avg | int | 平均值
-tooltip | string | 提示
```javascript
{
"httpCode": 200,
"result": {
"data": {
"abnormal": 5880,
"total": {
"male": 1000,
"female": 2000
},
"list": [
{
"id": "1552fc8b-055e-49d0-a7f8-8329389b8c84",
"itemName": "BMI",
"gender": 1,
"max": 30,
"min": 18,
"avg": 24,
"tooltip": "BMI\n30.1"
}
]
}
}
}
```
## 健促指標趨勢
```url=
POST /health-promote/indicator-trend
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
year | int | Y | | 年度
```javascript
{
"year": 2021
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
bodyWeight | json array | 體重月均值array
-month | int | 月份, 1: 1月, etc.
-male | float | 男性月均值
-female | float | 女性月均值
bmi | json array | BMI月均值array
-month | int | 月份, 1: 1月, etc.
-male | float | 男性月均值
-female | float | 女性月均值
```javascript
{
"httpCode": 200,
"result": {
"data": {
"bodyWeight": [
{
"month": 1,
"male": 75,
"female": 60.5
}, ...
],
"bmi": [
{
"month": 1,
"male": 28.6,
"female": 28.4
}, ...
]
}
}
}
```
## 體重變化分析
```url=
POST /health-promote/weight-analyse
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
startDate | timestamp | Y | | 開始日期
endDate | timestamp | Y | | 結束日期
topNum | int | Y | 5 | top數目
```javascript
{
"startDate": 1614528000000,
"endDate": 1614528000000,
"topNum" : 5
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
summary | json | 體重變化
-male | float | 男性體重變化值
-female | float | 女性體重變化值
list | json array | 體重變化 array
-no | int | top number
-name | string | 姓名
-gender | int | 1: 男性, 2: 女性
-avg | float | 平均體重
-delta | float | 體重變化
```javascript
{
"httpCode": 200,
"result": {
"data": {
"summary": {
"male": -1.5,
"female": 0.8
},
"list": [
{
"no": 1,
"name": "林大明",
"gender": 1,
"avg": 95.5,
"delta": -2.4
}, ...
]
}
}
}
```
## 步行數分析
```url=
POST /health-promote/step-analyse
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
startDate | timestamp | Y | | 開始日期
endDate | timestamp | Y | | 結束日期
topNum | int | Y | 5 | top數目
```javascript
{
"startDate": 1614528000000,
"endDate": 1614528000000,
"topNum" : 5
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
summary | json | 平圴每日步行數
-avg | int | 平圴每日步行數
list | json array | 平圴每日步行數 array
-no | int | top number
-name | string | 姓名
-gender | int | 1: 男性, 2: 女性
-avg | int | 平圴每日步行數
```javascript
{
"httpCode": 200,
"result": {
"data": {
"summary": {
"avg": 5500
},
"list": [
{
"no": 1,
"name": "林大明",
"gender": 1,
"avg": 6500
}, ...
]
}
}
}
```
## 匯出健促指標資料
```url=
POST /health-promote/indicator-export
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
year | int | Y | | 年度, 只查詢指定年度, startDate, endDate欄位不填
startDate | timestamp | Y | | 開始日期, 只查詢期間, year欄位不填
endDate | timestamp | Y | | 結束日期, 只查詢期間, year欄位不填
```javascript
{
"year": 2021
}
或是
{
"startDate": 1614528000000,
"endDate": 1614528000000
}
```
Response
* httpCode 400 - [errorMsg](https://gitlab.devpack.cc/Wei_Chang/wicc-kmuh/wikis/Type-Definition#service_error)
| errorMsg | desc |
| --------- |-------- |
|NOT_EXIST| 資料檔不存在 |
* httpCode 200 -Download file
```
File name: 健促指標統計.xlsx
```
## 匯出健促指標資料-體重/體脂/肌肉量變化
```url=
POST /health-promote/body-hw-export
```
**Request**
|欄位|型態|必填|預設|說明|
|---|---|---|---|---|
|startDate | timestamp | Y | | 開始日期|
|endDate | timestamp | Y | | 結束日期|
|resource | string | N | | 量測來源。<br>*可帶:**MANUAL**(手動輸入),<br>**DEVICE**(配對裝置&AIO).<br>*不帶值:查所有來源。|
```javascript
{
"startDate": 1622476800000,
"endDate": 1623340799000,
"resource":"DEVICE"
}
```
**Response**
* httpCode 400 - [errorMsg](https://gitlab.devpack.cc/Wei_Chang/wicc-kmuh/wikis/Type-Definition#service_error)
| errorMsg | desc |
| --------- |-------- |
|NOT_EXIST| 資料檔不存在 |
* httpCode 200 -Download file
* [Excel spec.](https://wistron-my.sharepoint.com/:x:/r/personal/annie_ih_wang_wistron_com1/Documents/Microsoft%20Teams%20%E8%81%8A%E5%A4%A9%E6%AA%94%E6%A1%88/H365_v2_%E5%8C%AF%E5%87%BA_%E4%BC%81%E6%A5%AD%E7%AE%A1%E7%90%86%E5%93%A1_%E5%81%A5%E4%BF%83%E9%AB%94%E9%87%8D%E7%B5%B1%E8%A8%88_v2.xlsx?d=w2e267c9e2c054afba584c2b70d05c61c&csf=1&web=1&e=K36JDu)
```
File name: 體重體脂肌肉量統計.xlsx
```
## 匯出平均步行數資料
```url=
POST /health-promote/step-export
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
startDate | timestamp | Y | | 開始日期
endDate | timestamp | Y | | 結束日期
```javascript
{
"startDate": 1614528000000,
"endDate": 1614528000000
}
```
Response
* httpCode 400 - [errorMsg](https://gitlab.devpack.cc/Wei_Chang/wicc-kmuh/wikis/Type-Definition#service_error)
| errorMsg | desc |
| --------- |-------- |
|NOT_EXIST| 資料檔不存在 |
* httpCode 200 -Download file
```
File name: 平均每日步行數統計.xlsx
```
## 匯出平均&每日步行數資料
```url=
POST /health-promote/step-daily-export
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
startDate | timestamp | Y | | 開始日期
endDate | timestamp | Y | | 結束日期
```javascript
{
"startDate": 1640966400000,
"endDate": 1641830399000
}
```
Response
* httpCode 400 - [errorMsg](https://gitlab.devpack.cc/Wei_Chang/wicc-kmuh/wikis/Type-Definition#service_error)
* 查詢日期超過60天 (查詢日期範圍限60天內)
| errorMsg | desc |
| --------- |-------- |
|ARGUMENT_ERROR | 參數錯誤 |
* httpCode 200 -Download file
```
File name: 每日步行數統計.xlsx
```
## 步行活動排行榜
- 不作token驗證
```url=
POST /health-promote/step-rank
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| areaCode | string | Y | | 租戶id |
| householdMemberId | string | N | | householdMemberId |
| startDate | string | Y | | 起始日期 |
| endDate | string | Y | | 結束日期 |
| departmentRankingType | string | y | 10 | 組別活動排名類型. <BR>TOTAL: 總步數<BR>AVERAGE: 人均步數<BR>DISTANCE: 累積距離 |
| rank | int | YN | | 個人排名 |
| departmentRank | int | N | | 部門排名 |
| departmentName | string | N | | 部門名稱, 會影響個人排行.<BR>有值: 會列出該部門內人員排名<BR>無值: 會列出全租戶的人員排名 |
```javascript
{
"areaCode": "5efcfd67-334e-45b3-bf49-7e52f5172891",
"startDate": "2023-07-01",
"endDate": "2023-07-31",
"rank": 23,
"departmentRank": 10,
"departmentRankingType": "DISTANCE",
"departmentName": "工業製造部"
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| tenantId | string | 租戶id |
| tenantName | string | 租戶名稱 |
| startDate | timestamp | 開始日期 |
| endDate | timestamp | 結束日期 |
| rank | int | 個人排行榜統計名次 |
| departmentRank | int | 組別排行榜統計名次 |
| myRank | object | 該user的步行數資料 |
| list | array | 個人排行明細 |
| departmentList | array | 組別排行明細 |
***myRank***
| 欄位 | 型態 | 說明
| -----| -----|--------
| rank | int | 排名 |
| name | string | 姓名 |
| employeeNo | string | 員工編號 |
| totalSteps | int | 累計步數 |
| totalDays | int | 累計天數 |
| rankLog | object | 排名歷史, 如果沒有歷史排名則本欄不存在 |
***rankLog***
| 欄位 | 型態 | 說明
| -----| -----|--------
| rank | int | 歷史排名 |
| updateTime | timestamp | 排名更新時間 |
***list***
| 欄位 | 型態 | 說明
| -----| -----|--------
| rank | int | 排名 |
| householdMemberId | string | 用戶ID |
| name | string | 用戶姓名 |
| employeeNo | string | 員工編號 |
| patDepartment | string | 組別名稱 |
| totalSteps | int | 總步數 |
| totalDistance | float | 總距離(KM)|
| totalDays | int | 運動天數 |
| carbonReduction | float | 減碳量 |
| caloriesBurned | float | 消耗卡路里(千卡) |
***departmentList***
| 欄位 | 型態 | 說明
| -----| -----|--------
| rank | int | 排名 |
| patDepartment | string | 組別名稱 |
| totalSteps | int | 總步數 |
| totalDistance | float | 總距離(KM)|
| totalDays | int | 運動天數 |totalMembers
| totalMembers | int | 運動人數 |
| carbonReduction | float | 減碳量 |
| caloriesBurned | float | 消耗卡路里(千卡) |
- httpCode 200 - OK
- 有查詢結果
```javascript=
// 有帶householdMemberId,"myRank"會有該hm的詳細資訊
{
"httpCode": 200,
"result": {
"data": {
"tenantId": "5efcfd67-334e-45b3-bf49-7e52f5172891",
"tenantName": "企客第一家",
"startDate": 1654012800000,
"endDate": 1655740799000,
"numOfRank": 50,
"myRank": {
"rank": 2,
"householdMemberId": "64c2fe5c-9a4b-462f-9c9b-674130bddb11",
"name": "王小明",
"employeeNo": "B1031",
"totalSteps": 560,
"totalDays": 1,
"rankLog": {
"rank": 1,
"updateTime": 1655740799870
}
},
"list": [
{
"rank": 1,
"householdMemberId": "de02dd6b-182d-45ff-926f-672f391834e3",
"name": "陳小小",
"employeeNo": "B9457",
"totalSteps": 700,
"totalDays": 1
},
...
]
}
}
}
// 沒帶householdMemberId
{
"httpCode": 200,
"result": {
"data": {
"tenantId": "5efcfd67-334e-45b3-bf49-7e52f5172891",
"tenantName": "企客第一家",
"startDate": 1688140800000,
"endDate": 1690819199999,
"rank": 23,
"departmentRank": 10,
"departmentRankingType": "DISTANCE",
"list": [
{
"rank": 1,
"householdMemberId": "150b53f5-7126-4900-9fb0-87a08b45e06b",
"name": "AJ",
"employeeNo": "12345sjjsjsjsjdj",
"patDepartment": "YUU",
"totalSteps": 31889,
"totalDistance": 25.01213715,
"totalDays": 13,
"carbonReduction": 4.273126,
"caloriesBurned": 0.95667
},
{
"rank": 2,
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"name": "BIO",
"employeeNo": "test123",
"patDepartment": "YUU",
"totalSteps": 13198,
"totalDistance": 9.4755041,
"totalDays": 6,
"carbonReduction": 1.768532,
"caloriesBurned": 0.39594
},...
],
"departmentList": [
{
"rank": 1,
"patDepartment": "YUU",
"totalSteps": 45087,
"totalDistance": 34.48764125,
"totalDays": 13,
"totalMembers": 2,
"carbonReduction": 6.041658,
"caloriesBurned": 1.35261
},
{
"rank": 2,
"patDepartment": "Environment水環事業部",
"totalSteps": 0,
"totalDistance": 0,
"totalDays": 0,
"totalMembers": 0,
"carbonReduction": 0,
"caloriesBurned": 0
},...
]
}
}
}
```
-
- 無查詢結果
```javascript=
{
"httpCode": 200,
"result": {
"data": {
"tenantId": "WMT",
"tenantName": "緯創醫學",
"startDate": 1646064000000,
"endDate": 1648655999000,
"numOfRank": 5,
"list": []
}
}
}
```
## 企業步行活動排行榜
- 不作token驗證
```url=
POST /health-promote/tenant/step-rank
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| id | string | Y | | 企業排名設定ID |
| householdMemberId | string | N | | householdMemberId, 有用戶ID會顯示該用戶屬於哪個企業 |
| startDate | string | Y | | 起始日期 |
| endDate | string | Y | | 結束日期 |
```javascript
{
"id": "775c4825-6c13-40dd-8885-06f29c246c88",
"startDate": "2023-03-01",
"endDate": "2023-04-30"
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| tenantStepRankId | string | 企業排名設定ID |
| title | string | 企業排名設定名稱 |
| startDate | timestamp | 開始日期 |
| endDate | timestamp | 結束日期 |
***list***
| 欄位 | 型態 | 說明
| -----| -----|--------
| rank | int | 排名 |
| tenantName | string | 租戶名稱 |
| totalMembers | int | 有步數的會員數 |
| totalSteps | int | 累計步數 |
| totalDays | int | 累計天數 |
| carbonReduction | float | 減碳量 |
| caloriesBurned | float | 卡路里消耗量 |
| isMember | boolean | 查詢有用戶ID時該欄位代表是否為該租戶會員 |
- httpCode 200 - OK
- 有查詢結果
```javascript=
// 有帶householdMemberId,"isMember"會顯示用戶是否屬於該租戶
{
"httpCode": 200,
"result": {
"data": {
"tenantStepRankId": "775c4825-6c13-40dd-8885-06f29c246c88",
"title": "test12",
"startDate": 1677600000000,
"endDate": 1682870399999,
"list": [
{
"rank": 1,
"tenantName": "緯緯醫學",
"totalSteps": 680205,
"totalDays": 61,
"totalMembers": 3,
"carbonReduction": 91.14747,
"caloriesBurned": 20.40615,
"isMember": false
},
{
"rank": 2,
"tenantName": "創創醫學",
"totalSteps": 409862,
"totalDays": 61,
"totalMembers": 1,
"carbonReduction": 54.921508,
"caloriesBurned": 12.29586,
"isMember": false
}
]
}
}
}
```
## 取得企業步行活動排行榜設定
- 不作token驗證
```url=
POST /health-promote/tenant/step-rank-setting/get
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| id | string | Y | | 企業排名設定ID |
```javascript
{
"id": "775c4825-6c13-40dd-8885-06f29c246c88"
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| tenantStepRankId | string | 企業排名設定ID |
| title | string | 企業排名設定名稱 |
| startDate | timestamp | 開始日期 |
| endDate | timestamp | 結束日期 |
***list***
| 欄位 | 型態 | 說明
| -----| -----|--------
| id | string | 企業排名設定ID |
| title | string | 企業排名設定名稱 |
| rank | int | 排名 |
| startDate | long | 設定開始日期, rankingPeriodType: MONTH時不須設定開始日期 |
| endDate | long | 設定結束日期, 如果沒有設定則表示持續到當下日期 |
| rankingType | string | 排行類型. TOTAL: 總步數排行, AVERAGE: 人均步數排行 |
| rankingPeriodType | string | 排行區間類型.PERIOD: 期間 MONTH: 月份 |
| isEnable | boolean | 是否啟用 |
| tenantIds | string[] | 租戶ID清單 |
```javascript=
{
"httpCode": 200,
"result": {
"data": {
"id": "f4e01278-9908-4a22-84e3-f040912b56bc",
"title": "test12",
"startDate": 1680278400000,
"createTime": 1688452677619,
"updateTime": 1688452717052,
"rank": 2,
"rankingType": "TOTAL",
"rankingPeriodType": "MONTH",
"isEnable": true,
"tenantIds": [
"858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"bf47bd9c-4364-4086-946d-9fd191d93dda"
]
}
}
}
```
## 查詢企業步行活動排行榜設定
- 平台管理員權限
```url=
POST /health-promote/tenant/step-rank-setting/list
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| keyword | string | N | | 活動title或是租戶名稱. 模糊查詢 |
| startDate | string | N | | 開始日期查詢 |
| endDate | string | N | | 結束日期查詢 |
| status | string | N | | 活動狀態查詢. ON: 啟用 OFF: 停用 |
```javascript
{
"query": {
"keyword": "排行",
"startDate": "2023-03-22",
"endDate": "2023-04-02",
"status": "OFF"
}
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| id | string | 企業排名設定ID |
| title | string | 企業排名設定名稱 |
| url | string | 排名縮圖 |
| startDate | long | 設定開始日期, rankingPeriodType: MONTH時不須設定開始日期 |
| endDate | long | 設定結束日期, 如果沒有設定則表示持續到當下日期 |
| isEnable | boolean | 是否啟用 |
| tenantCount | integer | 參與租戶數量 |
| updateTime | timestamp | 最後更新時間 |
```javascript=
{
"httpCode": 200,
"result": {
"data": [
{
"url": "http://10.31.104.23/swift/v1/AUTH_test/kmuh/tenant_health_promote/1a34713a-b31e-482e-85f8-bfdaca7b8a3e.png?temp_url_sig=f83979ddb4a2c3ae607ad4e0db3d92c37460eec9&temp_url_expires=1691998145",
"total": 1,
"id": "829669fd-1ad4-47da-a27a-44fdc7f071b8",
"title": "test12",
"startDate": 1677600000000,
"createTime": 1689053991293,
"updateTime": 1689054066562,
"tenantCount": 1,
"isEnable": false
}
],
"total": 1
}
}
```
## 新增企業步行活動排行榜設定
- 平台管理員權限
```url=
POST /health-promote/tenant/step-rank-setting/add
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| title | string | Y | | 企業排名設定名稱 |
| startDate | string | Y/N | | 起始日期, rankingPeriodType: MONTH時不須設定開始日期|
| endDate | string | Y/N | | 結束日期, 留空表示統計到當前日期 |
| rankingType | string | y | 10 | 活動排名類型. <BR>TOTAL: 總步數<BR>AVERAGE: 人均步數 |
| rankingPeriodType | string | y | 10 | 排行區間類型.PERIOD: 期間 MONTH: 月份 |
| rank | int | Y | | 排行榜統計名次 |
| tenantIds | string[] | Y | | 參與排行的租戶id陣列 |
| objectKey | string | N | | 企業排名設定縮圖 |
```javascript
{
"title": "企業排行",
"rank": 5,
"rankingType": "TOTAL",
"rankingPeriodType": "PERIOD",
"startDate": "2023-03-01",
"endDate": "2023-07-30",
"isEnable": true,
"tenantIds": [
"ebf71049-a3ad-4b16-8343-dc6856138cb6",
"40f7baa7-1deb-4267-b2fc-e047cb4c566a",
"89b0db04-ae19-442a-8533-1386f9e6544d"
],
"objectKey": "tenant_health_promote/1a34713a-b31e-482e-85f8-bfdaca7b8a3e.png"
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| id | string | 企業排名設定ID |
| title | string | 企業排名設定名稱 |
| url | string | 排名縮圖 |
| startDate | long | 設定開始日期, rankingPeriodType: MONTH時不須設定開始日期 |
| endDate | long | 設定結束日期, 如果沒有設定則表示持續到當下日期 |
| isEnable | boolean | 是否啟用 |
| tenantCount | integer | 參與租戶數量 |
| updateTime | timestamp | 最後更新時間 |
```javascript=
{
"httpCode": 200,
"result": {
"data": {
"id": "20ea920e-9235-4c74-8145-8e2c7f5e968b",
"title": "企業排行",
"startDate": 1677600000000,
"createTime": 1692002727493,
"updateTime": 1692002727493,
"isEnable": true,
"rank": 5,
"rankingPeriodType": "PERIOD",
"rankingType": "TOTAL"
}
}
}
```
## 編輯企業步行活動排行榜設定
- 平台管理員權限
```url=
POST /health-promote/tenant/step-rank-setting/update
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| id | string | Y | | 企業排名設定ID |
| title | string | Y | | 企業排名設定名稱 |
| startDate | string | Y/N | | 起始日期, rankingPeriodType: MONTH時不須設定開始日期|
| endDate | string | Y/N | | 結束日期, 留空表示統計到當前日期 |
| rankingType | string | y | 10 | 活動排名類型. <BR>TOTAL: 總步數<BR>AVERAGE: 人均步數 |
| rankingPeriodType | string | y | 10 | 排行區間類型.PERIOD: 期間 MONTH: 月份 |
| rank | int | Y | | 排行榜統計名次 |
| tenantIds | string[] | Y | | 參與排行的租戶id陣列 |
| objectKey | string | N | | 企業排名設定縮圖 |
```javascript
{
"id": "ebf71049-a3ad-4b16-8343-dc6856138db6",
"title": "企業排行",
"rank": 5,
"rankingType": "TOTAL",
"rankingPeriodType": "PERIOD",
"startDate": "2023-03-01",
"endDate": "2023-07-30",
"isEnable": true,
"tenantIds": [
"ebf71049-a3ad-4b16-8343-dc6856138cb6",
"40f7baa7-1deb-4267-b2fc-e047cb4c566a",
"89b0db04-ae19-442a-8533-1386f9e6544d"
],
"objectKey": "tenant_health_promote/1a34713a-b31e-482e-85f8-bfdaca7b8a3e.png"
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| id | string | 企業排名設定ID |
| title | string | 企業排名設定名稱 |
| url | string | 排名縮圖 |
| startDate | long | 設定開始日期, rankingPeriodType: MONTH時不須設定開始日期 |
| endDate | long | 設定結束日期, 如果沒有設定則表示持續到當下日期 |
| isEnable | boolean | 是否啟用 |
| tenantCount | integer | 參與租戶數量 |
| updateTime | timestamp | 最後更新時間 |
```javascript=
{
"httpCode": 200,
"result": {
"data": {
"id": "20ea920e-9235-4c74-8145-8e2c7f5e968b",
"title": "企業排行",
"startDate": 1677600000000,
"createTime": 1692002727493,
"updateTime": 1692002727493,
"isEnable": true,
"rank": 5,
"rankingPeriodType": "PERIOD",
"rankingType": "TOTAL"
}
}
}
```
## 刪除企業步行活動排行榜設定
- 平台管理員權限
```url=
POST /health-promote/tenant/step-rank-setting/delete
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
| id | string | Y | | 企業排名設定ID |
```javascript
{
"id": "20ea920e-9235-4c74-8145-8e2c7f5e968b"
}
```
***Response***
| 欄位 | 型態 | 說明
| -----| -----|--------
| data | int | 刪除設定數量 |
```javascript=
{
"httpCode": 200,
"result": {
"data": 1
}
}
```
## 取得企業步行活動排行榜上傳URL
- 平台管理員權限
```url=
POST /health-promote/tenant/step-rank-setting/get-upload-url
```
***Request Body***
| 欄位 | 型態 | 必填 | 預設 | 說明 |
|---|---|---|---|---|
isMultipart | boolean | Y | false | 是否使用分段上傳
isThumbnail | boolean | Y | false | 上傳的是否為縮圖
fileName | String | Y | | 檔名,不包含副檔名,限制最多50字
fileType | String | Y | | 副檔名, 限制最多10字
totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量,不可小於2
parts | Array [...part] | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | part 資訊
***Request-取得上傳網址-part(Object)***
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
chunkSize | int | Y | | 該 chunk 的大小, bytes
md5 | string | Y | | 該 part 的 md5
part | int | Y | | part number, 第幾塊 chunk
```javascript
// 單檔
{
"isMultipart": false,
"fileName": "loyalty_card_test-2",
"fileType": "png",
"totalPart": null,
"parts": [
],
"isThumbnail": true
}
// 分塊上傳
{
"isMultipart": true,
"isThumbnail": false,
"fileName": "giphy (7)",
"fileType": "mp4",
"totalPart": 2,
"parts": [
{
"chunkSize": 5242880,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 1
},
{
"chunkSize": 3145728,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 2
}
]
}
```
***Response-取得上傳網址-data***
欄位 | 型態 | 說明
--- | --- | ---
objectKey | string | storage 中的 objectKey, **unique**
uploadId | string | 識別該次上傳的 uploadId
fileName | string | 名稱
fileType | string | 副檔名
url | string | 單檔上傳的時候,才會回傳該 url, 時效 3600 秒
parts | [...part] | multipart上傳各part的url
***Response-取得上傳網址-part***
欄位 | 型態 | 說明
--- | --- | ---
chunkSize | int | 該 chunk 的大小, bytes
md5 | string | 該 part 的 md5
part | int | part number, 第幾塊 chunk
url | string | 可上傳的 url, 時效 3600 秒
```javascript=
// HttpStatus:422, 上傳的檔案類型不允許
{
"errorMsg": "SERVICE_ERROR.UPLOAD_FILE_TYPE_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus: 200
// 單檔
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "loyalty_card/thumbnail/56ca1cfc-4bcb-4a0a-b079-fd08a0e75a37.png",
"uploadId": "fb483648-25d0-4137-bb49-85c17842a95b",
"fileName": "loyalty_card_test-2",
"fileType": "png",
"url": "http://swift-storage/loyalty_card/thumbnail/56ca1cfc-4bcb-4a0a-b079-fd08a0e75a37.png"
}
}
}
// 分塊上傳
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "event/f76adf26-1e22-4b18-980d-b9a68efc5171.mp4",
"uploadId": "53fde368-43d9-455f-a610-62091fc30be6",
"fileName": "giphy (7)",
"fileType": "mp4",
"parts": [
{
"chunkSize": 5242880,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 1,
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F1?temp_url_sig=796c52b00f75b62be658533b2fadbc7f14381e36&temp_url_expires=1554263771"
},
{
"chunkSize": 3145728,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 2,
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F2?temp_url_sig=ad71de81dfbcd94bce4a091f2630c6f1373ff3cd&temp_url_expires=1554263771"
}
]
}
}
}
```
## 健康點數統計
```url=
POST /health-promote/reward-point-analyse
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
startDate | timestamp | Y | | 開始日期
endDate | timestamp | Y | | 結束日期
topNum | int | Y | 5 | top數目
```javascript
{
"startDate": 1630454400000,
"endDate": 1632960000000,
"topNum" : 5
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
periodTotalPoints | int | 期間累積健康點數
totalPoints | int | 總累積健康點數
list | json array | 期間累積健康點數 array
-no | int | top number
-name | string | 姓名
-gender | int | 1: 男性, 2: 女性
-periodPoints | int | 期間累積健康點數
```javascript
{
"httpCode": 200,
"result": {
"data": {
"periodTotalPoints": 147,
"totalPoints": 312,
"list": [
{
"no": 1,
"householdMemberId": "fdba6e30-ffda-47e4-b378-be7f9de7ba15",
"name": "啊啊啊",
"gender": 1,
"periodPoints": 147
}
]
}
}
}
```
## 匯出健康點數統計資料
```url=
POST /health-promote/reward-point-export
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
startDate | timestamp | Y | | 開始日期
endDate | timestamp | Y | | 結束日期
```javascript
{
"startDate": 1630454400000,
"endDate": 1632960000000
}
```
Response
* httpCode 400 - [errorMsg](https://gitlab.devpack.cc/Wei_Chang/wicc-kmuh/wikis/Type-Definition#service_error)
| errorMsg | desc |
| --------- |-------- |
|NOT_EXIST| 資料檔不存在 |
* httpCode 200 -Download file
```
File name: 健康點數統計.xlsx
```