[精讚] [會員登入]
30

學習帳號不在籍處理

雲端校務系統中學生異動可能是因轉學造成短期空檔不在籍 所以在判斷停用後, 時間註記在 syncAccount.getDa

分享此文連結 //n.sfs.tw/16260

分享連結 學習帳號不在籍處理@igogo
(文章歡迎轉載,務必尊重版權註明連結來源)
2024-09-24 14:25:11 最後編修
2023-10-04 15:00:54 By igogo
 

 

 

雲端校務系統中學生異動可能是因轉學造成短期空檔不在籍

所以在判斷停用後, 時間註記在 syncAccount.getDataTimestamp()

超過30天未更新且又是停用者, 先寄mail通知

超過90天後,

找出 account 為停用 且 syncAccount.getDataTimestamp() 超過90天者及syncAccount.getOutOfStudyTimestamp() == 0

執行停權並將syncAccount.setOutOfStudyTimestamp() 設為執行時間

 

學生回復學籍時, syncAccount.getOutOfStudyTimestamp() 再標記為0

 

部份程式


  List<SyncAccount> syncAccounts = syncAccountService.findByOutofStudyConditionBefore(100);

        syncAccounts.forEach(syncAccount -> {
            Instant instant = Instant.ofEpochSecond(syncAccount.getDataTimestamp());
            ZonedDateTime present = instant.atZone(ZoneId.of("Asia/Taipei"));  //taipei時區
            Account account = accountDAO.findAccountByPID(syncAccount.getPid());
            UserName userName = accountUtilsService.getUserName(account);

            User user = null;
            try {
                user = userService.getUser(syncAccount.getGoogle_account());


                logger.info(account.getGoogle_account() + ",is suspended? " + user.getSuspended());

                if (user.getSuspended() == false) {
                    logger.info("set user suspensed: " + account.getGoogle_account());
                    user.setOrgUnitPath("/停用");
                    user.setSuspended(true);
                }

                userName.setFamilyName("停用");
                user.setName(userName);
                user = userService.update(user);



                //學習帳號列表
                StUser stUser = syncStUserService.findStUserByEmail(syncAccount.getGoogle_account());
                stUser.setFullname(userName.getFamilyName() + userName.getFullName());
                stUser.setUpdateTimestamp(Instant.now().getEpochSecond());
                stUser.setOrgUnitPath("/停用");
                stUser.setSuspended(true);
                syncStUserService.save(stUser);


                //資料庫帳號更新參照
                syncAccount.setName(userName.getFamilyName() + userName.getFullName());
                syncAccount.setOutOfStudyTimestamp(Instant.now().getEpochSecond());
                syncAccountService.save(syncAccount);


            } catch (Exception e) {
                throw new RuntimeException(e);
            }


        });

 

 

 

END

你可能感興趣的文章

學習帳號不在籍處理 雲端校務系統中學生異動可能是因轉學造成短期空檔不在籍 所以在判斷停用後, 時間註記在 syncAccount.getDa

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

00-F2 的 IPV6 反解設定 近日, 強者我的大神同事, line 傳來一句: igogo 上次你那個ipv6的設定檔 再幫我跑一次 如連結 程式都寫

找尋多個文件夾中最新檔案(jpg,png,txt)並複製到nexus資料夾 找尋多個文件夾中最新檔案(jpg,png,txt)並複製到集中資料夾

臺中市雲端校務系統與Windows AD帳號整合(5) 安裝java環境

刪除資料夾內的檔案 lambda 一行文 Arrays.stream(new File("/folder/path").

[javascript] 將角色物件放到清單中,並依序讀出每個角色的X值 參考在scratch中建立三個角色並且給定值 http://n.sfs.tw/content/index/14716 一