# 取得企業會員員工資料
Custos-EnterpriseAPP-API-001
V2.0
2023-08-11
Custos 企業會員之員工完成登入驗證後,呼叫此 API 產生 token 並紀錄於 APP。
[toc]
## 作業啟動
1. 傳入會員手機號 #phone_num 及使用的 APP 版本 #app_version
2. 記錄 SystemLog:#phone_num|建立 token|作業啟動
## API 作業啟動
1. 以 #phone_num 查詢 corp_member_emp 與 corp_member_main,確認企業合作關係仍在 (corp_member_main.status = 'Y') 以及員工仍在職 (corp_member_emp.status = 'Y')。==同時取得 corp_member_main.app_version 與 #app_version 比對,若相同則完成登入驗證,同時撈出 corp_member_emp 個人資訊欄位回傳;若不同則回傳 result = 'Z',表示使用者使用之 APP 非該企業所使用之 APP 版本,不予登入。記錄 SystemLog:#phone_num|建立 token|建立失敗,APP 版本不一致。公司版本為 corp_member_main.app_version,用戶手機版本為 #app_version。==
2. 若會員之 emp_id 為 corp_member_main.corp_contact_emp_id,表示此會員為窗口,回傳 is_admin = 'Y'
3. 以 corp_member_emp.corp_data_id 查詢 corp_member_main,取得下列設定值並回傳:
(1) corp_member_main.enable_personal_reward,以決定 APP 是否能新增個人 reward
(2) corp_member_main.language_setting (以 corp_language_setting 回傳) 以決定使用者新增 marketplace 物件時會出現在哪個地區
4. 以 corp_memeber_emp.data_id 與 corp_memeber_emp.create_date,搭配演算法產生唯一 token,回傳給 APP,用於後續資料檢核
5. 若無資料,則記錄 SystemLog:#phone_num|建立 token|查無該會員資料,該企業已無合作關係或該員工已離職。
6. 有資料
(1) 記錄 SystemLog:#phone_num|建立 token|建立成功,企業流水號:corp_member_main.data_id,員工流水號:corp_member_emp.data_id
(2) 寫入該會員最後更新日期 last_login_date 至 corp_member_emp
## 作業結束
記錄 SystemLog:#phone_num|建立 token|作業結束
## 例外處理
若執行中有發生異常,將攔截到的 exception 訊息記錄 ErrorLog:[YYYYMMDDHHMMSS] EnterpriseAPP-API-001 發生異常:【#攔截到的 exception 訊息】
## 規格及範例
|API No.|Enterprise-API-001|
|-|-|
|API Name|getEmpInfo|
|URL|${url}/APP/getData/getEmpInfo|
|Purpose|取得企業會員員工驗證資訊|
|Description|透過 API 驗證使用者是否為簽約企業的員工,並取回 token|
|Protocol|JSON over HTTP POST|
|Content-Type|application/json|
**Request**
|參數|型態|必填|長度|說明|
|-|-|:-:|:-:|-|
|phone_num|String|Y|16|會員手機號碼,由 APP 取出|
|app_version|String|Y|45|會員使用之 APP 版本,由 APP 取得|
**Response**
|參數|型態|必回|說明|
|-|-|:-:|-|
|result|String|Y|API 執行結果,Y:成功,N:失敗,Z:無法使用|
|message|String|N|API 執行失敗的訊息說明|
|token|String|Y|有資料則建立唯一 token 回傳;無資料則回傳空字串|
|is_admin|String|Y|此會員是否為企業之窗口,Y:是,N:否|
|enable_personal_reward|String|Y|企業是否開放個人可新增 reward,Y:是,N:否|
|language_setting|String|Y|使用者語系設定|
|corp_language_setting|String|Y|企業語系設定|
|emp_avatar|String|Y|使用者頭像|
|emp_name|String|Y|使用者名稱|
|birth_date|Date|Y|使用者生日|
|emp_email|String|Y|使用者 email|
|self_intro|String|Y|使用者自我簡介|
|public_audience_all_custos_clients_setting|String|Y|Marketplace 顯示設定|
**Request Sample**
```javascript
var input = {
"phone_num": "0912345678",
"app_version": "custos.tw"
}
```
**Response Sample**
```javascript
{
"result": "Y", //API 結果,Result = Y 時才會有 data 資料
"message": "...", //API 訊息,Ex:"執行失敗,原因:XXXXXXXXX"
"token": "...",
"is_admin": "N",
"enable_personal_reward": "Y",
"language_setting" : "zh-TW",
"corp_language_setting": "zh-TW",
"emp_avatar": "abc.png",
"emp_name": "David",
"language_setting": "en-SG",
"birth_date": "1985-03-16",
"emp_email": "david@gmail.com",
"self_intro": "...",
"public_audience_all_custos_clients_setting": "Y"
}
```