Commit 173927c6 authored by suhuiguang's avatar suhuiguang

1.人员导入,全部成功导入才导入,否则删除所有的已注册的用户

parent 1df80e59
......@@ -1023,6 +1023,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Override
@Transactional(rollbackFor = Exception.class)
public ResponseModel<?> importUserBatch(MultipartFile multipartFile) {
Map<Long, TzsUserInfo> userInfoMap = new HashMap<>();
try {
List<UserImportDto> userItems = ExcelUtil.readFirstSheetExcel(multipartFile, UserImportDto.class, 2);
// 1.数据检验
......@@ -1038,10 +1039,21 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
this.buildMergeFields(userItems, userSet);
// 3.数据入库
// 3.1业务库入库
Map<Long, TzsUserInfo> userInfoMap = this.saveImportData2Db(userSet);
userInfoMap = this.saveImportData2Db(userSet);
// 3.2部分类型用户平台创建人员
this.createAmosUser(userInfoMap, userSet);
} catch (Exception e) {
if(!userInfoMap.values().isEmpty()){
List<String> userIds = userInfoMap.values().stream().map(TzsUserInfo::getAmosUserId).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
for(String userId : userIds){
// 单个删除,平台接口删除时,判断了有才能删除,匹配删除可能存在某个用户不存在导致删除失败
try {
Privilege.agencyUserClient.multDeleteUser(userId);
} catch (Exception e1) {
log.error("删除用户:{},失败:{}!", userId, e1.getMessage());
}
}
}
throw new RuntimeException(e);
}
return ResponseHelper.buildResponse("succese");
......@@ -1071,25 +1083,26 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
}
private void bindUserToGroup(Collection<TzsUserInfo> values) {
List<String> userIds =values.stream().map(TzsUserInfo::getAmosUserId).collect(Collectors.toList());
List<String> userIds =values.stream().map(TzsUserInfo::getAmosUserId).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
try {
// 绑定企业整改用户组
String roleGroupCode = "6596";
DataDictionary roleGroup = iDataDictionaryService
.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getCode, roleGroupCode).eq(DataDictionary::getType, ROLE_GROUP));
if (!ObjectUtils.isEmpty(roleGroup) && roleGroup.getExtend() != null) {
Privilege.groupUserClient.create(Long.valueOf(roleGroup.getExtend()), userIds);
}
// 绑定两个规定用户组
for(TzsUserInfo userInfo : values) {
String newPost = userInfo.getPost();
List<String> posts = Optional.ofNullable(JSONArray.parseArray(newPost, String.class)).orElse(new ArrayList<>());
for (String code : posts) {
bind2PermissionGroup(Collections.singletonList(userInfo.getAmosUserId()), code);
if(!userIds.isEmpty()){
// 绑定企业整改用户组
String roleGroupCode = "6596";
DataDictionary roleGroup = iDataDictionaryService
.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getCode, roleGroupCode).eq(DataDictionary::getType, ROLE_GROUP));
if (!ObjectUtils.isEmpty(roleGroup) && roleGroup.getExtend() != null) {
Privilege.groupUserClient.create(Long.valueOf(roleGroup.getExtend()), userIds);
}
// 绑定两个规定用户组
for(TzsUserInfo userInfo : values) {
String newPost = userInfo.getPost();
List<String> posts = Optional.ofNullable(JSONArray.parseArray(newPost, String.class)).orElse(new ArrayList<>());
for (String code : posts) {
bind2PermissionGroup(Collections.singletonList(userInfo.getAmosUserId()), code);
}
}
}
} catch (Exception e) {
Privilege.agencyUserClient.multDeleteUser(StringUtils.join(userIds, ","));
log.error(e.getMessage(), e);
throw new BadRequest(e.getMessage());
}
......@@ -1245,6 +1258,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
tzsUserInfoMapper.updateById(tzsUserInfo);
} catch (Exception e) {
log.error(e.getMessage(), e);
// 防止 创建成功后tzsUserInfo.setAmosUserId(userResult.getResult().getUserId()) 报错导致外侧删除不成功,健壮性处理,正常不会出错
if (userResult != null && userResult.getResult() != null
&& StringUtils.isNotEmpty(userResult.getResult().getUserId())) {
Privilege.agencyUserClient.multDeleteUser(userResult.getResult().getUserId());
......
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