縣市端新增師生關係API程式

URL Link //n.sfs.tw/14733

2020-08-29 17:23:39 By jung

一:須先完成縣市主機mongo資料庫更新

  參考這篇:https://1drv.ms/w/s!Atw7C3UBZNtIjaFuqzaRJ0mUbMtUXQ?e=uLtXFf

  順序要改一下,先在mongo 中建立新的collection: idmappingstore & tsrelationstore & workerstore

  再用mongoimport匯入GUID&UUID對照表

mongoexport --db DB_NAME --collection COLLECTION_NAME --fields FIELD_NAME(s) --type=csv or JSON --out=Name-Path-Output-File

mongoimport --db DB_NAME --collection COLLECTION_NAME xx.json

二:切到CncResource專案,合併 tsrelation 這個分支,一定要先做,否則之後修改accoutdatasource程式後,要測試時會出錯

三:將縣市端xxauth認證程式裡cnclibs & edudatatype 二個函式庫升級最新版,重新編譯

四:更新cncauthserver & CncResource 專案,將最新的縣市端認證程式加入

五:重新編譯並上傳發布

六:開始編輯cncaccoutdatasource程式,先合併tcdatasource分支,會出現一大堆衝突,刪除不需要的程式檔,將程式名稱重新命名( 專案上用右鍵Refactor)

datasource專案目錄如下圖:

須將xxRelationDataRequest, xxSyncDataRequest, CNCXXRelationSource, CNCXXSyncSource 全部重新命名為縣市端代號,如馬祖我設為MZ

但是裡面的實作方法也要一個個去重新命名

例如:CNCMZRelationSource裡有個CNCXXRelationSource方法,但是使用IDEA Refactor功能時,它不會自動更新方法名稱,需手動修改

 

改完之後,專案目錄下會多出二個檔案:cncaccoutdadsource.iml, tcaccountdatasource.iml

這個很麻煩,目前不知道怎麼處理,

如果把tcaccountdatasource.iml留著,每次切換分支git checkout時,在IDEA左側專案目錄檔案功能列,就會把專案名稱改為tcaccountdatasource

如果把tcaccountdatasource.iml 刪掉,每次開啟IDEA就會提醒你tcaccountdatasource.iml找不到....苦惱中@@

再來需要執行本地測試,要先在目錄內新增一個properties檔

範例如下:

//clientid & secret需改為oidc使用的那個,要去mongo資料庫:cncspstore 找出來

clientid=cf789350df91c914027ce55f3ab5
clientsecret=97d12e23a83748042aaf71dc1c18c2606ee1cd28226422af5c607f4b
tokenuri=https://xx.sso.edu.tw/cncresource/api/v1/oauth2/token
syncdatauri=https://xx.sso.edu.tw/cncresource/api/v1/oauth2/syncdata
relationdatauri=https://xx.sso.edu.tw/cncresource/api/v2/oauth2/relation
workerdatauri=https://xx.sso.edu.tw/cncresource/api/v2/oauth2/worker

其他的uri路徑改為縣市端API URL

接著到  RelationDataLocalExecution 這支程式中,修改properties檔案位置,並提供一組GUID & UUID作為測試用

預設會到本地目錄下去找properties檔

到這邊如果都完成,執行這支本地測試用程式,抓到對應資料就表示程式執行正常了~

範例如下,有抓到縣市師生對應資料

29 Aug 2020 17:21:14,370 execution.relationdata.MZRelationDataRequest execution.relationdata.MZRelationDataRequest.fetchRelationData(MZRelationDataRequest.java:106)
Data : {"sub":"5cf369152f62fb55f9f9ca7624890cbe3a45e589e6138085720f86f9c64329e6","relation":[{"schoolid":"724603","year":"108","semester":"02","grade":"05","classno":"0000000001","classtitle":"五年一班","curriculum":[{"courseid":"A00_01_00-0","coursename":"本土語文","students":[{"uuid":"9bf43ed9-07e1-4972-b405-390c6bda33cf"},{"uuid":"f0a424e9-aabb-4cc1-a14b-7ef54f5aae63"},{"uuid":"209138b9-dd65-408f-b95d-65cf85ba8455"},{"uuid":"b02d7252-fdd4-4e62-9fb0-f0b9ded90938"},{"uuid":"8474a05a-75a0-434d-92b7-6ca77321a284"},{"uuid":"8f5708e0-6028-4f5b-a7b7-53de25bd5260"},{"uuid":"d40c09ff-3974-482d-ac8d-12eb4d6c5afc"},{"uuid":"f5b005cd-7855-4073-ac87-7c8bc69edca0"},{"uuid":"6376e48f-ac6e-44d7-a2be-ab88e38dd7cd"}]}]},{{"uuid":"953acb43-3fbe-4513-ba3b-4669780042d7"},{"uuid":"d0dd7506-d3a5-4129-b853-66f2234f7e78"},{"uuid":"d03d10d4-95e7-4b1a-b5be-049fd9ff4128"},{"uuid":"3b3dbc72-c64a-49ba-9bb3-630b3c11809e"},{"uuid":"d56fbc32-7603-4e21-aa8d-40172c6ad764"},{"uuid":"54b5541f-4957-4258-9f9e-002290af494c"}]}]}]}
29 Aug 2020 17:21:14,579 execution.relationdata.RelationDataLocalExecution execution.relationdata.RelationDataLocalExecution.main(RelationDataLocalExecution.java:35)
TSRelationResponseModel :
models.edumodel.relations.TSRelationResponseModel@f79113c9