Commit 9564c118 authored by hcing's avatar hcing

fix(tcm): 人员删除接口,修复删除非本单位人员的问题

parent 73cc8215
...@@ -340,6 +340,9 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -340,6 +340,9 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteBatch(Object[] ids1) { public void deleteBatch(Object[] ids1) {
// 删除校验
checkInternalStaff(Arrays.stream(ids1).map(obj -> Long.valueOf(obj.toString())).collect(Collectors.toList()));
LambdaQueryWrapper<TzsUserInfo> lambda = new QueryWrapper<TzsUserInfo>().lambda(); LambdaQueryWrapper<TzsUserInfo> lambda = new QueryWrapper<TzsUserInfo>().lambda();
lambda.in(TzsUserInfo::getSequenceNbr, ids1); lambda.in(TzsUserInfo::getSequenceNbr, ids1);
TzsUserInfo tzsUserInfo = new TzsUserInfo(); TzsUserInfo tzsUserInfo = new TzsUserInfo();
...@@ -358,6 +361,37 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -358,6 +361,37 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
publisher.publish(new DataRefreshEvent(this, ids, DataRefreshEvent.DataType.user.name(), DataRefreshEvent.Operation.DELETE)); publisher.publish(new DataRefreshEvent(this, ids, DataRefreshEvent.DataType.user.name(), DataRefreshEvent.Operation.DELETE));
} }
/**
* 检查是否为本单位下人员
*
* @param ids 人员ids
*/
private void checkInternalStaff(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return;
}
// 获取当前登录单位信息
ReginParams reginParams = JSON.parseObject(
redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(),
ReginParams.class
);
if (ObjectUtils.isEmpty(reginParams) || ObjectUtils.isEmpty(reginParams.getCompany())) {
throw new BadRequest("未获取到单位信息");
}
String companyCode = reginParams.getCompany().getCompanyCode();
// 检查要删除的人员是否都属于当前单位
List<TzsUserInfo> userInfos = tzsUserInfoMapper.selectBatchIds(ids);
for (TzsUserInfo userInfo : userInfos) {
if (!companyCode.equals(userInfo.getUnitCode())) {
throw new BadRequest("不能删除非本单位人员: " + userInfo.getName());
}
}
}
@Override @Override
public void deleteGroupAndPersonRelation(String postName, String amosUserId) { public void deleteGroupAndPersonRelation(String postName, String amosUserId) {
......
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