# 研華交接項目清單 ## 新後台 ### 登入權限管理 - 如何新增後台登入權限 在 **WISE_PaaS_Management_User** 資料表新增一筆登入權限 Email : 登入帳號 RoleID : 登入權限層級,可參考 **WISE_PaaS_Management_Role** 權限 Active : 是否啟用 時間 : 建立當下時間 新增方式 : 確認要新增 Email 是否已被加入至 WISE_PaaS_Management_User 此表內,如果已被加入,則確認權限層級是否需要調整,只會有一個Email - 如何新增後台產品權限 在 **WISE_PaaS_PackageUser** 資料表新增一筆產品權限 Email : 登入帳號 PackageID : 產品編號 UserRole : 陣列string,EX : [1] or [1,2]。 0 : Admin (不會顯示在編輯產品用戶下拉選單內) 1 : Editor (如果有設定登入權限後,可編輯此產品,購買時收到通知信) 2 : Shipper(出貨時收到通知信) - 新增後台API後,如何設定後台 API 權限 1. Step 1 : 在 API Router 上方掛上 Authorize,並如下圖命名 **[Authorize(Policy = "api_partNumber_get-special-price")]** api_功能名稱(partNumber, product)_API方法(get, post)-細節名稱 ![](https://hackmd.io/_uploads/rJu0Qm3Rn.png) 2. Step 2 : 在 **WISE_PaaS_Management_Permission** 資料表增加一筆 API 權限 Code : 權限唯一是別名,請看此 API 的 Authorize 命名為一名稱是甚麼 Name : 名稱,新增 API 權限時可以給空值 ParentID : 父編號,新增 API 權限時設為NULL即可 Type : 類型,新增 API 權限時為4即可 Path : 路徑,新增 API 權限時設為NULL即可 Level : 層級,新增 API 權限時為1即可 SeqNumber : 層級,新增 API 權限時為1即可 3. Step 3 : 在 **WISE_PaaS_Management_RoleDefaultPermission** 資料表根據預設Role使用權限增加資料 PermissionID : 權限編號,Step 2 新增後的ID ControlType : 控制權限,1 : Full Control, 2 :Partial Control,此設1即可 RoleID : 登入權限 ### Swagger API 測試 Step1 : 註解以下程式碼後運行(在本機端使用 Swagger 測試API時),但要Commit程式碼時,記得將註解復原,可使用 **Git Stash** 暫存留下次測試使用 ![](https://hackmd.io/_uploads/rJbtFDC03.png) Step2 : 登入取得token(loginId隨便打,email 打後台登入email) { "loginId": "string", "email": "george81.hsu@advantech.com.tw" } ![](https://hackmd.io/_uploads/rJ8VqDAC3.png) ![](https://hackmd.io/_uploads/rJvicDAR3.png) Step3 : 複製token至下圖區塊輸入框(前面不用加bearer),即可進行測試 ![](https://hackmd.io/_uploads/Bk5pcvC0h.png) ### 產品管理建立時檔案建立方式 如果是一個已上線的產品,草稿建立當下,就會將該產品所有檔案拷貝到新的 blob 資料夾內,如果有 CN 語系,也會一併拷貝至 CN blob Server 底下。目前以下三種類型檔案會同時在 global 與 cn blob server 建立 icon, pricebook, banner(product),其餘檔案看語系新增。 **可參考 : ProductDraftService.cs 1268行** ![](https://hackmd.io/_uploads/SJbi6DC0h.png) ### 檔案管理注意事項 現在table內的檔案路徑都改為cdn cache路徑,故每次建立草稿時,會先轉成 blob server 的路徑將檔案重新建立後,再轉回 cdn cache 存回 table ### 料號特殊價管理 目前使用 Query String 方式新增特殊價, 程式碼已推到 dev site ### Page管理 (banner)更換 Banner 目前在table中不會進行刪除動作,因為每個語系只有四張圖,然後 table 內所有語系的banner也都有四筆,如果要下架banner,前端會將 url 清空,後端則是判斷 url 為空讓 active 為false ![](https://hackmd.io/_uploads/HymBJdR02.png) ### 後台DB整理 目前在 feature_db_adjust 分支,有清除一些table關聯,但目前還沒 merge 到 dev 分支 ![](https://hackmd.io/_uploads/rkpvZ9RAh.png) ### 後台 Lead 加密 之前推過 dev site 一次,後續要進行加密的話,在 feature_backend-data-encryption 分支可直接使用 ![](https://hackmd.io/_uploads/S1R9b9AA2.png) ## 新前台 ### WebService License 使用 - 使用 Fox Web Service 建立與更新 License 1.WebService 取得 Scada License param(可用postman) [POST]https://download.advantech.com/Webservice/DownloadWS.asmx #### request body(xml) ``` 參數說明 LicenseSN : string(傳入License 的 SerialNumber) Fileinformation : string(License param,為 webService 回傳參考欄位,給default值即可) FilePath : string(License url,為 webService 回傳參考欄位,給default值即可) Message : string(webService回傳訊息,回傳參考欄位,給default值即可) ``` ``` xml <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetLicenseFileInfo xmlns="http://tempuri.org/"> <LicenseSN>IAATEST105</LicenseSN> <Fileinformation>string</Fileinformation> <FilePath>string</FilePath> <Message>string</Message> </GetLicenseFileInfo> </soap12:Body> </soap12:Envelope> ``` #### response (xml) ``` 參數說明 Fileinformation : string(License param) FilePath : string(License url) Message : string(webService回傳訊息) ``` ``` xml <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetLicenseFileInfoResponse xmlns="http://tempuri.org/"> <GetLicenseFileInfoResult>true</GetLicenseFileInfoResult> <Fileinformation>bw_key /S=IAATEST105 /M1=9 /M2=0 /T=0 /P=25153 /D=0 /R=0 /N=0 /O=0 /K=0 /NET=1 /SCHOOL=1 /ALARM=1 /RTDB=1 /EN=0 /RD=1 /DASH=1 /CNC=0 /BR=27 /BEMS=0 /SPMS=0 /LNC=0 /GD=1 /SC=1 /WAQ=1 /WPQ=1 /OEE=1 /MX=1</Fileinformation> <FilePath>https://downloadt.advantech.com/productfile/WebAccess/Upload/IAATEST105.zip</FilePath> <Message>string</Message> </GetLicenseFileInfoResponse> </soap:Body> </soap:Envelope> ``` - License Param (比較重要) | Param | Desc | | -------- | -------- | | P | Tag 數 | | K | 是否為 USB License | | NET | 是否為 Internal License | | SC | Saas Composer | | GD=1 | Dashboard Professional upgrade | | GD=2 | Dashboard Professional Full data source upgrade | | OEE | OEE/UTE upgrade | | MX | Millisecond upgrade | | BR | WebAccesss/CNC Driver upgrade | 如果 K 為 1 P > 0 (則為匯入 150 tag USB License) 如果 K 為 1 P = 0 (則為匯入 無限 tag USB License) 如果 NET 為 1 P > 0 (則為匯入 150 tag Internal License) 如果 NET 為 1 P = 0 (則為匯入 無限 tag Internal License) response 中 Fileinformation 為 License 的 param,從 /M1=9 到底複製整串字串 response 中 FilePath 為 License 的 url 2.WebService 生成 Scada License(可用postman) [POST]https://download.advantech.com/Webservice/DownloadWS.asmx #### request body(xml) ``` 參數說明 TID : string(傳入License 的 SerialNumber) EncFile : string or 空字串(一般訂閱升級時,傳入此 License EncFile blobServer 的路徑) Paramenters : string(傳入 Scada License param,從/M1=9 到底複製整串字串) KeyFilePath : string(License url,為 webService 回傳參考欄位,給default值即可) Message : string(webService回傳訊息,回傳參考欄位,給default值即可) ReturnCode : int(webService回傳代號,回傳參考欄位,給0即可) UpdateFile : bool(有enc檔案,傳入false, 為License匯入後升級,傳入true) ``` ``` xml <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GeneratorLicenseV3 xmlns="http://tempuri.org/"> <TID>IAATEST105</TID> <EncFile></EncFile> <Paramenters>/M1=9 /M2=0 /T=0 /P=25153 /D=0 /R=0 /N=0 /O=0 /K=0 /NET=1 /SCHOOL=1 /ALARM=1 /RTDB=1 /EN=0 /RD=1 /DASH=1 /CNC=0 /BR=27 /BEMS=0 /SPMS=0 /LNC=0 /GD=1 /SC=1 /WAQ=1 /WPQ=1 /OEE=1 /MX=1</Paramenters> <KeyFilePath>string</KeyFilePath> <Message>string</Message> <ReturnCode>0</ReturnCode> <UpdateFile>true</UpdateFile> </GeneratorLicenseV3> </soap12:Body> </soap12:Envelope> ``` #### response (xml) ``` 參數說明 KeyFilePath : string(License url,此處為http,如果要手動更新回table時,需要改為https) Message : string(webService回傳訊息) ReturnCode : int(webService回傳代號) ``` ``` xml <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GeneratorLicenseV3Response xmlns="http://tempuri.org/"> <GeneratorLicenseV3Result>true</GeneratorLicenseV3Result> <KeyFilePath>http://advantechfiles.blob.core.windows.net/wise-paas-marketplace/ActivatedLicense/IAATEST105.zip</KeyFilePath> <Message>Upload file IAATEST105.zip Success</Message> <ReturnCode>0</ReturnCode> </GeneratorLicenseV3Response> </soap:Body> </soap:Envelope> ``` ### 會員累積升等 API - Reference - [SQL Reference](https://drive.google.com/drive/folders/1oo265EtSENZEYOnu_Lhu79_mlRxykez7?usp=sharing) - [Alick 提供資訊 Reference](https://steel-okapi-541.notion.site/32da0e85620b4291877bf11dd01ca09d?pvs=4 ) - Table - 如下圖紅線標註所示(資料表目前只在測試站資料庫) ![](https://hackmd.io/_uploads/B1Br5sCCh.png) - API - 取得即將過期點數資訊 [[GET] Expiration Point Info](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/621/-GET-Expiration-Point-Info) : 目前只完成API殼,底層 SQL 語法與處理邏輯待 Alick 提供 - 取得累積金額資訊 [[GET] Accumulated Amount Info](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/605/-GET-Accumulated-Amount-Info) : API已完成 - 取得儲值金兌換歷史紀錄 [[GET] Gift Value History](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/600/-GET-Gift-Value-History) : API已完成 - 取得產品訂單歷史紀錄 [[GET] Billing History](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/470/-GET-Billing-History) : API已完成 - 下載儲值金兌換歷史紀錄 [[GET] Download Gift Value History](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/600/-GET-Gift-Value-History) : API已完成 - 下載產品訂單歷史紀錄 [[GET] Download Billing History](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/472/-GET-Download-Billing-History) : API已完成 **需要測試與 codeReview**,如下圖為分支 ![](https://hackmd.io/_uploads/BJkFJ0CCn.png) - 需要請 Alick 確認與後續要處理事情 - 2024 年後過期的客戶會籍資訊,需要寫入主表 **WISE_PaaS_Member** 與**WISE_PaaS_MemberTransactionHistory**,目前 Alick 說會在 Siebel Reporting 開一張 View 表,然後就可以規劃轉資料的 SQL 與轉資料 - 儲值金過期的 SQL Query 語法與程式處理邏輯,實作至 [[GET] Expiration Point Info] API 的底層  ### Payment Notification API - 於 Payment Center 付款後回呼叫的 API,寄送訂單通知信 [[POST] Order Notification](https://advantech-curation.visualstudio.com/Marketplace/_wiki/wikis/Marketplace.wiki/623/-POST-Order-Notification) **需要測試與 codeReview**,如下圖為分支 ![](https://hackmd.io/_uploads/Bkb-KjRRh.png)