Commit 475d6f65 authored by yangyang's avatar yangyang

refactor(tcm): 优化用户信息同步功能

- 在 TzsUserInfoController 中添加 refreshNonAdmin 参数,控制是否刷新非管理员用户- 在 TzsUserInfoServiceImpl 中实现新的 refreshUserGroupInfo 方法,支持刷新非管理员用户 - 优化 refreshAdminUserRole 方法,直接接收 RegUnitInfo 列表作为参数- 调整用户信息查询条件,增加未删除用户的筛选
parent 8af31d47
......@@ -511,8 +511,8 @@ public class TzsUserInfoController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/refreshUserGroupInfo")
@ApiOperation(httpMethod = "POST", value = "同步人员信息", notes = "同步人员信息")
public ResponseModel<TzsUserInfoDto> refreshUserInfo(@RequestBody List<String> userIds) {
tzsUserInfoServiceImpl.refreshUserGroupInfo(userIds);
public ResponseModel<TzsUserInfoDto> refreshUserInfo(@RequestBody List<String> userIds, @RequestParam(required = false) boolean refreshNonAdmin) {
tzsUserInfoServiceImpl.refreshUserGroupInfo(userIds, refreshNonAdmin);
return ResponseHelper.buildResponse(null);
}
}
......@@ -2520,19 +2520,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
}
}
public void refreshAdminUserRole(List<TzsUserInfo> userInfos, List<String> userId) {
List<String> adminUserIdList;
if (ValidationUtil.isEmpty(userInfos)) {
adminUserIdList = userId;
} else {
List<String> amosUserIdList = userInfos.stream().map(TzsUserInfo::getAmosUserId).collect(Collectors.toList());
adminUserIdList = userId.stream().filter(id -> !amosUserIdList.contains(id)).collect(Collectors.toList());
}
if (ValidationUtil.isEmpty(adminUserIdList)) {
return;
}
List<RegUnitInfo> regUnitInfos = regUnitInfoService.lambdaQuery().in(RegUnitInfo::getAdminUserId, adminUserIdList).list();
public void refreshAdminUserRole(List<RegUnitInfo> regUnitInfos) {
List<String> useUnitCodes = regUnitInfos.stream().map(RegUnitInfo::getUnitCode).collect(Collectors.toList());
if (ValidationUtil.isEmpty(useUnitCodes)) {
return;
......@@ -2584,14 +2572,29 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
}
}
public void refreshUserGroupInfo(List<String> userId) {
public void refreshUserGroupInfo(List<String> userId, boolean refreshNonAdmin) {
if (ObjectUtils.isEmpty(userId)) {
return;
}
List<RegUnitInfo> adminRegUnitInfos = regUnitInfoService.lambdaQuery().in(RegUnitInfo::getAdminUserId, userId).list();
refreshAdminUserRole(adminRegUnitInfos);
if (!refreshNonAdmin) {
return;
}
List<String> amosAdminUserIdList = adminRegUnitInfos.stream().map(RegUnitInfo::getAdminUserId).collect(Collectors.toList());
userId = userId.stream().filter(id -> !amosAdminUserIdList.contains(id)).collect(Collectors.toList());
if (ObjectUtils.isEmpty(userId)) {
return;
}
// 根据userId获取用户
List<TzsUserInfo> userInfos = tzsUserInfoMapper.selectList(new LambdaQueryWrapper<TzsUserInfo>()
.in(TzsUserInfo::getAmosUserId, userId));
refreshAdminUserRole(userInfos, userId);
.in(TzsUserInfo::getAmosUserId, userId).eq(TzsUserInfo::getIsDelete, false));
if (ObjectUtils.isEmpty(userInfos)) {
return;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment