Skip to content

Commit

Permalink
feat:同步用户及部门信息 TencentBlueKing#11496
Browse files Browse the repository at this point in the history
  • Loading branch information
fcfang123 committed Feb 21, 2025
1 parent a027ee2 commit 1c53c6a
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class DepartmentDao {
departmentInfo.parent,
departmentInfo.level,
departmentInfo.hasChildren
)
).execute()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class UserInfoDao {
.set(DEPARTMENT_NAME, userInfo.departmentName)
.set(DEPARTMENT_ID, userInfo.departmentId)
.set(FULL_DEPARTMENTS, JsonUtil.toJson(userInfo.departments))
.execute()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
import java.util.concurrent.Executors

@Service
class UserManageService @Autowired constructor(
Expand All @@ -58,65 +59,75 @@ class UserManageService @Autowired constructor(
fun syncUserInfoData() {
var page = 1
val pageSize = PageUtil.MAX_PAGE_SIZE
do {
val bkUserInfos = deptService.listUserInfos(
searchUserEntity = SearchUserAndDeptEntity(
lookupField = Constants.USERNAME,
bk_app_code = appCode,
bk_app_secret = appSecret,
fields = Constants.USER_LABEL,
page = page,
pageSize = pageSize
)
).results
bkUserInfos.forEach { bkUserInfo ->
try {
val userDeptDetails = deptService.getUserDeptDetails(userId = bkUserInfo.userName)
userInfoDao.create(
dslContext = dslContext,
userInfo = UserInfo(
userId = bkUserInfo.userName,
userName = bkUserInfo.displayName,
enabled = bkUserInfo.enabled ?: true,
departmentName = userDeptDetails.name,
departmentId = userDeptDetails.id,
departments = userDeptDetails.family
)
logger.info("start to sync user info data")
Executors.newFixedThreadPool(1).execute {
do {
val bkUserInfos = deptService.listUserInfos(
searchUserEntity = SearchUserAndDeptEntity(
lookupField = Constants.USERNAME,
bk_app_code = appCode,
bk_app_secret = appSecret,
fields = Constants.USER_LABEL,
page = page,
pageSize = pageSize
)
} catch (ex: Exception) {
logger.warn("sync User Info Data failed {}", bkUserInfos)
).results

bkUserInfos.forEach { bkUserInfo ->
logger.info("sync user info data ,{}", bkUserInfo)
try {
val userDeptDetails = deptService.getUserDeptDetails(userId = bkUserInfo.userName)
userInfoDao.create(
dslContext = dslContext,
userInfo = UserInfo(
userId = bkUserInfo.userName,
userName = bkUserInfo.displayName,
enabled = bkUserInfo.enabled ?: true,
departmentName = userDeptDetails.name,
departmentId = userDeptDetails.id,
departments = userDeptDetails.family
)
)
} catch (ex: Exception) {
logger.warn("sync User Info Data failed {}", bkUserInfos)
}
}
}
page += 1
} while (bkUserInfos.size == pageSize)
page += 1
} while (bkUserInfos.size == pageSize)
}

}

fun syncDepartmentInfoData() {
var page = 1
val pageSize = PageUtil.MAX_PAGE_SIZE
do {
val deptInfos = deptService.listDeptInfos(
searchUserEntity = SearchUserAndDeptEntity(
bk_app_code = appCode,
bk_app_secret = appSecret,
page = page,
pageSize = pageSize
)
)
deptInfos.results.forEach { deptInfo ->
departmentDao.create(
dslContext = dslContext,
departmentInfo = DepartmentInfo(
departmentId = deptInfo.id,
departmentName = deptInfo.name,
parent = deptInfo.parent,
level = deptInfo.level,
hasChildren = deptInfo.hasChildren
Executors.newFixedThreadPool(1).execute {
var page = 1
val pageSize = PageUtil.MAX_PAGE_SIZE
logger.info("start to sync department info data")
do {
val deptInfos = deptService.listDeptInfos(
searchUserEntity = SearchUserAndDeptEntity(
bk_app_code = appCode,
bk_app_secret = appSecret,
page = page,
pageSize = pageSize
)
)
}
page += 1
} while (deptInfos.results.size == pageSize)
deptInfos.results.forEach { deptInfo ->
logger.info("sync department info data {}", deptInfo)
departmentDao.create(
dslContext = dslContext,
departmentInfo = DepartmentInfo(
departmentId = deptInfo.id,
departmentName = deptInfo.name,
parent = deptInfo.parent,
level = deptInfo.level,
hasChildren = deptInfo.hasChildren
)
)
}
page += 1
} while (deptInfos.results.size == pageSize)
}
}

companion object {
Expand Down

0 comments on commit 1c53c6a

Please sign in to comment.