# 取得員工 APP 使用歷程 Custos-EnterpriseAPP-API-013 V3.0 2023.09.14 Custos 企業會員之員工登入 Custos Enterprise APP 後,取得個人 APP 使用歷程。 [toc] ## 作業啟動 1. 以傳入之使用者 token 取得使用者流水編號 #emp_data_id 2. 傳入參數 節碳生活功能代碼 #function_id、查詢起始日期 #begin_date、查詢迄止日期 #end_date 3. 記錄 SystemLog:#emp_data_id|取得員工 APP 使用歷程|作業啟動 ## API 作業啟動 1. 以 #emp_data_id 取得使用者所屬企業流水編號 #corp_data_id、語系代碼 #language_setting 2. 以 #function_id 分別查詢以下資料表;若 #function_id 未傳則查詢全部資料表 |#function_id|資料表|說明| |-|-|-| |1|corp_ls_stairs_records|以 happen_date 為日期條件| |2、3、4|corp_ls_photo_album|以 create_date 為日期條件| |5、6|corp_ls_transportation_records|以 create_date 為日期條件| 取得員工 APP 使用歷程紀錄 (若起迄日期未傳入則撈取所有資料) 參考 SQL: *select happen_date as date, function_id, floors as results from corp_ls_stairs_records where corp_data_id = #corp_data_id and emp_data_id = #emp_data_id and happen_date >= '#begin_date' and happen_date <= '#end_date' order by happen_date desc* *select create_date as date, function_id, 1 as results from corp_ls_photo_album where corp_data_id = #corp_data_id and emp_data_id = #emp_data_id and create_date >= '#begin_date' and create_date <= '#end_date' order by create_date desc* *select create_date as date, function_id, mileage as results from corp_ls_transportation_records where corp_data_id = #corp_data_id and emp_data_id = #emp_data_id and create_date >= '#begin_date' and create_date <= '#end_date' order by create_date desc* 上述所有資料集全部做 union 後,再依照 date 降冪排序。 3. 若需取得腳踏車 (#function_id 為 5) 或大眾運輸 (#function_id 為 6) 之統計數據,需傳入參數 #period,根據下列說明,取得對應數據並計算後,回傳數據陣列及加總數字給 APP: |#period|說明| |-|-| |T|取得當日所有數據資料,以每一筆資料之起始時間降冪排列| |D|取得當日 00:00:00 至 23:59:59 之數據資料,以小時為單位加總,記於起始時間;例如:08:10~08:20 有一筆紀錄 3 km,08:35~08:45 有另一筆紀錄 2.8 km,回傳之數據資料應為 08 5.8 km| |W|取得前 7 日之數據資料,以 1~7 表示週一到週日;例如 3456712 表示從上週三到本週二| |M|取得前 30 日之數據資料,以 YYYY-MM-DD 表示| **#period 為 T 時需取出 corp_ls_transportation_records.record_id 欄位回傳** ## 作業結束 記錄 SystemLog:#emp_data_id|取得員工 APP 使用歷程|作業結束 ## 例外處理 若執行中有發生異常,將攔截到的 exception 訊息記錄 ErrorLog:[YYYYMMDDHHMMSS] EnterpriseAPP-API-013 發生異常:【#攔截到的 exception 訊息】 ## 規格及範例 |API No|EnterpriseAPP-API-013| |-|-| |API Name|getEmpRecordHistory| |URL|${url}/APP/getData/getEmpRecordHistory| |Purpose|取得員工 APP 使用歷程| |Description|透過 API 取得員工 APP 使用歷程| |Protocol|JSON over HTTP POST| |Content-Type|application/json| **Request** |參數|型態|必填|長度|說明| |-|-|:-:|:-:|-| |token|String|Y||使用者驗證字串| |function_id|INT|Y||節碳生活功能代碼| |begin_date|Datetime|N||查詢起始日期| |end_date|Datetime|N||查詢迄止日期| |period|String|N|1|統計區間 T/D/W/M;腳踏車與大眾運輸使用| **Response** |參數|型態|必回|說明| |-|-|:-:|-| |result|String|Y|API 執行結果,Y:成功,N:失敗| |message|String|N|API 執行失敗的訊息說明| |total_mileage|INT|N|腳踏車與大眾運輸時回傳之總里程數,單位為公尺| |total_time|INT|N|腳踏車與大眾運輸時回傳之總分鐘數| |total_leaves|INT|N|腳踏車與大眾運輸時回傳之總樹葉數| |data|Object|N|物件陣列,傳回各項節碳生活功能歷程紀錄;result = N 時為空陣列([])| **Request Sample 1: 查詢使用歷程** ```json var input = { "token": "xxx", "function_id": 2, "begin_date": "2023-08-01", "end_date": "2023-09-30" } ``` **Request Sample 2: 查詢今日腳踏車紀錄** ```json var input = { "token": "xxx", "function_id": 5, "period": "T", } ``` **Request Sample 3: 查詢當日腳踏車紀錄** ```json var input = { "token": "xxx", "function_id": 5, "period": "D", } ``` **Request Sample 4: 查詢過去 7 天腳踏車紀錄** ```json var input = { "token": "xxx", "function_id": 5, "period": "W", } ``` **Request Sample 5: 查詢過去 30 天腳踏車紀錄** ```json var input = { "token": "xxx", "function_id": 5, "period": "M", } ``` **Response Sample 1: 回傳使用歷程 或 今日腳踏車紀錄** ```json { "result": "Y", //API 結果,Result = Y 時才會有 data 資料 "message": "...", //API 訊息,Ex:"執行失敗,原因:XXXXXXXXX" "data": [ //依照日期降冪排列 { "date": "2023/08/15 08:10:15", //歷程紀錄執行時間,取自回傳資料的 date 欄位 "function_id": 2, //節碳生活功能 id,取自回傳資料的 function_id "results": "10" //當次已完成數值,取自回傳資料的 results }, {...} ] } ``` **Response Sample 2: 回傳當日腳踏車紀錄** ```json { "result": "Y", //API 結果,Result = Y 時才會有 data 資料 "message": "...", //API 訊息,Ex:"執行失敗,原因:XXXXXXXXX" "total_mileage": 2723, //腳踏車與大眾運輸時回傳之總里程數,單位為公尺 "total_time": 17, //腳踏車與大眾運輸時回傳之總分鐘數 "total_leaves": 23, //腳踏車與大眾運輸時回傳之總樹葉數 "data": [ { "hour": 0, "result": "0" }, { "hour": 1, "result": "0" }, { "hour": 2, "result": "0" }, { ... }, { "hour": 8, "result": "4.1" }, { "hour": 9, "result": "0" }, { ... }, { "hour": 18, "result": "4.1" }, { ... }, { "hour": 23, "result": "0" }, ] } ``` **Response Sample 3: 過去 7 天腳踏車紀錄** ```json { "result": "Y", //API 結果,Result = Y 時才會有 data 資料 "message": "...", //API 訊息,Ex:"執行失敗,原因:XXXXXXXXX" "total_mileage": 2723, //腳踏車與大眾運輸時回傳之總里程數,單位為公尺 "total_time": 17, //腳踏車與大眾運輸時回傳之總分鐘數 "total_leaves": 21, //腳踏車與大眾運輸時回傳之總樹葉數 "data": [ { "weekday": 5, //星期六 "result": "13" }, { "weekday": 6, //星期日 "result": "12" }, { "weekday": 0, //星期一 "result": "10.7" }, { "weekday": 1, //星期二 "result": "11.5" }, { "weekday": 2, //星期三 "result": "9.2" }, { "weekday": 3, //星期四 "result": "13" }, { "weekday": 4, //星期五 "result": "13" } ] } ``` **Response Sample 4: 回傳過去 30 天腳踏車紀錄** ```json { "result": "Y", //API 結果,Result = Y 時才會有 data 資料 "message": "...", //API 訊息,Ex:"執行失敗,原因:XXXXXXXXX" "total_mileage": 2723, //腳踏車與大眾運輸時回傳之總里程數,單位為公尺 "total_time": 17, //腳踏車與大眾運輸時回傳之總分鐘數 "total_leaves": 84, //腳踏車與大眾運輸時回傳之總樹葉數 "data": [ { "date": "2023-09-04", "result": "13" }, { "date": "2023-09-05", "result": "12.1" }, { "date": "2023-09-06", "result": "12.3" }, { ... }, { "date": "2023-10-03", "result": "11.8" } ] } ```