# 八卦山會員前台 ###### tags: `八卦山`,`API`,`會員管理` | 日期 | 內容 | 編輯人 | | -------- | -------- | -------- | | 2020/02/22 | 初版 | coco | | 2020/02/25 | 新增INT_TB_Relatives, | coco | | 2020/03/02 | 修改查詢會員清單SQL | coco | | 2020/03/10 | 修正文件細節 | coco | ## 相關說明 ##### Schema : bagua_buddha ##### 專案名稱:bagua-buddha-ui ##### 備註說明: 畫面隨時會異動,該文件主要指出對應欄位參數 ## 流程圖 ## 會員管理 ### 註冊會員 ##### API Detail Process執行步驟說明 |步驟 | 程序 | 處理內容 | | --- | --- | ---- | | 1 | 前端導頁至輸入會員資料的[註冊]畫面 | 會員點擊[註冊]功能鍵後,導頁至[註冊]頁面,再欄位驗證合法前,確認按鈕需為<font color="#4F4F4F">灰色</font>,不可被點擊與呼叫API | | 2 | 驗證參數是否合法 |欄位驗證不合法則,顯示回傳錯誤訊息。| | 3 | 會員輸入資料後,呼叫API | 會員輸入必填資料後,前端需驗證輸入內容是否合法後,<font color="#007500">[註冊]</font>鈕亮起,呼叫此API,不合法則顯示回傳<font color="#f00">錯誤訊息</font>。 | | 4 | 資料合法送出後,跳轉到[會員資訊]頁面 | 資料合法但送出資料後,因網路或其他問題而無法成功新增,需將錯誤訊息回傳至前端,並依照日期規範寫入LOG,且避免將Exception回傳至前端 | | 5 | 結束,跳轉至成功畫面 | | ##### Correspond 畫面對應 ![](https://i.imgur.com/mjfessm.png) ![](https://i.imgur.com/WRwsjjx.png) ![](https://i.imgur.com/safuIJf.png) ![](https://i.imgur.com/XeRaZRh.png) POST : /insert 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 會員序號 | V | custId | int(11) | | | 密碼 | V | password | VARCHAR(200) |sha256 加密後存入 ,需英數八碼以上| | 會員帳號 | V | username | VARCHAR(50) | 至少六碼英數字組合 | | 會員名稱 | V | name | VARCHAR(500) | | | 身分證字號/統一編號 | | idNum | VARCHAR(20) |預留欄位 | | 地址 | V | address | VARCHAR(200) || | 戶籍地址 | V | ResidenceAddress | VARCHAR(200) || | email | | email | VARCHAR(100) | | | 電話號碼 | | mobile | VARCHAR(20) | | | 年干 | | year1 | VARCHAR(2) | 年干 lookupType = 'year1 ' | | 年支 | | year2 | VARCHAR(2) | 年支 lookupType = 'year2 '| | 月干 | | month1 | VARCHAR(2) | 月干 lookupType = month1' | | 月支 | | month2 | VARCHAR(2) | 月支 lookupType = month1'| | 日干 | | day1 | VARCHAR(2) | 日干 lookupType = 'day1'| | 日支 | | dayr2 | VARCHAR(2) | 日支 lookupType = 'day2'| | 時干 | | hour1 | VARCHAR(2) | 時干 lookupType = 'hour1'| | 時支 | | hour2 | VARCHAR(2) | 日支 lookupType = 'hour2'| | 性別 | V | gender | VARCHAR(20) | 性別 F:女 M:男 | | 生日 | V | birthday | VARCHAR(8) | 20010506| | 創建日期 | V | crDate | DATETIME(3) | | | 修改日期 | V | dateStamp | DATETIME(3) || | 關係人 | | relative | array | | | 關係序號| V | relativeId | int(11) | | | 名稱 | V | name | VARCHAR(45) | 關係人姓名 | | 稱謂 | | appellation | VARCHAR(200) | 關係人稱謂 | | 性別 | V | gender | VARCHAR(20) | 關係人 | | 生日 | V | birthday | VARCHAR(8) | 關係人 | | 創建日期 | V | crDate | DATETIME(3) | | | 修改日期 | V | dateStamp | DATETIME(3) || ```json= { "password":"9af15b336e6a9619928537df30b2e6a2376569fcf9d7e773eccede65606529a0", "username":"coco01", "name":"測試帳號", "address":"台北市大安區信義路二段72號", "email":"coco@intella.co", "mobile":"0911123123", "year1":"", "year2":"", "month1":"", "month2":"", "day1":"", "dayr2":"", "hour1":"", "hour2":"", "gender":"F", "birthday":"20010805", "relative":[ "name":"英小拉", "appellation":"妹妹", "gender":"F", "birthday":"19910526", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" ], [ "name":"英特特", "appellation":"弟弟", "gender":"M", "birthday":"19980228", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" ] } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | string | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | string | "" | ###### >資料庫執行成功,insert 均成功 ```json= { "msgCode": "0000", "msg": "", "data":[] } ``` >資料庫執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "新增失敗,請重新操作", "data":[] } ``` >username ,資料庫查詢筆數 = 1 ```json= { "msgCode": "0001", "msg": "帳號已存在", "data":[] } ``` >username 與 password 資料庫查詢筆數 = 0 ```json= { "msgCode": "0001", "msg": "帳號、密碼不符合格式", "data":[] } ``` >Img 超出資料庫欄位 ```json= { "msgCode": "0001", "msg": "圖檔太大,請重新上傳", "data":[] } ``` ##### SQL ```sql= set @password = '9af15b336e6a9619928537df30b2e6a2376569fcf9d7e773eccede65606529a0'; set @username = 'coco01'; set @name = '測試帳號'; set @address = '台北市大安區信義路二段72號'; set @email = 'coco@intella.co'; set @mobile = '0911123123'; set @gender = 'F'; set @birthday = '20030921'; INSERT INTO `bagua_buddha`.`INT_TB_Customer` ( `password`, `username`, `name`, `address`, `email`, `mobile`, `gender`, `birthday`, `crDate`, `dateStamp` ) VALUES ( @password, @username, @name, @address, @email, @mobile, @gender, @birthday Sysdate(), Sysdate() ); ``` >上方SQL執行成功,使得進行下方SQL,帶入上方custId ```sql= SET @custId = #上方insert成功後取得自增主鍵 SET @name = ""; SET @appellation = ""; SET @gender = ""; SET @birthday = ""; INSERT INTO `bagua_buddha`.`INT_TB_Relatives` (`custId`, `name`, `appellation`, `gender`, `birthday`, `crDate`, `dateStamp`) VALUES (@custId, @name, @appellation, @gender, @birthday, sysdate(), sysdate()); ``` ### 新增會員眷屬關聯檔 POST : /insertRelation 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 會員序號 | V | custId | int(11) | | | 名稱 | V | name | VARCHAR(45) | 關係人姓名 | | 稱謂 | | appellation | VARCHAR(200) | 關係人稱謂 | | 性別 | V | gender | VARCHAR(20) | 關係人 | | 生日 | V | birthday | VARCHAR(8) | 關係人 | | 創建日期 | V | crDate | DATETIME(3) | | | 修改日期 | V | dateStamp | DATETIME(3) || ```json= { "name":"英小拉", "appellation":"妹妹", "gender":"F", "birthday":"19910526", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | string | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | string | "" | ###### >資料庫執行成功,insert 成功 ```json= { "msgCode": "0000", "msg": "", "data":[] } ``` >資料庫執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "新增失敗,請重新操作", "data":[] } ``` >username 資料庫查詢筆數 = 0 ```json= { "msgCode": "9999", "msg": "帳號不存在", "data":[] } ``` ```sql= SET @custId = 1; SET @name = ""; SET @appellation = ""; SET @gender = ""; SET @birthday = ""; INSERT INTO `bagua_buddha`.`INT_TB_Relatives` (`custId`, `name`, `appellation`, `gender`, `birthday`, `crDate`, `dateStamp`) VALUES (@custId, @name, @appellation, @gender, @birthday, sysdate(), sysdate()); ``` ### 查詢會員清單 ##### API Detail Process執行步驟說明 |步驟 | 程序 | 處理內容 | | --- | --- | ---- | | 1 | 編輯會員資料 | 點擊左上角<font color="#4F4F4F">[漢堡]</font>功能鍵,點擊[設定],[編輯資料] | | 2 | 呼叫查詢會員API,獲取該會員資料| 呼叫API,帶入參數<font color="#EA0000">[custId]</font>,並根據回傳值<font color="#0000E3">rsp</font>帶入相對應欄位。username 為唯讀欄位 | | 4 | 結束 | | ##### Correspond 畫面對應 ![](https://i.imgur.com/WRwsjjx.png) ![](https://i.imgur.com/safuIJf.png) POST : /queryCustList 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 會員序號 | V | custId | int(11) | 隱藏欄位,不顯示 | | 會員帳號 | | username | VARCHAR(50) | | | 關鍵字查詢 | | keyword | VARCHAR(50) | 關鍵字查詢 | | 當前頁面 | V | currentPage | int(11) | | | 每頁筆數 | V | pageSize | int(11) | | | 總頁數 | V | totalPage | int(11) | | ```json= { "custId":1, "keyword":"cocoTest01", "currentPage":1, "pageSize":20, "totalPage":5 } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | string | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | string | "" | ###### >資料庫執行成功,insert 均成功 ```json= { "msgCode": "0000", "msg": "", "data":[] } ``` >資料庫執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "新增失敗,請重新操作", "data":[] } ``` >username 不存在 ```json= { "msgCode": "9999", "msg": "帳號不存在", "data":[] } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | string | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | string | "" | | 當前頁面 | V | currentPage | int(11) | | | 每頁筆數 | V | pageSize | int(11) | | | 總頁數 | V | totalPage | int(11) | | | 會員序號 | V | custId | int(11) | | | 會員帳號 | V | username | VARCHAR(50) | | | 會員名稱 | V | name | VARCHAR(500) | | | 身分證字號/統一編號 | | idNum | VARCHAR(20) |預留欄位 | | 年干 | | year1 | VARCHAR(2) | 年干 lookupType = 'year1 ' | | 年支 | | year2 | VARCHAR(2) | 年支 lookupType = 'year2 '| | 月干 | | month1 | VARCHAR(2) | 月干 lookupType = month1' | | 月支 | | month2 | VARCHAR(2) | 月支 lookupType = month1'| | 日干 | | day1 | VARCHAR(2) | 日干 lookupType = 'day1'| | 日支 | | dayr2 | VARCHAR(2) | 日支 lookupType = 'day2'| | 時干 | | hour1 | VARCHAR(2) | 時干 lookupType = 'hour1'| | 時支 | | hour2 | VARCHAR(2) | 日支 lookupType = 'hour2'| | 地址 | V | address | VARCHAR(200) || | 戶籍地址 | V | ResidenceAddress | VARCHAR(200) || | email | | email | VARCHAR(100) | | | 手機號碼 | | mobile | VARCHAR(20) | | | 性別 | V | gender | VARCHAR(20) | 性別 F:女 M:男 | | 生日 | V | birthday | VARCHAR(8) | 19910306| | 創建日期 | V | crDate | DATETIME(3) | | | 修改日期 | V | dateStamp | DATETIME(3) || | 關係人 | | relative | array | | | 關係序號| V | relativeId | int(11) | | | 名稱 | V | name | VARCHAR(45) | 關係人姓名 | | 稱謂 | | appellation | VARCHAR(200) | 關係人稱謂 | | 性別 | V | gender | VARCHAR(20) | 關係人 | | 生日 | V | birthday | VARCHAR(8) | 關係人 | | 創建日期 | V | crDate | DATETIME(3) | | | 修改日期 | V | dateStamp | DATETIME(3) || >custId 查詢筆數 > 0 ```json= { "msgCode": "0000", "msg": "", "data":[ "currentPage":1, "pageSize":20, "totalPage":5 "content":[{ "custId":1, "idNum":"", "username":"coco01", "name":"測試帳號", "year1":"", "year2":"", "month1":"", "month2":"", "day1":"", "dayr2":"", "hour1":"", "hour2":"", "address":"台北市大安區信義路二段72號", "ResidenceAddress":"台北市大安區信義路二段72號", "email":"coco@intella.co", "mobile":"0911123123", "gender":"F", "birthday":"19950305", "crDate":"2021-02-19 17:56:05.000", "dateStamp":"2021-02-19 17:56:05.000", "relative":[ "relativeId":1, "name":"英小拉", "appellation":"妹妹", "gender":"F", "birthday":"19910526", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" ], [ "relativeId":2, "name":"英特特", "appellation":"弟弟", "gender":"M", "birthday":"19980228", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" ] }, { "custId":1, "idNum":"", "username":"coco01", "name":"測試帳號", "year1":"", "year2":"", "month1":"", "month2":"", "day1":"", "dayr2":"", "hour1":"", "hour2":"", "address":"台北市大安區信義路二段72號", "ResidenceAddress":"台北市大安區信義路二段72號", "email":"coco@intella.co", "mobile":"0911123123", "gender":"F", "birthday":"19910201", "relative":[ "relativeId":1, "name":"英小拉", "appellation":"妹妹", "gender":"F", "birthday":"19910526", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" ], [ "relativeId":2, "name":"英特特", "appellation":"弟弟", "gender":"M", "birthday":"19980228", "crDate":"2021-02-25 17:39:07.000", "dateStamp":"2021-02-25 17:39:07.000" ] }] ] } ``` >custId 查詢筆數 = 0 ```sql= { "msgCode": "0000", "msg": "查無資料", "data":[] } ``` >custId 查詢筆數 < 0 ,或發生其他exception ```sql= { "msgCode": "9999", "msg": "查找失敗,請重新操作", "data":[] } ``` 其餘參考 通用錯誤回應 ##### SQL ```sql= set @custId = '1'; set @keyword = ''; set @username = ''; set @startDate = ''; set @endDate = ''; SELECT `custId`, `password`, `username`, `name`, `idNum`, `address`, `email`, `mobile`, `gender`, `birthday`, `crDate`, `dateStamp` FROM `bagua_buddha`.`INT_TB_Customer` where #---------判斷是否有傳入餐數,若為空值&null,則不串接and SQL語句---------- ( custId= @custId ) or ( username like @keyword ) or ( name like @keyword) or ( idNum like @keyword) or ( address like @keyword) or ( email like @keyword ) or ( birthday like @keyword ) and crDate between @startDate and @endDate order by crDate asc ; ``` >custId 查詢筆數 > 0 時,執行以下SQL ```sql= SET @custId = 1; SELECT `relativeId`, `custId`, `name`, `appellation`, `gender`, `birthday`, `crDate`, `dateStamp` FROM `bagua_buddha`.`INT_TB_Relatives` WHERE `custId` = @custId; ``` ### 刪除會員 >目前無實作 2021/02/25 ##### API Detail Process執行步驟說明 |步驟 | 程序 | 處理內容 | | --- | --- | ---- | | 1 | 刪除會員資料 | 選取指定會員資料,帶入參數<font color="#EA0000">[custId]</font> | | 2 | 刪除關聯檔| 需先刪除關聯檔,成功後再刪除會員檔 | | 3 | 結束 | | POST : /delete 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 會員序號 | V | custId | VARCHAR(50) | | ```json= "custId":1 ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | VARCHAR(4) | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | VARCHAR(50) | "" | ###### >資料庫執行成功,回傳下列訊息 ```json= { "msgCode": "0000", "msg": "", "data":[] } ``` >資料庫執行失敗,或發生其他exception,回傳下列訊息 ```json= { "msgCode": "9999", "msg": "刪除失敗,請重新操作", "data":[] } ``` >其餘參考 通用錯誤回應 >需先刪除親屬關聯檔 ##### SQL ```sql= set @custId = 1; DELETE FROM `bagua_buddha`.`INT_TB_Relatives` WHERE ( `custId` = @custId ); ``` >執行成功後,方得執行以下SQL ##### SQL ```sql= set @custId = 1; DELETE FROM `bagua_buddha`.`INT_TB_Customer` WHERE ( `custId` = @custId ); ``` ### 編輯會員資料 ##### API Detail Process執行步驟說明 |步驟 | 程序 | 處理內容 | | --- | --- | ---- | | 1 | 編輯會員資料 | 點擊左上角<font color="#4F4F4F">[漢堡]</font>功能鍵,點擊[設定],[編輯資料] | | 2 | 呼叫查詢會員API,獲取該會員資料| 呼叫API,帶入參數<font color="#EA0000">[custId]</font>,並根據回傳值<font color="#0000E3">rsp</font>帶入相對應欄位。username 為唯讀欄位 | | 3 | 驗證參數是否合法 |欄位驗證不合法則,顯示回傳錯誤訊息。| | 4 | 會員輸入資料後,呼叫API | 會員輸入必填資料後,前端需驗證輸入內容是否合法後,<font color="#007500">[註冊]</font>鈕亮起,呼叫此API,不合法則顯示回傳<font color="#f00">錯誤訊息</font>。 | | 5 | 資料合法送出後,跳轉到[會員資訊]頁面 | 資料合法但送出資料後,因網路或其他問題而無法成功新增,需將錯誤訊息回傳至前端,並依照日期規範寫入LOG,且避免將Exception回傳至前端 | | 6 | 結束,刷新本畫面 | | ##### Correspond 畫面對應 ![](https://i.imgur.com/4Oypz5Q.png) >Res 值與 Rsp 相同值 ![](https://i.imgur.com/WRwsjjx.png) ![](https://i.imgur.com/safuIJf.png) POST : /update 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 會員序號 | V | custId | int(11) | | | 會員名稱 | V | name | VARCHAR(500) | | | 身分證字號/統一編號 | | idNum | VARCHAR(20) |預留欄位 | | 帳號 | V | accountId | VARCHAR(50) |至少六碼英數字組合 | | 地址 | V | address | VARCHAR(200) || | email | | email | VARCHAR(100) | | | 手機號碼 | | mobile | VARCHAR(20) | | | 性別 | V | gender | VARCHAR(20) | 性別 F:女 M:男 | | 生日 | V | birthday | VARCHAR(8) | 19910302| | 修改日期 | V | dateStamp | DATETIME(3) || ```json= { "custId":1, "accountId":"cocoTest01", "idNum":"", "name":"測試帳號" "address":"台北市大安區信義路二段72號", "email":"coco@intella.co", "mobile":"0911123123", "gender":"F", "birthday":"19980201" } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | string | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | string | "" | ###### >資料庫執行成功,回傳下列訊息 ```json= { "msgCode": "0000", "msg": "", "data":[] } ``` >資料庫執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "編輯失敗,請重新操作", "data":[] } ``` >其餘參考 通用錯誤回應 ##### SQL ```sql= set @username = 'coco01'; set @name = '測試帳號'; set @address = '台北市大安區信義路二段72號'; set @email = 'coco@intella.co'; set @mobile = '0911123123'; set @gender = 'F'; set @birthday = '19910302'; set @custId = 1; UPDATE `bagua_buddha`.`INT_TB_Customer` SET `username` = @username, `name` = @name, `address` = @address, `email` = @email, `mobile` = @mobile, `gender` = @gender, `birthday` = @birthday, `dateStamp` = sysdate() WHERE ( `custId` = @custId); ``` ### 重製會員密碼(目前不開放,因為沒有mail server) ##### API Detail Process執行步驟說明 |步驟 | 程序 | 處理內容 | | --- | --- | ---- | | 1 | 跳轉至忘記密碼頁面 | 點擊[忘記密碼],跳轉至輸入email頁面 | | 2 | 輸入參數,並寄送email | 需先檢查email欄位是否合法,合法後呼叫API,寄出信件,若資料庫無對應到資料,則寄送失敗 | | 3 | 結束 | | ##### Correspond 畫面對應 ![](https://i.imgur.com/WgmvZ7e.png) ![](https://i.imgur.com/y85Sx1z.png) POST : /updatePsw 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 會員序號 | V | custId | int(11) | | | 帳號 | V | username | VARCHAR(50) |至少六碼英數字組合 | | 密碼 | V | password | VARCHAR(200) |sha256加密後存入,至少四碼 | | 修改日期 | V | dateStamp | DATETIME(3) || ```json= { "custId":1, "username":"cocoTest01", "password":"9af15b336e6a9619928537df30b2e6a2376569fcf9d7e773eccede65606529a0" } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | string | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | string | "" | >資料庫執行成功,回傳下列訊息 ```json= { "msgCode": "0000", "msg": "", "data":{} } ``` >資料庫執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "編輯失敗,請重新操作", "data":{} } ``` >其餘參考 通用錯誤回應 ##### SQL ```sql= set @password = '9af15b336e6a9619928537df30b2e6a2376569fcf9d7e773eccede65606529a0'; set @custId = 1; UPDATE `bagua_buddha`.`INT_TB_Customer` SET `password` = @password, SET `dateStamp` = sysdate() WHERE ( `custId` = @custId ); ``` ## 登入/登出 ### 會員登入 ##### Correspond 畫面對應 ![](https://i.imgur.com/vEgxEJG.png) POST : /logIn 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | 帳號 | V | username | VARCHAR(50) |至少六碼英數字組合 | | 密碼 | V | password | VARCHAR(200) |sha256加密後存入,至少四碼| ```json= { "username":"cocoTest01", "password":"9af15b336e6a9619928537df30b2e6a2376569fcf9d7e773eccede65606529a0" } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | VARCHAR(4) | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | VARCHAR((100)) | "" | >執行成功,回傳下列訊息 ```json= { "msgCode": "0000", "msg": "", "data":{} } ``` >執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "登入失敗,請重新操作", "data":{} } ``` >會員不存在/帳號密碼錯誤 ```json= { "msgCode": "9999", "msg": "會員不存在或密碼錯誤", "data":{} } ``` >其餘參考 通用錯誤回應 ### 會員登出 ##### Correspond 畫面對應 ![](https://i.imgur.com/IqB0oUR.png) POST : /logOut >呼叫網址&清掉session/Token ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | VARCHAR(4) | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | VARCHAR(100) | "" | >執行成功,回傳下列訊息 ```json= { "msgCode": "0000", "msg": "", "data":{} } ``` >執行失敗,或發生其他exception ```json= { "msgCode": "9999", "msg": "登出失敗,請重新操作", "data":{} } ``` >會員不存在/帳號密碼錯誤 ```json= { "msgCode": "9999", "msg": "會員不存在或密碼錯誤", "data":{} } ``` >其餘參考 通用錯誤回應 ## 通用API驗證 #### API Detail Process執行步驟說明 |步驟 | 程序 | 處理內容 | | --- | --- | ---- | | 1 | 呼叫此api後,需先檢查必填欄位是否均有值,若為空字串或null,請回復錯誤訊息 | 參數參考 錯誤訊息列表| | 2 | 傳入值均有值且格式正確後,需驗證參數正確性 | | | 3 | 資料庫正確存入後,請回傳msgCode = '0000' | | | 4 | 存入時發生異常導致存入失敗時,請寫LOG|msgCode = '9999', msg= '系統發生異常,請聯繫管理員' ## 通用錯誤回應 ```json= 輸入參數為空值、null { "msgCode": "9999", "msg": @參數欄位+"不得為空值", "data":[] } 輸入參數型態錯誤 { "msgCode": "9999", "msg": @參數欄位+"輸入不正確", "data":[] } 輸入參數長度有誤 { "msgCode": "9999", "msg": @參數欄位+"長度有誤", "data":[] } ``` ## LookupCode查找 POST : /worship-server/api/order/getLookupCode 格式 : json ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------|--- | ------- | ------ |------------- | ------------------ | | lookupType | V |lookupType|| ```json= { "lookupType":"worshipCandles" } ``` ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | TYPE | DSCR | | --------| --- | ------- | ------ |------------- | ------------------ | | 回應代碼| V| msgCode | VARCHAR(4) | 0000 | 0000:成功 其餘會顯示錯誤訊息| | 回應訊息| V | msg | VARCHAR(100) | | ```json= [ { "lookupType": "worshipCandles", "lookupCode": "W01", "dscr": "孔子智慧燈", "value": 0, "type1": "大成殿供奉孔子,長年燃點孔子智慧燈庇佑學子開啟智慧,仕途成就、光明無礙、文筆順暢。", "type2": "500", "type3": "大成殿" }, { "lookupType": "worshipCandles", "lookupCode": "W02", "dscr": "長生祿位燈", "value": 1, "type1": "大雄寶殿供奉釋迦牟尼佛,於佛前安奉長生祿位佛祖燈,祈求佛光照耀身體健康,前途光明、消災延壽、福慧雙全、如意吉祥。", "type2": "500", "type3": "" } ] ``` #### 獲取點燈下拉式清單 ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | | --- | --- | --- | | lookupType | V | worshipCandles | ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | | --- | --- | --- | | lookupType | V | 固定:worshipCandles | | lookupCode | V | ex:W01 | | dscr | V | 燈名| | value | V | 排序值 | | type1 | | 點燈說明 | | type2 | | 價格 | | type3 | | | --- #### 獲取交易特店資料 ##### Request(請求後端電文格式) | 欄位說明 |必填 | KEY | | --- | --- | --- | | lookupType | V | 固定:scan2Pay | | lookupCode | | | ##### Response (回應前端的電文格式) | 欄位說明 |必填 | KEY | | --- | --- | --- | | lookupType | V | 固定:scan2Pay | | lookupCode | V | ex:merchant | | dscr | V | 特店資料 | lookupCode = 'merchant'| | value | V | 排序值 | lookupCode = 'merchant'| | type1 | | 特店帳號 | lookupCode = 'merchant'| | type2 | | tradePin | lookupCode = 'merchant'| | type3 | | | 手機 hash加密 stage 開心的DB bagua_buddha 會員系統 DB 親屬 台大MYNTU 那套 前端要RWD CREATE SCHEMA `bagua_buddha` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ; CREATE TABLE `bagua_buddha`.`INT_TB_Customer` ( `custId` INT(11) NOT NULL, PRIMARY KEY (`custId`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '會員資料表';
{"metaMigratedAt":"2023-06-15T19:53:47.185Z","metaMigratedFrom":"Content","title":"八卦山會員前台","breaks":true,"contributors":"[{\"id\":\"a1fbdd53-f0f4-4397-b1d5-6cd716636a4e\",\"add\":125249,\"del\":100597}]"}
Expand menu