需求背景:賬號信息由三方系統管理,包含賬號狀態,所以需要通過提供給三方的 Rest 接口中,實現賬號鎖定與解鎖。
參考基線版本:10.0.2506.01,過低的版本可能無法使用。
鎖定分為兩種:
(1)租戶級別鎖定,用戶在某個租戶中賬號被鎖定,可以切換到其他租戶繼續登錄
(2)系統級別鎖定,用戶無法登錄任意租戶系統
如果調用 RPC 接口出現以下問題,可以聯系注冊登錄模塊人員出包升級 weaver-passport 處理。
相關代碼 【lock-租戶級別鎖定、unlock-租戶級別解鎖、sysLock-系統級鎖定、sysUnLock-系統級解鎖】
@GetMapping("/lock")public WeaResult<BasicCommonI18nResult<Boolean>> lock() {log.error("當前要鎖定賬戶 ---> ");Long employeeId = Convert.toLong("1161719504622239745");Long userId = Convert.toLong("6855375158169694729");BatchBasicCommonUserLockDto batchDto = new BatchBasicCommonUserLockDto().setOnceOffLine(true);//是否下線List<BasicCommonUserLockDto> dtoList = new ArrayList<>();BasicCommonUserLockDto dto = new BasicCommonUserLockDto().setEmployeeId(employeeId).setTenantKey("tv6f3n07lw").setUserId(userId).setLockType("EMPLOYEE_LOCK").setSourceType("SECOND_DEVELOP");dtoList.add(dto);batchDto.setDtoList(dtoList);BasicCommonI18nResult<Boolean> result = remotePassportBaseService.batchCommonLockUser(batchDto);log.error("鎖定賬戶結果 ---> " + result);return WeaResult.success(result);}@GetMapping("/unlock")public WeaResult<BasicCommonI18nResult<Boolean>> unlock() {log.error("當前要解鎖賬戶 ---> ");Long employeeId = Convert.toLong("1161719504622239745");BatchBasicCommonUserLockDto batchDto = new BatchBasicCommonUserLockDto();BasicCommonUserLockDto dto = new BasicCommonUserLockDto().setEmployeeId(employeeId).setLockType("EMPLOYEE_LOCK");batchDto.setDtoList(Collections.singletonList(dto));BasicCommonI18nResult<Boolean> result = remotePassportBaseService.batchCommonUnLockUser(batchDto);log.error("解鎖賬戶結果 ---> " + result);return WeaResult.success(result);}@GetMapping("sysLock")public WeaResult<BasicCommonI18nResult<Boolean>> sysLock() {log.error("系統級鎖定賬戶 ---> ");Long employeeId = Convert.toLong("1161719504622239745");Long userId = Convert.toLong("6855375158169694729");BatchBasicCommonUserLockDto batchDto = new BatchBasicCommonUserLockDto().setOffLineMsg("您的賬號已被管理員鎖定").setOffLineI18nId("175861").setOnceOffLine(true);List<BasicCommonUserLockDto> dtoList = new ArrayList<>();BasicCommonUserLockDto dto = new BasicCommonUserLockDto().setEmployeeId(employeeId).setTenantKey("all_teams").setUserId(userId).setLockType("ACCOUNT_LOCK").setSourceType("SECOND_DEVELOP");dtoList.add(dto);batchDto.setDtoList(dtoList);BasicCommonI18nResult<Boolean> result = remotePassportBaseService.batchCommonLockUser(batchDto);log.error("系統級鎖定結果 ---> " + result);return WeaResult.success(result);}@GetMapping("/sysUnLock")public WeaResult<BasicCommonI18nResult<Boolean>> sysUnLock() {log.error("系統級解鎖 --->");Long userId = Convert.toLong("6855375158169694729");BatchBasicCommonUserLockDto batchDto = new BatchBasicCommonUserLockDto();BasicCommonUserLockDto dto = new BasicCommonUserLockDto().setUserId(userId).setLockType("ACCOUNT_LOCK");batchDto.setDtoList(Collections.singletonList(dto));BasicCommonI18nResult<Boolean> result = remotePassportBaseService.batchCommonUnLockUser(batchDto);log.error("系統級解鎖結果 ---> " + result);return WeaResult.success(result);}